mysql 8.0版本引入了克隆插件功能,通过CLONE INSTANCE语句可以直接将源实例的数据和元数据克隆到目标实例,无需手动执行备份恢复操作,非常适合快速扩容从库的场景。该功能支持本地克隆和远程克隆两种模式,从库扩容通常使用远程克隆,直接将主库数据同步到新的从库节点。

克隆插件的基础配置
1. 安装克隆插件
首先需要在主库和待扩容的从库实例上都安装克隆插件,mysql 8.0默认未启用该插件,需要手动加载。登录mysql实例后执行以下命令:
-- 安装克隆插件 INSTALL PLUGIN clone SONAME 'mysql_clone.so'; -- 验证插件是否安装成功 SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'clone';
如果查询结果中PLUGIN_STATUS显示为ACTIVE,说明插件安装成功。
2. 配置克隆相关权限
远程克隆需要源实例(主库)有克隆用户,目标实例(新从库)有接收克隆数据的权限。首先在主库创建具备克隆权限的用户:
-- 主库创建克隆用户,允许从库IP连接 CREATE USER 'clone_user'@'从库IP' IDENTIFIED BY 'Clone@123'; -- 授予克隆权限 GRANT BACKUP_ADMIN ON *.* TO 'clone_user'@'从库IP'; -- 刷新权限 FLUSH PRIVILEGES;
然后在待扩容的从库实例上,创建用于执行克隆操作的用户并授予权限:
-- 从库创建执行克隆的用户 CREATE USER 'clone_local'@'localhost' IDENTIFIED BY 'Local@123'; -- 授予CLONE_ADMIN权限,该权限包含执行克隆操作和重启实例的权限 GRANT CLONE_ADMIN ON *.* TO 'clone_local'@'localhost'; FLUSH PRIVILEGES;
3. 配置实例参数
为了保证克隆过程正常进行,还需要调整部分实例参数,建议在主从实例的配置文件my.cnf中添加以下配置后重启实例:
- clone_max_connections:设置克隆操作允许的最大连接数,默认值为10,可根据实例负载调整,建议设置为20以上
- clone_valid_donor_list:在从库实例上配置该参数,指定允许克隆的源实例列表,格式为
主库IP:主库端口
从库my.cnf配置示例:
[mysqld] clone_valid_donor_list='主库IP:3306' clone_max_connections=20
使用CLONE INSTANCE扩容从库
1. 执行远程克隆操作
登录待扩容的从库实例,切换到之前创建的具备CLONE_ADMIN权限的用户,执行以下克隆语句:
-- 执行远程克隆,将主库数据克隆到当前从库 CLONE INSTANCE FROM 'clone_user'@'主库IP':3306 IDENTIFIED BY 'Clone@123';
克隆过程会持续一段时间,具体时长取决于主库数据量大小,执行期间可以通过以下语句查看克隆进度:
-- 查看克隆进度 SELECT * FROM performance_schema.clone_statusG SELECT * FROM performance_schema.clone_progressG
克隆完成后,从库实例会自动重启,此时从库已经包含了主库的所有数据和元数据。
2. 配置从库复制关系
克隆完成后,需要配置从库连接主库的复制通道,首先在主库查看当前的二进制日志位点:
-- 主库查看二进制日志信息 SHOW MASTER STATUSG
记录下File和Position的值,然后登录从库执行以下命令配置复制:
-- 配置主库连接信息 CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='复制用户', MASTER_PASSWORD='复制用户密码', MASTER_LOG_FILE='主库二进制日志文件名', MASTER_LOG_POS=主库二进制日志位点; -- 启动复制 START SLAVE; -- 查看复制状态 SHOW SLAVE STATUSG
当Slave_IO_Running和Slave_SQL_Running都显示为YES时,说明从库扩容完成,已经开始正常同步主库数据。
注意事项与问题排查
- 克隆操作会清空从库原有的所有数据,因此待扩容的从库必须是全新实例,或者确认原有数据可以删除
- 克隆过程中主库会处于只读状态吗?不会,克隆操作是在线进行的,主库可以正常处理读写请求,只会在克隆完成重启从库时短暂影响从库
- 如果克隆失败,可以查看mysql错误日志,常见原因包括网络不通、权限配置错误、clone_valid_donor_list未正确配置等
- 克隆完成后建议检查从库的数据一致性,可以使用pt-table-checksum工具进行校验
注意:如果主库开启了GTID模式,从库克隆完成后会自动继承主库的GTID信息,配置复制时不需要指定MASTER_LOG_FILE和MASTER_LOG_POS,直接执行CHANGE MASTER TO MASTER_AUTO_POSITION=1即可。
mysql_8.0克隆插件CLONE_INSTANCE从库扩容修改时间:2026-06-25 19:48:35