7.5 Point-in-time Recovery Using the Binary Log时间点的恢复基于以下规则:
数据库必须开启binary logging
log-bin需要再my.cnf文件中设置
可以使用mysqlbinlog工具将events 转换为text格式以便于查看。
mysqlbinlog --no-defaults mysql-bin.000004 | more
可以使用mysqlbinlog工具去回放binary log 中的events.
mysqlbinlog --no-defaults mysql-bin.000004 | mysql -u root -p
可以使用通过mysqlbinlog 工具去查找event time 和positions
mysqlbinlog --no-defaults mysql-bin.000004 > tmpfilevi tmpfile
可以使用用vi编辑后的文件进行events的回放
mysql -uroot -p < tmpfile当你的环境中使用的通过GTIDs进行主从复制时,可以使用--skip-gtids 将文件转换到文件中,比如:mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sqlmysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sqlmysql -uroot -p -e "source /tmp/dump.sql" 7.5.1 通过Event Times 进行时间点的恢复 通过指定start 和 end 时间点进行恢复, 在使用mysqlbinlog时指定--start-datetime 和--stop-datetime。比如在10:00 a.m.on April 20,2005这个时间点删除了一张大表。为了恢复此表数据,可以使用下面的命令: mysqlbinlog --stop-datetime="2005-04-20 9:59:59" bin.123456 | mysql -uroot -p 此命令会恢复--stop-datetime指定时间点的所有数据,如果想继续恢复10:00 a.m以后的数据可以使用下面的命令:mysqlbinlog --start-datetime="2005-04-20 10:01:00" bin.123456 | mysql -uroot -p 7.5.2 通过 Events Positions 进行时间点的恢复 除了通过指定时间进行时间点的恢复,也可以通过指定--start-position和--stop-position来进行时间点的恢复。 a. 恢复到368312 位点mysqlbinlog --stop-position=368312 bin.123456 | mysql -uroot -p b. 从368315位点开始恢复mysqlbinlog --start-position=368315 bin.123456 | mysql -uroot -p 可以阅读下面链接内容进行mysqlbinlog 工具的学习: https://www.cnblogs.com/Presley-lpc/p/9619571.html
