人大金仓数据库KingbaseES集群容灾切换演练

关键字:

KingbaseES、集群、容灾切换、人大金仓

1.容灾演练

1.1 目的

容灾演练旨在KingbaseES集群主库发生故障时,备用数据库能够迅速接管业务,确保数据的完整性和服务的连续性。通过演练,我们能验证KinbgaseES集群的配置是否正确,切换过程是否顺利,从而提高KingbaseES集群的系统容灾能力,以确保在真实的灾难环境中能够及时有效地应对。

1.2 计划内主备切换

在KingbaseES集群的运维过程中,为了升级主库服务器、执行维护任务或进行计划内的操作,需要对集群进行主备切换。这种切换时预先安排且可控的,旨在确保在最小影响业务的前提下,安全有效地进行主备角色的切换。下面是计划内容灾演练的推荐操作步骤,如果模拟情况与现场情况有差异,请根据现场实际情况进行调整。

2.1 停止业务

计划内主备切换操作,建议尽量在业务停止写入后进行操作,以减少对业务的影响。

1.2.2 主备切换

主备切换操作,在集群正常运行时,可以待升主的备库上都可以执行。

具体操作如下:

#升主命令需要在kingbase用户下执行:

su – kingbase

#检查集群是否满足切换条件:

repmgr standby switchover –choose

#执行备库升主命令:

repmgr standby switchover [--force-rewind] [--siblings-follow]

1.2.3 业务连通性测试

主备切换后,对于业务来说,需要从以下几个步骤来确认业务的联通性:

1.业务配置了VIP或者读写分离的业务连接串,无需做任何改动;

2.如果没有配置VIP或者读写分离的业务连接串,由于主备库服务IP互换了,需要识别所有需要更新的业务连接串,逐一进行业务连接串更新;

3.更新完成后需测试业务的连通性。

1.2.4 业务验证

在业务联通性测试完成后,需要进行业务验证。在新主库上执行一系统的业务读写操作,验证其业务的一致性、连续性和稳定性,确保新主库已完成接管主库的角色。

1.2.5 集群回切

容灾演练后如需要将主备集群重新还原切换前状态,请重读1.2.1~1.2.4的操作。

1.3 计划外主备切换

在KingbaseES集群的运行过程中,由于硬件故障、网络中断、软件错误或者其他不可预见的原因,主数据库可能突然无法正常对外提供服务,此时需要进行计划外的主备切换,这种切换时突发的、不可预见的,并且需要在尽可能端的时间内完成。以确保业务的连续性和数据的完整性。下面是计划外容灾演练的推荐操作步骤,如果模拟情况与现场情况有差异,请根据现场实际情况进行调整。

1.3.1 确认新主状态

集群计划外主备切换属于异常情况,首先需要确认旧备库是否已经升。如果集群旧备库没有升主需要手动升主。具体操作如下:

1.登陆旧备库,查看在集群中的角色

参考命令: sys_controldata -D /home/kingbase/data

[kingbase@node1 bin]$ /home/kingbase/kes/kingbase/bin/sys_controldata -D /home/kingbase/data

sys_control version number: 1201

Catalog version number: 202312201

Database system identifier: 7368768981555329093

Database cluster state: in production

sys_control last modified: Thu May 16 04:09:02 2024

Latest checkpoint location: 0/26000088

Latest checkpoint's REDO location: 0/26000058

Latest checkpoint's REDO WAL file: 000000010000000000000026

Latest checkpoint's WalTimeLineID: 1

Latest checkpoint's PrevTimeLineID: 1

Latest checkpoint's full_page_writes: on

Latest checkpoint's NextXID: 0:1124

Latest checkpoint's NextOID: 24576

Latest checkpoint's NextMultiXactId: 1

Latest checkpoint's NextMultiOffset: 0

Latest checkpoint's oldestXID: 1074

Latest checkpoint's oldestXID's DB: 1

Latest checkpoint's oldestActiveXID: 1124

Latest checkpoint's oldestMultiXid: 1

Latest checkpoint's oldestMulti's DB: 1

Latest checkpoint's oldestCommitTsXid:0

Latest checkpoint's newestCommitTsXid:0

Time of latest checkpoint: Thu May 16 04:09:02 2024

Fake LSN counter for unlogged rels: 0/3E8

Minimum recovery ending location: 0/0

Min recovery ending loc's timeline: 0

Backup start location: 0/0

Backup end location: 0/0

End-of-backup record required: no

wal_level setting: replica

wal_log_hints setting: on

max_connections setting: 100

max_worker_processes setting: 8

max_wal_senders setting: 32

max_prepared_xacts setting: 100

max_locks_per_xact setting: 64

track_commit_timestamp setting: off

Maximum data alignment: 8

Database block size: 8192

Blocks per segment of large relation: 131072

WAL block size: 8192

Bytes per WAL segment: 16777216

Maximum length of identifiers: 64

Maximum columns in an index: 32

Maximum size of a TOAST chunk: 1988

Size of a large-object chunk: 2048

Date/time type storage: 64-bit integers

Float4 argument passing: by value

Float8 argument passing: by value

Data page checksum version: 1

Data page checksum device: 0

Mock authentication nonce: 02ec77f9f18df37bfde20467ff3828611d8471e05e0aa9d3f3ec867377f90d27

database mode: 1

auth method mode: 0

备注:Database cluster state为in production表示旧备库已经升为主库;如果值为in archive recovery,则表示旧备库没有升为主库,需要手动执行备升主的操作。

2.手动执行备被升主操作

  • 如果存在多个备库,需要确认升主的备库

通过业务信息确认新主,在不清楚业务的情况,可以通过查看控制文件信息中进行辅助确认。

  • 登陆新主,执行升主操作

参考命令: repmgr standby promote --siblings-follow

1.3.2 业务连接性测试

新主成功升主后,对于业务来说,需要从以下几个步骤来确认业务的联通性:

1.业务配置了VIP或者读写分离的业务连接串,无需做任何改动;

2.如果没有配置VIP或者读写分离的业务连接串,由于主备库服务IP互换了,需要识别所有需要更新的业务连接串,逐一进行业务连接串更新;

3.更新完成后需测试业务的连通性。

1.3.3 原主库重新加入集群

如果原主库故障后,修复成功后,需要重新加入集群,可以以下几种情况:

  • 如果在重新加入之前,原主库与新主库没有出现WAL日志丢失的情况,就可以正常进行rejoin操作,以备库的角色重新加入新集群:

参考命令:

#在旧主库执行

repmgr node rejoin -h ${新主库IP} -d esrep -U esrep -p ${新主库port}

  • 如果重新加入之前,原主库与新主库出现WAL日志丢失的情况,就只能重新以克隆备库的方式放入新集群:

参考命令:

#在新主库执行

repmgr standby clone -h ${新主库IP} -d esrep -U esrep -p ${新主库port}

1.3.4 集群回切

容灾演练后如需要将主备集群重新还原切换前状态,请参考1.2.1~1.2.4章节的操作。

参考文档:

金仓数据守护集群和读写分离集群使用手册

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值