设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL恢复 利用从库备份 主库binlog

发布时间:2022-07-03 12:59 所属栏目:115 来源:互联网
导读:所以我打算这样做: 1. 用从库的全备恢复数据, 2. 然后用主库的binlog恢复后来的数据, 3. 再使用从库的中继日志恢复主库缺少的数据. 在这过程中我发现了问题(关于[3.]的解释): 主库宕机时,我发现有几条数据主库的binlog日志没有,但是从库的中继日志中却有, 所
   所以我打算这样做:
 
  1. 用从库的全备恢复数据,
  2. 然后用主库的binlog恢复后来的数据,
  3. 再使用从库的中继日志恢复主库缺少的数据.
  在这过程中我发现了问题(关于[3.]的解释):
      主库宕机时,我发现有几条数据主库的binlog日志没有,但是从库的中继日志中却有,
      所以我从中继日志中把主库没有但是从库有的sql复制了出来,
      然后放到了文件名为addsql.sql中
  我在mysql-bin.00101时的全备,备份时从库的slave status是这样的:
 
                  Master_Log_File: mysql-bin.00101
                  Read_Master_Log_Pos: 888301479
                  Relay_Log_File: relay-bin.000002
                  Relay_Log_Pos: 31921757
 
  注意:如果要使C库数据和B库一样,那么要以Relay_Master_Log_File和Exec_Master_Log_Pos这两个参数为准恢复数据
 
  我的操作流程是这样的:
 
      1. 首先在C库上导入,在mysql-bin.00101的时候从库的备份,
      2. 根据从库做全备时保留的slave status,将mysql-bin.00100中还没有同步的数据导出为sql,(mysqlbinlog --start-position=31921467 /mysql-bin.00100 > ./100.sql).
      3. 然后陆续将mysql-bin.00101之后和主库宕机时mysql-bin.00104的binlog日志转为sql.
      4. 将这些sql导入.
      5. 将addsql.sql导入.
      6. B库授权replication slave,然后C库change master 到B库即可。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读