Redis数据恢复工具
操作场景
该操作指导MRS集群管理员在Redis服务因故障或重新安装时,使用之前的备份数据文件来恢复Redis集群中保存的数据。恢复操作不会删除Redis集群中已有的数据。
前提条件
- Redis集群及实例运行正常。
- 已获取备份好的Redis数据文件。
- 如果Redis服务的安装模式为安全模式,Redis客户端需要登录认证并授权以后才能访问或操作Redis集群,因此需要做以下操作:
- 登录FusionInsight Manager,选择“系统 > 权限 > 角色”,创建具有管理、写指定Redis集群权限的角色,请参见创建Redis角色。
- 选择“系统 > 权限 > 用户”,创建一个“机机”用户,并赋予1创建的角色权限。
- 用户创建成功后,在用户列表中单击该用户名称后的“更多 > 下载认证凭据”,下载keytab文件,待文件自动生成后指定保存位置。
“xxx”表示版本号,具体以实际环境的版本号为准。
- 解压keytab文件,以omm用户将解压得到的文件上传到要操作的Redis节点的“软件安装路径/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/config”目录下。
- 修改“软件安装路径/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/config/auth.conf”文件中的“userName”为“用户名@集群域名”,修改“realmsName”为当前域名,修改“keyTabFile”配置值为上传的“user.keytab”文件的绝对路径,修改“krbConfPath”配置值为上传的“krb5.conf”文件的绝对路径。
操作步骤
- 将要恢复的数据文件上传到集群内任意Redis节点中,例如“/opt/arch/cluster1”目录下。
- 以root用户登录该节点。
- 执行以下命令打开Redis备份配置文件“aof-backup.properties”,根据表1中的说明,配置相关参数,并保存退出。
vi ${BIGDATA_HOME}/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/config/aof-backup.properties
表1 恢复Redis集群数据所需配置的参数列表 参数名称
参数描述
参数样例
redis.server.mode
Redis运行模式。
- single
- cluster
说明:当前版本只支持Redis集群模式下的数据备份与恢复。
cluster
redis.server.address
Redis实例的IP地址(业务平面)及端口。
只需配置要恢复的Redis集群中任意一个Redis实例的IP地址及端口即可(也可配置同一Redis集群内的多个Redis实例地址及端口备用,使用英文逗号隔开)。
192.168.0.100:22400
192.168.0.100:22400,192.168.0.101:22401
client.read.timeout
客户端读写超时时间(单位:毫秒),建议保持默认值。
10000
aof.source
要恢复的数据文件,需要包含完整路径。
如果有多个数据文件,使用英文逗号隔开。
/opt/arch/cluster1/192.168.0.101-22400.aof,/opt/arch/cluster1/192.168.0.101-22401.aof,/opt/arch/cluster1/192.168.0.102-22400.aof
max.worker.num
恢复数据文件的最大线程数,建议保持默认值。
10
redis_ssl_on
SSL通道加密启用开关,需与Manager界面上设置保持一致。
- true
- false
说明:登录FusionInsight Manager,选择“集群 > 服务 > Redis > 配置 > 全部配置”,搜索“redis_ssl_on”可查看此参数值。
false
- 在备份路径下执行如下命令以确保omm用户具有操作权限。
chmod 744 备份文件最外层路径 -R
chown omm:wheel 备份文件最外层路径 -R
- 执行su - omm命令切换到omm用户下。
- 进入“${BIGDATA_HOME}/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/sbin”目录,执行“redis-restore.sh”脚本。
cd ${BIGDATA_HOME}/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/sbin
./redis-restore.sh
恢复成功后,界面显示:
/opt/arch/cluster1/192.168.0.1-22400.aof: Success /opt/arch/cluster1/192.168.0.2-22400.aof: Success