尝试用binlog还原mysql数据库数据

问题:无mysql数据库完整备份,但binlog齐全。想还原到指定时间的数据状态。

尝试:

  1. 先用mysqldump备份当前的数据,和将binlog文件复制到另外的路径
  2. 用mysqlbinlog查看各binlog的内容,估计出数据库是在什么时候创建的,存在哪(几)个binlog文件
  3. 从binlog中导出指定数据库到指定时间的所有查询,如

    mysqlbinlog --database=anqun --stop-datetime="2021-01-15 14:52:00" mysql-bin.000001 > anqun.sql
    mysqlbinlog --database=anqun --stop-datetime="2021-01-15 14:52:00" mysql-bin.000002 >> anqun.sql
    ...
  4. 然后在测试机里,将anqun.sql导入到mysql数据库里,验证数据。如果导入时提示 Duplicate entry '' for key 'PRIMARY' 之类的错误sql语句,可以用mysql带-f的参数跳过(忽略)

参考:

标签: mysql, binlog

添加新评论