Clone 与备份建从库怎么选
新建从库有两条路:一是用备份恢复后再拉起复制(通用路线,依赖备份体系),二是用 Clone 插件直接克隆源实例(8.0.17 起,一条命令完成)。Clone 的速度接近磁盘拷贝,且在克隆期间源库可以继续写入;备份路线则对源库与目标库的版本组合更宽容。数据量越大、版本越新,Clone 的优势越明显;跨版本、跨厂商或云上权限受限时,备份建库仍是首选。
基本信息
| 备份路线 | 备份 → prepare → 恢复 → 配置复制与自动位点 |
|---|---|
| Clone 路线 | 目标实例执行 CLONE INSTANCE FROM 后自动接管数据并对齐位点 |
| 版本要求 | Clone 需要 8.0.17 及以上,源与目标版本需兼容 |
| 源端影响 | 克隆期间源库可继续写入,需要记录并保留相应 binlog |
| 共同收尾 | 拉起复制、确认追平、做一致性校验 |
典型使用场景
- 扩容建从库:数据量大时用 Clone 缩短搭建时间,尽快进入可用状态
- 灰度环境搭建:从生产克隆一份到独立环境,避免重新导入全量数据
- 跨版本迁移:版本跨度大或云实例不开放克隆接口时走备份路线
- 测试重建:需要频繁重建的测试环境用备份路线更省事
- 灾备演练:两条路线都演练一遍,明确各自所需时间与前置条件
Clone 与备份路线示意
Clone 与备份路线示意
-- Clone 路线:在目标实例上执行,源端需有相应权限与插件
CLONE INSTANCE FROM 'repl'@'10.0.0.10':3306
IDENTIFIED BY '***';
-- 克隆完成后查看实例状态与 GTID 位置
SELECT @@server_id, @@hostname;
SHOW REPLICA STATUS\G
-- 备份路线收尾:恢复数据后按自动位点起复制
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='10.0.0.10', SOURCE_USER='repl', SOURCE_PASSWORD='***',
SOURCE_AUTO_POSITION=1;
START REPLICA;选型对照
| 维度 | 备份建库 | Clone 建库 |
|---|---|---|
| 耗时 | 受备份与恢复速度限制 | 接近磁盘拷贝,通常更快 |
| 操作步骤 | 备份、prepare、恢复、配置复制 | 一条克隆命令加复制收尾 |
| 版本要求 | 工具匹配即可,跨度较宽 | 8.0.17+,源与目标版本兼容 |
| 依赖条件 | 备份体系与中转存储 | 源端在线并允许克隆 |
| 适用场景 | 跨版本、跨厂商、云权限受限 | 同版本、大数据量、追求速度 |
两条路线的收尾是同一件事:把复制拉起来、确认延迟归零、做一次一致性比对。克隆完成不等于交付完成。
Clone 期间源端发生大规模 DDL 可能导致克隆失败并需要重来,选择低变更窗口执行能显著提高成功率。