首页 > 其他分享 >KingbaseES V8R3集群运维案例之---failover切换后新主库启动过程

KingbaseES V8R3集群运维案例之---failover切换后新主库启动过程

时间:2024-03-29 18:48:49浏览次数:17  
标签:主库 V8R3 21 运维 failover 09 2023 数据库

案例说明:
KingbaseES V8R3集群failover切换后,在生产环境中,新主库启动过程中可能会有业务访问,出现‘系统只读’的问题。如下图所示:

适用版本:
KingbaseES V8R3

一、问题分析
1、如下所示,failover切换过程:
1)在master节点执行failover_stream.sh脚本执行failover切换。
2)ping 网关地址测试网络的连通性,如果成功执行下一步,如果失败,终止切换。
3)通过ssh连接原主库停止数据库服务和卸载vip地址。
4)将vip地址加载到新主库节点并执行 arping广播测试vip地址。
5)测试当前新主库的数据库服务是否正常,通过执行‘select 3333’查询。
6)如果当前新主库数据库服务查询正常,执行备库promote为主库。
7)promote完成后,通过‘select 3333’测试当前新主库数据库服务是否正常。
8)如果数据库服务正常,在kingbase.conf中将流复制修改为‘async’并reload conf。
9)对当前新主库执行checkpoint,checkpoint'完成后执行‘select 3333’测试数据库服务是否正常。
10)数据库服务正常,failover切换完成。

-----------------2023-09-21 11:50:54 failover beging---------------------------------------
----failover-stats is %H = hostname of the new master node [192.168.1.202], %P = old primary node id [0], %d = node id[0], %h = host name [192.168.1.201], %O = old primary host[192.168.1.201] %m = new master node id [1], %M = old master node id [0], %D = database cluster path [/home/kingbase/cluster/R3HA/db/data].
----ping trust ip
ping trust ip 192.168.1.1 success
----determine whether the faulty db is master or standby
master down, let 192.168.1.202 become new primary.....
 2023-09-21 11:50:56 del old primary VIP on 192.168.1.201
ssh connect host:192.168.1.201 success, will stop old primary db and del the vip
stop the old primary db
DEL VIP NOW AT 2023-09-21 11:50:57 ON enp0s3
sys_ctl: PID file "/home/kingbase/cluster/R3HA/db/data/kingbase.pid" does not exist
Is server running?
execute: [/sbin/ip addr del 192.168.1.10/24 dev enp0s3]
Oprate del ip cmd end.
2023-09-21 11:50:57 add VIP on 192.168.1.202
ADD VIP NOW AT 2023-09-21 11:50:58 ON enp0s3
execute: [/sbin/ip addr add 192.168.1.10/24 dev enp0s3 label enp0s3:2]
execute: /home/kingbase/cluster/R3HA/db/bin/arping -U 192.168.1.10 -I enp0s3 -w 1

Success to send 1 packets
2023-09-21 11:50:58 promote begin...let 192.168.1.202 become master
check db if is alive
ksql "port=54321 user=SUPERMANAGER_V8ADMIN  dbname=TEST connect_timeout=10"  -c "select 33333;"
2023-09-21 11:50:58 kingbase is ok , to prepare execute promote
execute promote
server promoting
check db if is alive after promote
ksql "port=54321 user=SUPERMANAGER_V8ADMIN  dbname=TEST connect_timeout=10"  -c "select 33333;"
2023-09-21 11:50:58 after execute promote , kingbase status is ok.
after execute promote, kingbase is ok.
2023-09-21 11:50:58 sync to async
ALTER SYSTEM
 sys_reload_conf
-----------------
 t
(1 row)

2023-09-21 11:50:58 make checkpoint
check the db to see if it is alive
ksql "port=54321 user=SUPERMANAGER_V8ADMIN dbname=TEST connect_timeout=10"  -c "select 33333;"
2023-09-21 11:50:59 kingbase is ok , to prepare execute checkpoint
execute checkpoint
CHECKPOINT
check the db to see if it is alive after execute checkpoint
ksql "port=54321 user=SUPERMANAGER_V8ADMIN  dbname=TEST connect_timeout=10"  -c "select 33333;"
2023-09-21 11:50:59 after execute checkpoint, kingbase is ok.
after execute checkpoint, kingbase is ok.
-----------------2023-09-21 11:50:59 failover end---------------------------------------

如下所示,在没有业务压力的情况下,新主库在promote后,数据库服务启动快速完成:

2、生产环境下failover
1)如下failover.log日志所示,failover后在‘2023-09-19 15:12:02'完成checkpoint,测试数据库查询访问ok:

2)查看新主库sys_log
如下图所示,在’2023-09-19 15:12:01'出现应用访问数据库,出现只读故障;因为vip在数据库服务启动正常前被加载到新主库节点,用户可以通过vip连接新主库进行访问,但是此时数据服务还未启动完成,无法执行读写操作。

如下图所示,数据库服务在‘2023-09-19 15:12:36’启动完成,可以进行读写操作:

3)对于failover.log日志中的,checkpoint完成,数据库状态ok,只是可以执行select查询(只读),而真正的数据库服务正常,要等待系统启动完成(需要通过sys_log日志确定)。

