MySQL8快速clone
# MySQL 8.0 克隆(clone)插件快速搭建主从复制
MySQL 8.0 clone插件提供从一个实例克隆数据的功能,克隆功能提供了更有效的方式来快速创建MySQL实例,搭建主从复制和组复制。本文介绍使用 MySQL 8.0 clone 插件快速搭建主从复制的方法。
环境:
mysql 8.0.19
主库:192.168.56.201
从库:192.168.56.202
2
3
本文将通过实例操作,实现从库由主库克隆,克隆完成后,搭建主从复制。
# 1、安装clone插件
主、从节点都需要安装。
安装克隆插件
INSTALL PLUGIN clone SONAME 'mysql_clone.so';
检查插件是否安装成功
mysql> SELECT PLUGIN_NAME,PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='clone';
+-------------+---------------+
| PLUGIN_NAME | PLUGIN_STATUS |
+-------------+---------------+
| clone | ACTIVE |
+-------------+---------------+
2
3
4
5
6
# 2、创建用户并授权
创建复制账号,只需要在主库创建,在克隆完成后,搭建主从复制使用。
在主库上创建复制账号
create user repl@'%' identified by '123456';
grant replication slave on *.* to 'repl'@'%';
2
克隆源,也就是主库,需要有【BACKUP_ADMIN】权限,克隆受体,也就是从库,需要【CLONE_ADMIN】权限,为了方便,我们在两个机器上把这两个权限都加上。
主、从库都需要创建克隆用户并授权
create user 'clone_user'@'%' identified by 'clone123456';
grant BACKUP_ADMIN on *.* to 'clone_user'@'%';
grant CLONE_ADMIN on *.* to 'clone_user'@'%';
2
3
# 3、执行克隆任务:
在从库上执行克隆命令,如下:
设置克隆源,将clone_valid_donor_list设置为主库
SET GLOBAL clone_valid_donor_list = '192.168.56.201:3306';
开始克隆
CLONE INSTANCE FROM 'clone_user'@'192.168.56.201':3306 IDENTIFIED BY 'clone123456';
在执行克隆时,会先将从库本地的数据目录清空,请确保本地数据目录没有重要数据,可以清空,否则将导致本地数据丢失。
克隆完成后,从库MySQL实例自动重启。
# 4、启动复制
从库重启完成后,查看Binlog文件、位置和已经执行的GTID。
SELECT BINLOG_FILE, BINLOG_POSITION FROM performance_schema.clone_status;
SELECT @@GLOBAL.GTID_EXECUTED;
2
重建复制:
change master to master_host='192.168.56.201',master_port=3306,master_user='repl',master_password='123456',master_auto_position=1;
启动复制,查看复制状态
start slave;
show slave status\G
2
# 5、克隆过程中的状态监控
MySQL performance_schema库中提供了clone_status和clone_progress来查询克隆的状态与进度,以便对克隆过程进行监控。
SELECT STATE, ERROR_NO, ERROR_MESSAGE FROM performance_schema.clone_status;
SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;
2
# 6、使用限制
clone功能使用限制: 克隆操作期间,不允许DDL,包括truncate table 克隆的两个MySQL实例版本必须一致 一次只能克隆一个实例 不支持克隆MySQL配置信息 不支持克隆Binlog日志 只支持克隆Innodb存储引擎的数据,其他存储引擎的数据不会被克隆
8.0MGR克隆插件恢复节点流程
注意:MySQL 8.0.17版本后才引入clone克隆插件
注意:跨机房传输限速:
set global clone_max_network_bandwidth =20
这里20MB 转换为 网络bit传输 *8 即 控制带宽在 160Mbs左右
- 01
- GPT分区使用 parted 扩展分区的操作流程 原创08-28
- 02
- VictoriaMetrics 集群版安装与配置 原创08-24
- 03
- Kubernetes (k8s) 相关名词详解 原创06-27