使用须知
DRS全量+增量迁移过程一般包含四个阶段:任务启动阶段、全量阶段、增量阶段、结束任务阶段(单全量任务则包含三个阶段)。为了确保迁移各个阶段的平顺,在创建迁移任务前,请务必阅读以下使用须知。
表3 使用须知
类型名称 |
使用和操作限制 |
任务启动前须知 |
- 源数据库对象要求:
- 创建全量+增量任务,需要支持PSYNC命令。
- 为准确计算时延,DRS会在源库中插入一个前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的 key记录更新时间点,如果源库为集群架构,DRS会在源库各个shard上均插入该key,同步过程中会过滤该key,同步任务结束,该key就会过期。增量过程中,该key值在源库存在,在目标库不存在,该key值对比结果可能会不一致。若实际业务中也存在前缀为DRS_REDIS_TIMESTAMP_HEARTBEAT的key值,可能导致数据不一致。
- 源库为只读实例或者DRS无写入权限时,上报的时延可能不准。
- 目标数据库对象要求:
- 目标库必须是本云GeminiDB Redis实例。
- 迁移前目标库GeminiDB Redis实例建议为空。
- 目标数据库实例版本要高于或等于源数据库版本。
- 其他使用须知:
- 全量+增量任务使用解析RDB的方式读取数据。
- 迁移Lua脚本时,源库需要同时有其它数据,否则无法解析出RDB中的Lua脚本,导致Lua脚本迁移失败。
- DRS不会对目标库进行FLUSH等高危操作,所以对于List列表类型数据,可能出现重复的数据。
- 源库测试连接时,必须填写Redis集群所有分片的IP地址。同时为了避免影响源端Redis实例的业务访问,强烈建议从源实例的副本节点(从节点)进行数据迁移,即推荐填写Redis集群的Slave节点IP地址。
- 为保障增量迁移有效进行,建议迁移前,评估源库Redis参数,将源库的配置文件redis.conf中repl-backlog-size参数的值适当调大。
- 迁移过程中,如果源库Redis集群发生扩缩容(例如增加或者减少分片)、规格变配(例如扩大内存),则需要重新配置迁移任务。且为保证数据一致性,在重新配置任务前,建议先清空已迁移至目标GeminiDB Redis的数据。
- 如果源库中的某些Key设置了过期(expire)策略,由于可能存在Key已过期但未被及时删除的情况,所以在目标库中查看Key数量(例如通过info命令查看)时会比源库的Key数量少。为保障数据的一致性,建议设置延长Key的过期时间。
|
全量迁移阶段须知 |
- 迁移过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。
- 迁移过程中,如果源库Redis集群发生主备倒换,任务会失败,需要清空目标库重置任务。
- 迁移过程中,不允许对正在迁移中的目标数据库进行修改操作。
|
增量迁移阶段须知 |
- 迁移过程中,不允许修改连接源和目标数据库的密码,或修改源和目标数据库的端口号。
- 迁移过程中,如果源库Redis集群发生主备倒换,任务会失败,需要清空目标库重置任务。
- 迁移过程中,不允许对正在迁移中的目标数据库进行修改操作。
|