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站长网) |
相关内容
网友评论
推荐文章
热点阅读