CLONE INSTANCE可在5–10分钟内重建TB级从库,但需donor与recipient插件状态均为ACTIVE、权限严格分离(donor需BACKUP_ADMIN+REPLICATION SLAVE,recipient需CLONE_ADMIN)、配置完全对齐(含clone_valid_donor_list、bind_address、innodb_file_per_table等),且克隆后必须删除auto.cnf重置server_uuid、手动配置server_id和复制参数,否则主从同步必然失败。

CLONE INSTANCE 能在 5–10 分钟内重建 TB 级从库,但前提是 donor 和 recipient 的状态、权限、配置全部对齐——漏掉任一环节,命令就会卡住、静默退出或报错后中断。
确认 clone 插件状态为 ACTIVE,不是 DISABLED 或空
插件没真正激活是 90% 失败的根源。动态执行INSTALL PLUGIN clone SONAME 'mysql_clone.so' 只在当前会话生效,重启后失效。
- 必须运行 SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'clone',结果中 PLUGIN_STATUS 必须是 ACTIVE
- 若为 DISABLED:检查 SELECT @@plugin_dir 下是否存在 mysql_clone.so(Linux)或 mysql_clone.dll(Windows),并确认 mysql 用户有读+执行权限
- 永久启用必须写进 my.cnf:
[mysqld] plugin-load-add = mysql_clone.so clone = FORCE_PLUS_PERMANENT然后
systemctl restart mysqld(reload 不生效)
donor 和 recipient 权限必须严格分离,不能复用一个账号
克隆不走复制权限体系,源和目标角色不可互换。 - donor(原主库或旧从库)上用户(如'cloner'@'192.168.1.10')必须有:
BACKUP_ADMIN(必需)
REPLICATION SLAVE(后续配主从用)
- recipient(新从库)上同名用户(如 'cloner'@'%')必须有:
CLONE_ADMIN(隐含 SHUTDOWN,因克隆后要自动重启)
- 两边账号必须都存在、密码完全一致,且执行 GRANT 后必须 FLUSH PRIVILEGES
- recipient 上必须提前设白名单:SET GLOBAL clone_valid_donor_list = '192.168.1.10:3306'(不能带 http://,不支持 IPv6)
克隆完成后 auto.cnf 不更新,server_uuid 冲突是致命断点
克隆是物理拷贝,auto.cnf 原样复制,导致 recipient 启动后 @@server_uuid 与 donor 完全相同,后续 CHANGE REPLICATION SOURCE TO 会直接拒绝连接。
- recipient 自动重启后第一件事:删掉 auto.cnf
Linux 路径示例:rm -f /var/lib/mysql/auto.cnf
Windows 路径为 datadir 下同名文件
- 重启 MySQL,再执行 SELECT @@server_uuid,确认已生成新值
- 若仍相同,说明删得不干净或 mysqld 启动时又自动生成了旧文件(检查是否误启用了旧配置)
克隆只传数据和 GTID_EXECUTED,其余全靠手动补全
CLONE INSTANCE 不复制任何配置项,recipient 的 my.cnf 必须提前配好:
- server_id 必须唯一(不能和 donor 或其他从库重复)
- gtid_mode = ON、log_bin、binlog_format = ROW 必须开启
- innodb_file_per_table = ON 是硬性前提,否则克隆中途报 ER_CLONE_DONOR_NOT_SUPPORTED
- 克隆完立刻查位点:SELECT BINLOG_FILE, BINLOG_POSITION FROM performance_schema.clone_status 和 SELECT @@GLOBAL.GTID_EXECUTED
- 手动执行 CHANGE REPLICATION SOURCE TO,注意用你的复制账号(非克隆账号),并设 SOURCE_AUTO_POSITION = 1最常被忽略的是:克隆后 auto.cnf 没清、my.cnf 中 server_id 没改、log_bin 没开——这三处任意一处出错,复制线程就起不来,且错误日志里往往只报“UUID conflict”或“Failed to initialize relay log info structure”,根本看不出是配置缺失。


















