金仓数据库主备集群脑裂问题处理

文章讨论了在单个primary故障和整个集群故障情况下,如何判断并选择新的主节点,以及两种策略可能导致的数据丢失问题。作者强调了备份数据和人工判断数据最新性的必要性,以及针对不同情况的恢复步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于单个primary节点故障切换后产生的两个主节点的情况,我们很容易就能判断哪个节点是最新的数据,因为原主节点宕机后就不会对外提供服务了(原primary库是停止状态)。但对于整个集群故障,比如网络故障,中间有可能出现多个primary对外提供服务的情况,我们就很难判断哪个节点是最新的数据。如果一旦出现此种现象,则需要人工介入,确认主节点,将集群恢复至正常状态。

对于两个或以上的 primary,在选择 primary 节点时,有两个选择:

1.选择最新提升的primary作为主节点。以3节点的集群为例,如以下, node101就是最新提升的主节点(看Timeline)。而如果是两节点的,则可以通过sys_controldata看哪个节点的timeline值更大,就是最新提升的主节点。

2.以原有的 primary 作为主节点,如上图的node102。

对于以上两种策略,其结果都有可能导致数据丢失。我们必须要确定的是哪个节点的数据是最新的数据,或者说哪个节点丢失的数据更少(两个primary可能都对外提供了服务)。具体过程如下:

1.备份所有显示为primary role 节点的data目录。

2.连接到数据库中人为判断哪个节点的实际业务数据最新。

3.通过select sys_current_wal_lsn();注意:切换时间线时执行checkpoint会导致较高时间线的数据库LSN 大,但是数据并不一定最新。

如果最终选择以最新提升(最高的TimeLine)的primary作为主节点,则其它节点只需参照Node Rejoin—节,将原primaryrole节点重新集群即可。如果选择以原有primary作为主节点,则需要参照 Standby clone 一节,将其它节点加入。

### 关于人大金仓数据库集群搭建教程 #### 用户与权限设置 对于创建用于运行人大金仓数据库服务的操作系统账户,确保该用户的UID和GID均为1000,并属于名为`kingbase`的组[^1]。 #### 安装路径配置 选择合适的目录作为人大金仓数据库集群的安装位置。此操作应在指定版本章节指导下完成,即按照文档中的1.1.5部分说明来设定集群的具体安放地点。 #### 执行安装脚本 准备好所有必要的前置条件之后,在目标文件夹内找到预先放置好的`cluster_install.sh`脚本文件并执行之。通过命令行输入`sh cluster_install.sh`来进行实际部署过程[^2]。 #### License 文件处理 授权文件`license.dat`需被独立准备出来,并上传到特定的位置,具体来说就是将其置于`/home/kingbase/r6_install/`这个路径下以便后续步骤调用[^3]。 #### 配置参数调整 编辑位于相同目录下的`install.conf`文件以适应具体的环境需求以及优化性能表现。这一步骤至关重要,因为合理的配置能够显著提升系统的稳定性和效率。 ```bash # 示例:检查当前工作目录是否正确 pwd # 如果不在预期的安装文件所在目录,则切换过去 cd /path/to/installation/files/ # 显示现有文件列表确认存在所需文件 ls -l # 开始安装流程前再次核对许可文件已就位 test -f "/home/kingbase/r6_install/license.dat" && echo "License file present." || echo "Missing license file!" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值