首页 > 数据库 > MySQL > 正文

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

2024-07-24 12:35:57
字体:
来源:转载
供稿:网友
   所以我打算这样做:
 
  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库即可。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表