前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql资料 Binlog(下)

Mysql资料 Binlog(下)

原创
作者头像
陈不成i
修改2021-06-11 14:19:10
1.6K0
修改2021-06-11 14:19:10
举报
文章被收录于专栏:ops技术分享

三.查看binlog日志

使用mysqlbinlog自带查看命令法

注意: –>binlog是二进制文件,普通文件查看器cat、more、vim等都无法打开,必须使用自带的mysqlbinlog命令查看 –>binlog日志与数据库文件在同目录中 –>在MySQL5.5以下版本使用mysqlbinlog命令时如果报错,就加上 “–no-defaults”选项

查看 mysqlbinlog mysql-bin.000002

解释 server id 1 : 数据库主机的服务号; end_log_pos 796: sql结束时的pos节点 thread_id=11: 线程号

mysql加载方式查询

注意: 无

查看 show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];

查看命令参数

  1. IN 'log_name' :指定要查询的binlog文件名(不指定就是第一个binlog文件)
  2. FROM pos :指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算)
  3. LIMIT [offset,] :偏移量(不指定就是0)
  4. row_count :查询总条数(不指定就是所有行)

查看的例子 show binlog events in 'mysql-bin.000002'\G;

其余例子 a)查询第一个(最早)的binlog日志: show binlog events\G;

b)指定查询 mysql-bin.000002这个文件: show binlog events in 'mysql-bin.000002'\G;

c)指定查询 mysql-bin.000002这个文件,从pos点:624开始查起: show binlog events in 'mysql-bin.000002' from 624\G;

d)指定查询 mysql-bin.000002这个文件,从pos点:624开始查起,查询10条(即10条语句) show binlog events in 'mysql-bin.000002' from 624 limit 10\G;

e)指定查询 mysql-bin.000002这个文件,从pos点:624开始查起,偏移2行(即中间跳过2个),查询10条 show binlog events in 'mysql-bin.000002' from 624 limit 2,10\G;

四.恢复数据

说明: 恢复的时候要配合全备份,先进行全备份,在用mysqldump全备时添加-F刷新binlog,这时候mysqldump备份的是最新的binlog日志之前的内容了。

先进行全备份恢复,再将最新的binlog文件用mysqlbinlog进行查看,grep或者其他方式过滤,找到有问题的sql语句,记录下当时的pos点或者时间。只恢复出问题之前得时间点即可。

操作: 先恢复全部的 mysql -uroot -p'123456' < 2018-10-15-alldb.sql

再筛选有问题的sql部分,下面用grep方式找到了drop语句所在位置

再找到这条语句之前的上一条语句的pos点和时间点来恢复。可以看到104条是删除,那就恢复到103条的。当前看到的是日志区间。

以下命令进行恢复,stop-position是指定恢复截止的pos点。 实际是将读出的binlog日志内容,通过管道符传递给mysql命令。这些命令、文件尽量写成绝对路径 mysqlbinlog --stop-position=5519 mysql-bin.000015 | mysql -uroot -p'123456'

其余例子 a)如果只是某个数据库有问题,可以只恢复单个数据库而不是所有: `mysqlbinlog mysql-bin.000015 –database=数据库A | mysql -uroot -p’123456 数据库A’

五.命令参数

  1. 常用参数选项解释:
  2. --start-position=875 起始pos点
  3. --stop-position=954 结束pos点
  4. --start-datetime="2016-9-25 22:01:08" 起始时间点
  5. --stop-datetime="2019-9-25 22:09:46" 结束时间点
  6. --database=zyyshop 指定只恢复zyyshop数据库(一台主机上往往有多个数据库,只限本地log日志)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三.查看binlog日志
    • 使用mysqlbinlog自带查看命令法
      • mysql加载方式查询
      • 四.恢复数据
      • 五.命令参数
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档