MGR 8.0利用clone恢复节点

1.提前安装好3节点MGR
 
mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
| group_replication_applier | a585b484-edb8-11ea-a88e-02000aba3c3f | node1       |        3306 | ONLINE       | PRIMARY     | 8.0.17         |
| group_replication_applier | e56e5f03-edb8-11ea-99ed-02000aba3c55 | node3       |        3306 | ONLINE       | PRIMARY     | 8.0.17         |
| group_replication_applier | fde219ba-edc3-11ea-a617-02000aba3c4c | node2       |        3306 | ONLINE       | PRIMARY     | 8.0.17         |
+---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+
3 rows in set (0.00 sec)



2.用sysbench准备一些数据 [root@node3 data]# sysbench oltp_write_only --table-size=200000 --tables=10 --threads=4 --db-driver=mysql --mysql-db=sbtest --mysql-host=10.186.60.63 --mysql-user=root --mysql-password=123456 --time=3600 --report-interval=3 prepare


3.模拟故障(在node2上删除sbtest) stop group_replication; set global read_only=0; drop database sbtest; 这时node2节点上日志出现报错 node2被踢出集群 mysql> select * from performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+ | group_replication_applier | a585b484-edb8-11ea-a88e-02000aba3c3f | node1 | 3306 | ONLINE | PRIMARY | 8.0.17 | | group_replication_applier | e56e5f03-edb8-11ea-99ed-02000aba3c55 | node3 | 3306 | ONLINE | PRIMARY | 8.0.17 | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+


4.处理:利用clone复制一份数据 修改node2配置文件(将MGR的配置注释掉,在MGR组复制拓扑中,执行克隆操作的节点不能是MGR组中的成员,否则报错) transaction_write_set_extraction=XXHASH64 loose-group_replication_group_name="641a9716-e2ba-4796-9e71-8bc927eb5b2b" loose-group_replication_start_on_boot=off loose-group_replication_local_address="10.186.60.76:33061" loose-group_replication_group_seeds="10.186.60.63:33061,10.186.60.116:33061,10.186.60.117:33061" loose-group_replication_bootstrap_group=off loose-group_replication_single_primary_mode=FALSE loose-group_replication_enforce_update_everywhere_checks= TRUE 增加用户添加clone插件(node1) CREATE USER 'donor_clone_user'@'10.186.60.%' IDENTIFIED WITH 'mysql_native_password' BY '123456'; GRANT BACKUP_ADMIN on *.* to 'donor_clone_user'@'10.186.60.%'; INSTALL PLUGIN clone SONAME 'mysql_clone.so'; 增加用户添加clone插件(node2) CREATE USER 'recipient_clone_user'@'10.186.60.%' IDENTIFIED WITH 'mysql_native_password' BY '123456'; GRANT CLONE_ADMIN on *.* to 'recipient_clone_user'@'10.186.60.%'; INSTALL PLUGIN clone SONAME 'mysql_clone.so'; SET GLOBAL clone_valid_donor_list = '10.186.60.63:3306'; 执行clone操作(node2) mysql -urecipient_clone_user -p123456 -h 10.186.60.76 -P3306 mysql> CLONE INSTANCE FROM 'donor_clone_user'@'10.186.60.63':3306 IDENTIFIED BY '123456'; ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process). ###这个正常,重启一次 启动mgr复制(node2) #先修改配置文件,将之前注释的mgr的配置打开 transaction_write_set_extraction=XXHASH64 loose-group_replication_group_name="641a9716-e2ba-4796-9e71-8bc927eb5b2b" loose-group_replication_start_on_boot=off loose-group_replication_local_address="10.186.60.76:33061" loose-group_replication_group_seeds="10.186.60.63:33061,10.186.60.116:33061,10.186.60.117:33061" loose-group_replication_bootstrap_group=off loose-group_replication_single_primary_mode=FALSE loose-group_replication_enforce_update_everywhere_checks= TRUE #重启 systemctl restart mysqld mysql -uroot -p start group_replication;


5.查看状态 mysql> select * from performance_schema.replication_group_members; +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+ | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+ | group_replication_applier | a585b484-edb8-11ea-a88e-02000aba3c3f | node1 | 3306 | ONLINE | PRIMARY | 8.0.17 | | group_replication_applier | e56e5f03-edb8-11ea-99ed-02000aba3c55 | node3 | 3306 | ONLINE | PRIMARY | 8.0.17 | | group_replication_applier | fde219ba-edc3-11ea-a617-02000aba3c4c | node2 | 3306 | ONLINE | PRIMARY | 8.0.17 | +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+ 3 rows in set (0.00 sec)

 

posted @ 2021-02-20 18:11  屠魔的少年  阅读(4)  评论(0)    收藏  举报