假设
innodb cluster集群跑了1年,突然某个节点挂掉了,这个时候,日志也已经没有binlog.000001了,如果在线增加一个从库呢,官方给出基于mysqlbackup
的恢复方式,在剩余从库上做备份,在新从库上恢复,这里有些技术点,我忽略了,苦恼很久。
频繁操作数据写入库,切换四个binlog。flush logs , show binary logs
从库2的binlog 和relay-log
可以看到,主库切换日志,从库并不进行切换
清理掉第1,2个binglog,再写入一些数据,PURGE MASTER LOGS TO 'binlog.000003';
mysqlbackup --host=127.0.0.1 --port=3310 --user=backup --password=$$$$$$$$ --no-history-logging --backup-dir=/data/backup/fullbak --with-timestamp backup-and-apply-log
--no-history-logging 因为 在从库操作,不能写备份信息到数据库中
备份压缩拷贝到从机,并解压
scp root@192.168.181.105:/data/backup/fullbak/2018-07-25_14-32-32.tar.gz .
tar -xzvf 2018-07-25_14-32-32.tar.gz
拷贝活着的从库的配置文件,修改组复制部分的信息
恢复从库数据库
mysqlbackup --defaults-file=/data/mysql_3310_test/conf/my.cnf --backup-dir=/data/backup/fullbak/2018-07-26_20-59-35 copy-back-and-apply-log
关闭日志记录:
set sql_log_bin=off;
use mysql
delete from slave_relay_log_info ;
delete from slave_master_info ;
set sql_log_bin=on;
注意这里不能执行
Reset master 和reset slave
和
Drop database mysql_innodb_cluster_metadata
重启一次数据库,应该没有报错了
强制删除挂掉的实例cluster.removeInstance('root@mysql4:3310',{force:1})
增加实例cluster.addInstance('root@mysql4:3310')
组复制的增加成员方式和innodb cluster集群增加成员方式不同,
. 组复制 有reset master 和reset slave 操作,还包括了设置gtid的操作
set @@GLOBAL.GTID_PURGED='80d2433f-8f24-11e8-a8df-000c29f1584d:123';
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。