7.5 使用binary log 做基于时间点的恢复

来源:这里教程网 时间:2026-03-01 15:23:57 作者:

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

相关推荐