您可以使用redis-shake的restore模式,通过备份集将云数据库Redis版迁移至自建Redis。
前提条件
- 已创建作为迁移目的端的Redis。
- 用于运行redis-shake的服务器为64位Linux系统。
- Linux服务器可以访问自建Redis。
- 已在控制台完成源Redis实例的备份,备份操作请参见在控制台进行备份与恢复。
准备工作
执行数据迁移前,您需要从控制台下载备份集数据并下载redis-shake。
- 登录Redis管理控制台。
- 在顶部菜单栏的左上角,选择实例所属的地域。
- 在实例列表页,单击目标实例ID。
- 在左侧导航栏,单击备份与恢复。
- 在备份与恢复页面,定位到需要迁移的备份文件,单击备份文件右侧的下载。
说明 Redis集群版的每个节点都会生成对应的备份文件。
- 下载redis-shake。
说明 建议您下载最新发布的版本。
- 执行下述命令,解压redis-shake.tar.gz文件。
tar -xvf redis-shake.tar.gz
说明 解压获得的 redis-shake为64位Linux系统所需的二进制文件, redis-shake.conf为redis-shake的配置文件。
操作步骤
- 修改redis-shake配置文件redis-shake.conf,restore模式涉及的主要参数说明如下。
表 1. redis-shake restore模式参数说明 参数 说明 示例 rdb.input 备份文件(RDB文件)的路径,可使用相对路径或绝对路径。 /root/tools/RedisShake/demo.rdb target.address 目的Redis的连接地址与端口号。 r-bp1xxxxxxxxxxxxx.redis.rds.aliyuncs.com:6379
target.password_raw 目的Redis的连接密码。 TargetPass233
说明 如使用非默认账号连接云数据库Redis版实例,密码格式为account:password
。target.db 要将数据恢复到的db,默认为0。例如,要将所有数据恢复到目的Redis的db10,则需将此参数的值设置为10。当该值小于0时,数据将恢复至db0。 0
rewrite 如果目的Redis有与RDB文件中相同的key,是否覆盖,可选值: - true(覆盖);
- false(不覆盖)。
说明 默认为true,建议对目的Redis中的有效数据进行完善的备份再执行恢复。如设置为false且存在数据冲突则会出现异常提示。true
parallel RDB文件同步中使用的并发线程数,用于提高同步性能。 说明- 最小值为1
- 最大值取决于服务器性能
- 推荐值为64
64 说明 其它参数如无特殊情况保持默认即可。 - 执行下述命令进行迁移。
./redis-shake -type=restore -conf=redis-shake.conf
说明 此命令需在二进制文件 redis-shake和配置文件 redis-shake.conf所在的目录中执行,否则请在命令中指定正确的文件路径。 - 日志中出现
restore: rdb done
表示数据恢复完成,此时按Ctrl+C退出执行即可。说明 Redis集群版每个节点的备份文件都需要按照上述步骤进行一次恢复操作。