数据迁移有哪些方式?迁移时有什么注意事项?
分布式缓存数据库支持多种数据迁移方式,适用于不同的源端场景:
迁移方式:
迁移方式 | 适用场景 | 说明 |
DTS 在线迁移 | 自建 Redis / 其他云厂商 Redis / 腾讯云实例间 | 支持全量 + 增量迁移,业务无需停写 |
RDB 文件导入(冷迁移) | 有 RDB 备份文件 | 通过 COS 上传后导入,适合离线场景 |
redis-shake 工具 | 自建 Redis → 腾讯云 | 开源工具,灵活性高 |
迁移前注意事项:
1. 版本兼容性:目标实例的 Redis 版本需大于或等于源端版本。不支持高版本向低版本迁移。
2. 架构差异:从标准架构迁移到集群架构时,需确认业务代码中是否使用了跨 Slot 的多 Key 操作(如
MGET、事务、Lua 跨 Key)。集群架构下这类操作可能失败。3. 容量规划:目标实例的内存规格应不小于源端已用内存量的1.5倍,预留 Buffer 空间。
4. 账号密码:确认源端实例的连接地址、端口和密码可正常访问,且未被安全组限制。
5. 大 Key 检查:源端若存在超大 Key(如单个 Value 超过512MB),可能导致迁移任务超时或失败,建议迁移前先拆分。
迁移过程注意事项:
DTS 迁移分为全量同步和增量同步两个阶段。全量阶段源端可能产生额外负载,建议在低峰期启动。
增量同步阶段会持续消耗源端带宽(读取 AOF/RDB 流),建议监控源端负载。
迁移完成后需手动执行迁移校验确认数据一致性。确认无误后执行完成迁移操作切断同步通道。
常见迁移失败原因:
失败原因 | 处理方式 |
源端连接失败 | 检查源端地址、密码、安全组配置 |
目标容量不足 | 扩容目标实例后重新迁移 |
版本不兼容 | 升级目标实例版本 |
大 Key 超时 | 拆分大 Key 后重试 |
源端执行 FLUSHALL | 迁移中源端清库会导致目标端数据被清空,需重新迁移 |