一、clone plugin说明
The clone plugin, introduced in MySQL 8.0.17, permits cloning data locally or from a remote MySQL server instance. Cloned data is a physical snapshot of data stored in InnoDB that includes schemas, tables, tablespaces, and data dictionary metadata. The cloned data comprises a fully functional data directory, which permits using the clone plugin for MySQL server provisioning.
MySQL 8.0.17 引入的克隆插件允许在本地或从远程 MySQL 服务器实例克隆数据。克隆的数据是 InnoDB 中存储的数据的物理快照,包括schemas、tables、tablespaces和数据字典元数据。克隆的数据包含一个完全功能正常的数据目录,允许使用克隆插件为 MySQL 服务器提供支持。
本文将演示使用clone plugin搭建主从高可用架构的整个过程。
二、clone plugin使用限制
- 数据库版本必须是8.0.17及以上。
- 克隆操作仅支持InnoDB表,对于其他存储引擎的表,只会克隆其表结构而不会复制数据。
- 源端和目标端必须是同一系列的MySQL服务器,例如8.0.37和8.0.41。在8.0.37之前的版本中,它们也必须是同一版本的发布版本。
- 从MySQL 8.0.27开始,克隆操作不再阻塞源端的DDL操作。
三、环境说明
| 主机名 | ip地址 | OS版本 | 内存、CPU | 机器用途 |
|---|---|---|---|---|
| node2 | 192.*.*.20 | Centos7.9 | 4G 、 1个双核 | 主节点(源端) |
| node3 | 192.*.*.30 | Centos7.9 | 4G 、 1个双核 | 从节点(目标端) |
四、实验过程
4.1 检查数据库版本
select version();

4.2 查非innodb的表
select TABLE_SCHEMA,TABLE_NAME from information_schema.tables where ENGINE!='innodb'and TABLE_SCHEMA not in ('information_schema','mysql','performance_schema','sys');
4.3 安装克隆插件
INSTALL PLUGIN clone SONAME 'mysql_clone.so';

4.4 检查克隆插件是否安装成功
SELECT PLUGIN_NAME,PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='clone';

4.5 从节点检查 donor 名单
show global variables like 'clone_valid_donor_list';

4.6 从节点设置 donor 名单
#将主节点(源库)的实例 ip、 port 添加到从节点(目标库)的 `clone_valid_donor_list` 变量中:
SET GLOBAL clone_valid_donor_list = '192.*.*.20:3306';


4.7 从节点开始clone操作
后台执行:
#注意替换ip地址、端口和密码
nohup mysql -uroot -p'pass' -e "CLONE INSTANCE FROM 'root'@'192.*.*.20':port IDENTIFIED BY 'pass';" &

4.8 监控克隆状态和进度
select * from performance_schema.clone_status\G; select * from performance_schema.clone_progress;


4.9 配置主从(从库上执行)
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='192.*.*.20',
SOURCE_PORT = 3306,
SOURCE_USER='repl',
SOURCE_PASSWORD='******',
SOURCE_AUTO_POSITION=1,
GET_SOURCE_PUBLIC_KEY=1;

4.10 开启主从复制(从库上执行)
start replica; show replica status\G;


五、官方文档
https://dev.mysql.com/doc/refman/8.0/en/clone-plugin.html
六、总结
MySQL Clone Plugin适用于需要快速搭建主从高可用、快速搭建测试环境等场景,有需求的朋友们快试一试吧!
关于作者:
专注于Oracle、MySQL、PG、OpenGauss和国产数据库的研究,热爱生活,热衷于分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同进步~~~




