当前位置:   article > 正文

Mysql 通过binlog伪装master恢复数据库_mysql 监听binlog 伪装成最后一个节点

mysql 监听binlog 伪装成最后一个节点

假如主库被 rm -fR datadir, 数据目录被删除了,我们有binlog日志备份,怎么恢复?

 

思路:

1. 建立一个新的数据库实例,端口3309,创建复制账号

  1. create user 'repl'@'%' IDENTIFIED BY '123456';
  2. grant replication slave ON *.* to 'repl'@'%';

把备份的binlog日志复制到新的3309数据库实例中,

cp log_bin.* ../mysql_data3309/

重启mysql可以通过

show binary logs;

查看执行过的GTID; 这里的 0745b539-0643-11ed-bb30-000c29023840:1-151446 就是我们后面要恢复到的gtid.

 

2. 建立一个新的数据库实例,端口3308

① 把最近用xtrabackup工具备份的数据拿到,还原到3308数据库中

xtrabackup --defaults-file=/etc/mysql3307/my.cnf --copy-back --target-dir=/mdata/backup

② 开始执行change master来拉取3309中伪装的binlog数据,让binlog从备份开始的位置重新跑一遍。

  1. change master to master_host='192.168.88.150', master_port=3309, master_user='repl', master_password='123456', master_ssl=1, master_auto_position=1;
  2. start slave;

③ 关键看 show slave status;

 Executed_Gtid_Set的Gtid有没有跟上来,如果执行完binlog中gtid则表示数据已经恢复成功。

细节:这里用做恢复的3308的数据库实例,一定要用新的数据库去操作,我一直用以前主库3307的数据库去测试操作,造成的问题就是Retrieved_Gtid_Set没有数据库,3308的Relay Log一直获取不到数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/889955
推荐阅读
相关标签
  

闽ICP备14008679号