You need to enable JavaScript to run this app.
导航

使用限制(源库为 Redis)

最近更新时间2023.04.14 15:36:19

首次发布时间2021.11.23 10:18:01

本文介绍当迁移或同步的目标库类型为 Redis(如火山引擎缓存数据库 Redis 版或自建 Redis)时,支持的数据库以及使用限制详情。

支持的数据库

源库目标库支持的版本迁移类型同步类型
  • 火山引擎版 Redis

  • 公网自建 Redis

火山引擎版 Redis

  • Redis 4.0

  • Redis 5.0

  • Redis 6.0

  • 全量迁移

  • 增量迁移

  • 全量初始化

  • 增量同步

说明

  • 当您在创建同步任务时,当前仅支持选择火山引擎版 Redis。
  • 数据库传输服务 DTS 暂不支持迁移阿里云的云原生内存数据库 Tair 的数据至火山引擎版 Redis。如需迁移,请提交工单联系技术支持。

使用限制

类型说明

源库限制

  • 带宽要求,源库所属的服务器需具备足够出口带宽,否则将影响数据迁移的速率。

  • 数据库传输服务 DTS 在执行全量迁移或全量初始化时,将占用源库和目标库的部分资源,可能会导致数据库服务器负载上升。当数据库业务量较大或服务器规格较低时,可能会加重数据库的压力,甚至导致数据库服务不可用。建议在业务低峰期执行数据迁移或同步,您也可以调大源库的client-output-buffer-limit 的参数值。

  • 当源库中的某些 Key 使用了过期(expire)策略时,可能存在 Key 已过期但未被及时删除的情况,导致目标库中查看到的 Key 数量(例如通过 info 命令查看)会比源库的 Key 数量少。

  • 在迁移或同步期间,当源库发生扩缩容(如增加或减少分片)、规格变配(如扩大内存)时,您需重新配置任务。为保障数据一致性,在重新配置任务前,建议先清空已迁移或同步至目标 Redis 的数据。

  • 由于缓存数据库 Redis 版的单节点实例未开启 AOF 持久化,因此无法使用数据库传输服务 DTS 迁移或同步此类型实例。

  • 迁移或同步任务期间,如果源库的连接地址发生变化,导致任务失败,您需要重新配置任务。如果仍未成功,可提交工单联系技术人员,如果长时间未处理,源库会重置 AOF 文件。

  • 用于数据迁移或同步的账号需具备以下权限:

    • 源库可以执行 syncpsyncconfig get 命令。

    • 目标库可以执行写命令。

其他限制

  • 在双向同步过程中仅支持两个 Redis 实例间的同步,不支持多个 Redis 成环的同步,同时也不支持级联。

  • 双向同步无法解决 CRDT 问题,您需要保证源库和目标库中没有对同一 Key 的操作。

  • 建议源库和目标库的 Redis 的数据库版本保持一致,或者从低版本迁移到高版本以保障兼容性。如果是高版本迁移到低版本,可能存在数据库兼容性或数据丢失问题。

  • 在增量数据迁移时,由于目标库在执行脚本时不会明确返回执行结果,对于通过 EVAL 或 EVALSHA 调用的 Lua 脚本,数据库传输服务 DTS 无法确认该类型脚本是否执行成功。

  • 执行数据迁移或同步前,需评估源库或目标库的性能,同时建议您在业务低峰期执行数据迁移或同步。否在全量数据迁移或全量初始化时 DTS 占用源库或目标库一定的读写资源,可能导致数据库的负载上升。源库写入量较大的情况下可能会导致迁移、同步失败。

  • 目标 Redis 数据库的存储空间需大于源 Redis 数据库占用的存储空间。

  • 数据库传输服务 DTS 在调用 psyncsync 命令传输数据时,会对目标库数据进行覆盖写入,即如果目标库存在相同的 key,会先进行 del 操作。

  • 在同步任务中,超过 16MB 的大 Key 会被丢弃,在同步任务前需谨慎评估。

特殊情况

  • 如果目标库的数据逐出策略参数 maxmemory-policy 配置为 noeviction 以外的值,可能导致目标库的数据和源库不一致。
  • 在您需要将阿里云的云数据库 Redis 版的数据迁移至火山引擎的缓存数据库 Redis 版时,由于数据库传输服务 DTS 当前仅支持迁移默认账号 default 下的数据,阿里云的 default 账号没有复制权限,因此您需要在阿里云的 Redis 中创建新的数据库账号,并赋予该账号复制权限。当需要迁移阿里云的云数据库 Redis 版的数据时,此处需输入新账号:新账号密码
  • 在迁移或同步任务执行过程中,源库、目标库重启或发生主备切换时,可能导致迁移失败。