mysql 全备+binlog恢复数据

    假如我在2018-6-10日给数据库做了一次备份,但是在2018-7-3日数据库操作失误,造成了误删或者其他操作,我需要将数据恢复到2018-7-3日的数据,那么即可运用2018-6-10日备份的数据+binlog日志实现数据恢复。(其中binlog恢复的是2018-6-10日-2018-7-3日的数据)

    首先确定你的服务器已开启binlog日志,开通、查看教程请自行百度。

    windows版本的mysql的binlog日志一般在data这个目录下,其中mysql-bin.index这个文件相当于索引文件,而其他的00000x则是记录了除了select查询语句以外的sql语句。


    为了知道我要从哪里开始恢复,哪里结束恢复,我们需要查看mysql-bin.00000x这些文件,在mysql命令下执行:show binlog events in 'mysql-bin.000001';,即可查看到mysql-bin.000001这个文件的内容,但是通常文件都会很大,我们直接这样查看的话比较慢,也不好观察。所以我们需要将他转成txt文件进行查看,在mysql的bin目录下执行cmd(不是mysql命令终端下):mysqlbinlog mysql-bin.000001 > d:/1.txt,即可将内容写到D盘的1.txt中,但是但是这些都是二进制的文件,所以windows下无法查看,打开1.txt会发现乱码


则我们需要将他转成普通文件进行查看,具体是在mysqlbinlog命令中增加参数,mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000001 > d:/1.txt 这样即可解决乱码问题。

    然后我们打开txt文件,查找出现问题的地方,并且找到需要恢复到的地方。

    

    上面这种办法读取出binlog日志的全文内容较多,不容易分辨查看pos点信息,这里介绍一种更为方便的查询命令:
      mysql> show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
             选项解析:
               IN 'log_name'   指定要查询的binlog文件名(不指定就是第一个binlog文件)
             

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值