更新时间:2024-11-29 GMT+08:00

Redis数据恢复工具

操作场景

该操作指导MRS集群管理员在Redis服务因故障或重新安装时,使用之前的备份数据文件来恢复Redis集群中保存的数据。恢复操作不会删除Redis集群中已有的数据。

前提条件

  • Redis集群及实例运行正常。
  • 已获取备份好的Redis数据文件。
  • 如果Redis服务的安装模式为安全模式,Redis客户端需要登录认证并授权以后才能访问或操作Redis集群,因此需要做以下操作:
    1. 登录FusionInsight Manager,选择“系统 > 权限 > 角色”,创建具有管理、写指定Redis集群权限的角色,请参见创建Redis角色
    2. 选择“系统 > 权限 > 用户”,创建一个“机机”用户,并赋予1创建的角色权限。
    3. 用户创建成功后,在用户列表中单击该用户名称后的“更多 > 下载认证凭据”,下载keytab文件,待文件自动生成后指定保存位置。

      xxx”表示版本号,具体以实际环境的版本号为准。

    4. 解压keytab文件,以omm用户将解压得到的文件上传到要操作的Redis节点的“软件安装路径/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/config”目录下。
    5. 修改“软件安装路径/FusionInsight_HD_xxx/install/FusionInsight-redis-xxx/redis/config/auth.conf”文件中的“userName”为“用户名@集群域名”,修改“realmsName”为当前域名,修改“keyTabFile”配置值为上传的“user.keytab”文件的绝对路径,修改“krbConfPath”配置值为上传的“krb5.conf”文件的绝对路径。

操作步骤

  1. 将要恢复的数据文件上传到集群内任意Redis节点中,例如“/opt/arch/cluster1”目录下。
  2. root用户登录该节点。
  3. 执行以下命令打开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实例地址及端口备用,使用英文逗号隔开)。

    • Redis实例的IP地址即为该Redis实例所在节点的IP地址。
    • Redis实例的端口计算方式为:22400+该实例的ID-1。

      实例ID可以通过在FusionInsight Manager中单击“集群 > 待操作集群的名称 > 服务 > Redis > Redis管理”,单击Redis集群名称查看。

      例如Redis集群内角色R1对应的Redis实例的端口为22400+1-1=22400。

    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

  4. 在备份路径下执行如下命令以确保omm用户具有操作权限。

    chmod 744 备份文件最外层路径 -R

    chown omm:wheel 备份文件最外层路径 -R

  5. 执行su - omm命令切换到omm用户下。
  6. 进入“${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