恢复故障集群
如何使用集群配置文件和数据库数据来恢复失败的集群。
当Redis Enterprise Software集群发生故障时,您必须使用集群配置文件和数据库数据来恢复集群。
注意:
对于Kubernetes部署中的集群恢复,请参阅在Kubernetes上恢复Redis Enterprise集群。集群故障可能由以下原因引起:
- 硬件或软件故障导致集群对客户端请求或管理操作无响应。
- 超过一半的集群节点与集群失去连接,导致法定人数丢失。
要恢复集群并重新创建它在故障之前的状态,您必须将集群配置ccs-redis.rdb
恢复到集群节点。要在新集群中恢复数据库,您必须从持久化文件(如备份文件、仅追加文件(AOF)或RDB快照)中恢复数据库。这些文件存储在持久存储位置。
集群恢复过程包括:
- 在新集群的节点上安装Redis Enterprise Software。
- 将包含原始集群恢复文件的持久存储挂载到新集群的节点上。
- 在新集群的第一个节点上恢复集群配置。
- 将剩余的节点加入新集群。
- 恢复数据库。
先决条件
- 我们建议您将集群恢复到干净的节点。 如果使用原始节点, 请确保新集群中的任何节点上都没有运行Redis进程。
- 我们建议您为新集群使用干净的持久存储驱动器。 如果您使用原始存储驱动器, 请确保将原始存储驱动器上的文件备份到安全位置。
- 确定要用作恢复集群配置的集群配置文件。
集群配置文件是每个节点持久存储上的
/css/ccs-redis.rdb
。
恢复集群
-
(可选)如果您想将集群恢复到原始集群节点,请从节点上卸载Redis Enterprise Software。
-
Install Redis Enterprise Software 在新的集群节点上。
新服务器必须具有与原始服务器相同的基本硬件和软件配置,包括:
- 相同数量的节点
- 至少相同数量的内存
- 相同的Redis Enterprise Software版本
- 相同的安装用户和路径
注意:如果不满足这些要求,集群恢复可能会失败。 -
将包含恢复文件的持久存储驱动器挂载到新节点上。 这些驱动器必须包含集群配置备份文件和数据库持久化文件。
注意:确保用户redislabs有权访问每个节点上配置和持久化文件的存储位置。如果您使用本地持久存储,请将所有恢复文件放置在集群的每个节点上。
-
要恢复原始集群配置,请在新集群的第一个节点上运行
rladmin cluster recover
:rladmin cluster recover filename [ <persistent_path> | <ephemeral_path> ]<filename> node_uid <node_uid> rack_id <rack_id>
例如:
rladmin cluster recover filename /tmp/persist/ccs/ccs-redis.rdb node_uid 1 rack_id 5
当恢复命令成功时,此节点被配置为来自旧集群的ID为1的节点。
-
要将剩余的服务器加入新集群,请从每个新节点运行
rladmin cluster join
:rladmin cluster join nodes <cluster_member_ip_address> username <username> password <password> replace_node <node_id>
例如:
rladmin cluster join nodes 10.142.0.4 username admin@example.com password mysecret replace_node 2
-
运行
rladmin status
以验证恢复的节点现在是否处于活动状态,并且数据库是否正在等待恢复:rladmin status
注意:确保您使用新节点的IP地址更新您的DNS记录。
集群恢复后,您必须恢复数据库。