二、问题总结
对于生产环境,在执行failover切换完成后,新主库需要重启数据库服务,在切换前如果业务压力较大,数据库从最近检查点(failover后checkpoint的上一个检查点)开始启动执行recovery,在此期间数据库处于只读状态,如果有业务连接访问,将出现读写错误,等数据库启动完成后,才能恢复正常读写。

1、如下所示failover前后的checkpoint

2、failover后新主库启动recovery时的checkpoint

三、总结
生产环境中出现问题时,要多结合集群日志及数据库日志进行分析和解决问题。

标签:主库,V8R3,21,运维,failover,09,2023,数据库
From: https://www.cnblogs.com/kingbase/p/17923235.html

相关文章

  • KingbaseES V8R6集群运维案例之---PGPASSWORD变量导致esrep用户连接主库失败
    案例说明:KingbaseESV8R6集群,在备库执行clone时,esrep用户认证失败,导致clone失败。适用版本:KingbaseESV8R6一、问题现象如下所示,在执行备库clone是,esrep认证失败:备库sys_log日志:(esrep用户认证失败)二、问题分析对于KingbaseESV8R6集群,esrep的用户通过~/.encpwd建立认证(......
  • KingbaseES V8R6集群运维案例之---备库register故障
    案例说明:据现场实施人员说,备库执行了clone,启动数据库服务,执行'repmgrstandbyregister'后,无法将备库register到集群。适用版本:KingbaseESV8R6一、问题现象如下图所示,执行'repmgrstandbyregister',register失败:二、问题分析1、repmgrstandbyregister分析如下图所示:......
  • KingbaseES V8R3集群运维案例之---集群启动“DATA_SIZE_DIFF 16 (MB)”故障
    案例说明:为保证集群数据的一致性安全,在主备库的数据相差“DATA_SIZE_DIFF>=16M"以上时,该备库不能参与主备切换,并且通过kingbase_monitor.sh启动集群时,集群将无法启动;本案例对此种故障做了复现,并测试了解决方法。适用版本:KingbaseESV8R3适用版本:KingbaseESV8R3一、案例......
  • KingbaseES V8R3备份恢复案例之---backup_label does not exist in KINGBASE_DATA
    案例说明:在KingbaseESV8R3集群主库执行sys_rman的全备时,出现‘backup_labeldoesnotexistinKINGBASE_DATA’的故障,如下图所示:适用版本:KingbaseESV8R3一、问题现象如下所示,数据库执行sys_rman物理备份:[kingbase@node201bin]$./sys_rman-Usystem-W123456-dtes......
  • KingbaseES集群运维案例之-- V8R3与V8R6集群wal函数应用
    案例说明:KingbaseESV8R3和V8R6集群在通过函数获取wal日志的相关信息时,两个版本的函数名称不同,本案例做了函数应用的对比和总结。适用版本:KingbaseESV8R3/R6一、KingbaseESV8R3相关函数Tips:在V8R3的版本,事务日志名称为xlog。1、查询数据库支持的函数test=#selectpron......
  • kingbaseES V8R6集群运维案例之---配置priority防止failover切换案例
    案例说明:在一主多备的架构中,需要配置一台备库在主备切换时,不能选举为主库。对于repmgr主备切换主库的选择算法如下:Tips:Repmgr选举候选备节点会以以下顺序选举:LSN---->Priority---->Node_ID。系统会先选举一个LSN比较大者作为候选备节点;如LSN一样,会根据Priority优先级进行比......
  • KingbaseES V8R6集群运维案例之---级联备库upstream节点故障
    KingbaseESV8R6集群运维案例之---级联备库upstream节点故障案例说明:在KingbaseESV8R6集群,构建级联备库后,在其upstream的节点故障后,级联备库如何处理?适用版本:KingbaseESV8R6集群架构:案例一:一、配置集群的recovery参数(allnodes)Tips:关闭备库的aut-recovery机制......
  • 软件项目管理全套文档模板(开发/实施/运维/安全/交付)
     前言:在软件项目管理中,每个阶段都有其特定的目标和活动,确保项目的顺利进行和最终的成功交付。以下是软件项目管理各个阶段的详细资料:软件项目全套文档资料下载:点我获取1.需求阶段目标:收集、分析和定义用户需求和业务目标。主要活动:需求调研:与用户沟通,了解他们的需求和......
  • KingbaseES V8R6集群运维案例之---主备failover切换原因分析
    案例说明:生产环境,KingbaseESV8R6的集群发生failover切换,分析集群切换的原因。适用版本:KingbaseESV8R6集群架构:137.xx.xx.67主原备库137.xx.xx.94原主库137.xx.xx.68vip地址一、日志分析1、分析原备库hamgr.log如下所示,通过原备库hamgr.log日志获取到具体......
  • KingbaseES V8R6数据库运维案例之---用户权限导致的备份恢复故障
    案例说明:由于限制了用户对数据库的访问,导致在执行‘sys_backup.shinit’初始化物理备份时,执行失败。适用版本:KingbaseESV8R6一、问题现象如下所示,执行‘sys_backup.shinit’初始化物理备份:1、执行初始化失败[kingbase@node201bin]$shsys_backup.shinitERROR:Con......