KingbaseES V8R3 集群运维系列 -- sync_flag参数配置
案例说明:
在KingbaseES V8R3集群一主二备的架构中,配置了流复制为同步(sync)模式,但是集群启动后,流复制状态中显示备库是async模式(备库和主库数据已经同步),从备库的recovery.log日志也可以看到,备库启动后被复制模式设置为async模式。如下图备库recovery.log:

适用版本:
KingbaseES V8R3
一、问题分析
1、检测复制模式配置(all nodes)
[kingbase@node101 bin]$ cat ../data/kingbase.conf |grep standby_name
##synchronous_standby_names = '' # standby servers that provide sync rep
synchronous_standby_names='1 (node1,node2,node3)'
---如上所示,所有节点都已配置为同步模式,如果是异步模式,需要配置synchronous_standby_names=''。
2、检查kingbase.auto.conf
[kingbase@node101 bin]$ cat ../data/kingbase.auto.conf
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
SYNCHRONOUS_STANDBY_NAMES = ''
---检查发现,所有节点的kingbase.auto.conf文件,在集群启动后,自动配置了SYNCHRONOUS_STANDBY_NAMES = ''。
3、检查HAmodule.conf文件
如下所示,参数sync_flag=0:

三、配置sync_flag测试
测试1:sync_flag=1
1)配置sync_flag=1(同步集群)
[kingbase@node101 bin]$ cat ../etc/HAmodule.conf |grep -i sync
#1->synchronous cluster,0->asynchronous cluster ,default 1.example:SYNC_FLAG=1
SYNC_FLAG=1
2)配置synchronous_standby_names参数(同步模式)
[kingbase@node101 bin]$ cat ../data/kingbase.conf |grep standby_name
##synchronous_standby_names = '' # standby servers that provide sync rep
synchronous_standby_names='1 (node1,node2)'
3)查看流复制同步模式
# 集群节点信息
TEST=# show pool_nodes;
node_id | hostname | port | status | lb_weight | role | select_cnt | load_balance_node | replicatio
n_delay
---------+---------------+-------+--------+-----------+---------+------------+-------------------+-----------
--------
0 | 192.168.1.101 | 54321 | up | 0.500000 | primary | 0 | true | 0
1 | 192.168.1.102 | 54321 | up | 0.500000 | standby | 0 | false | 0
(2 rows)
# 流复制状态
TEST=# select * from sys_stat_replication;
PID | USESYSID | USENAME | APPLICATION_NAME | CLIENT_ADDR | CLIENT_HOSTNAME | CLIENT_PORT | BACK
END_START | BACKEND_XMIN | STATE | SENT_LOCATION | WRITE_LOCATION | FLUSH_LOCATION | REPLAY_LOCAT
ION | SYNC_PRIORITY | SYNC_STATE
-------+----------+---------+------------------+---------------+-----------------+-------------+-------------
------------------+--------------+-----------+---------------+----------------+----------------+-------------
----+---------------+------------
21298 | 10 | SYSTEM | node2 | 192.168.1.102 | | 41374 | 2023-03-08 1
1:42:28.203822+08 | | streaming | 0/D50000D0 | 0/D50000D0 | 0/D50000D0 | 0/D50000D0
| 2 | sync
(1 row)
---如上所示,集群流复制处于同步(sync)复制模式。
测试2:sync_flag=0
1)配置sync_flag=0(异步集群)
[kingbase@node101 bin]$ cat ../etc/HAmodule.conf |grep -i sync
#1->synchronous cluster,0->asynchronous cluster ,default 1.example:SYNC_FLAG=1
SYNC_FLAG=0
2)配置synchronous_standby_names参数(同步模式)
[kingbase@node101 bin]$ cat ../data/kingbase.conf |grep standby_name
##synchronous_standby_names = '' # standby servers that provide sync rep
synchronous_standby_names='1 (node1,node2)'
3)查看流复制同步模式
# 如下所示,synchronous_standby_names被置空
TEST=# show synchronous_standby_names ;
synchronous_standby_names
---------------------------
(1 row)
# 流复制状态
TEST=# select * from sys_stat_replication;
PID | USESYSID | USENAME | APPLICATION_NAME | CLIENT_ADDR | CLIENT_HOSTNAME | CLIENT_PORT | BACK
END_START | BACKEND_XMIN | STATE | SENT_LOCATION | WRITE_LOCATION | FLUSH_LOCATION | REPLAY_LOCAT
ION | SYNC_PRIORITY | SYNC_STATE
-------+----------+---------+------------------+---------------+-----------------+-------------+-------------
------------------+--------------+-----------+---------------+----------------+----------------+-------------
----+---------------+------------
18002 | 10 | SYSTEM | node2 | 192.168.1.102 | | 51784 | 2023-03-08 1
4:01:27.693014+08 | | streaming | 0/D70000D0 | 0/D70000D0 | 0/D70000D0 | 0/D70000D0
| 0 | async
(1 row)
---如上所示,流复制的复制模式为async。
3)查看主库kingbase.auto.conf
[kingbase@node101 bin]$ cat ../data/kingbase.auto.conf
# Do not edit this file manually!
# It will be overwritten by ALTER SYSTEM command.
SYNCHRONOUS_STANDBY_NAMES = ''
---如上所示,文件中配置SYNCHRONOUS_STANDBY_NAMES = ''
4)查看备库recovery.log

四、总结
如下图sync_flag配置:

sync_flag配置说明:
1->synchronous cluster ,default 1
0->asynchronous cluster
在配置集群流复制为同步(sync)复制模式时,必须在HAmodule.conf中设置sync_flag=1,如果设置为0,其优先级高于synchronous_standby_names配置,集群重启后,将集群复制模式自动设置为异步(async)
KingbaseES V8R3 集群运维系列 -- sync_flag参数配置的更多相关文章
- KingbaseES V8R3集群运维案例之---主库系统down failover切换过程分析
案例说明: KingbaseES V8R3集群failover时两个cluster都会触发,但只有一个cluster会调用脚本去执行真正的切换流程,另一个有对应的打印,但不会调用脚本,只是走相关的 ...
- KingbaseES V8R3集群运维案例之---kingbase_monitor.sh启动”two master“案例
案例说明: KingbaseES V8R3集群,执行kingbase_monitor.sh启动集群,出现"two master"节点的故障,启动集群失败:通过手工sys_ctl启动 ...
- KingbaseES V8R3集群运维案例之---cluster.log ERROR: md5 authentication failed
案例说明: 在KingbaseES V8R3集群的cluster.log日志中,经常会出现"ERROR: md5 authentication failed:DETAIL: password ...
- KingbaseES V8R3集群运维案例之---用户自定义表空间管理
案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...
- KingbaseES V8R3集群维护案例之---pcp_node_refresh应用
案例说明: 在一次KingbaseES V8R3集群切换分析中,运维人员执行了pcp_node_refresh,导致集群发生了failover的切换.此文档对pcp_node_refresh工具做了应 ...
- KingbaseES V8R3集群管理维护案例之---集群迁移单实例架构
案例说明: 在生产中,需要将KingbaseES V8R3集群转换为单实例架构,可以采用以下方式快速完成集群架构的迁移. 适用版本: KingbaseES V8R3 当前数据库版本: TEST=# s ...
- KingbaseES V8R3集群管理和维护案例之---failover切换wal日志变化分析
案例说明: 本案例通过对KingbaseES V8R3集群failover切换过程进行观察,分析了主备库切换后wal日志的变化,对应用者了解KingbaseES V8R3(R6) failover ...
- KingbaseES V8R3集群维护案例之---在线添加备库管理节点
案例说明: 在KingbaseES V8R3主备流复制的集群中 ,一般有两个节点是集群的管理节点,分为master和standby:如对于一主二备的架构,其中有两个节点是管理节点,三个数据节点:管理节 ...
- KingbaseES V8R6集群运维案例之---repmgr standby promote应用案例
案例说明: 在容灾环境中,跨区域部署的异地备节点不会自主提升为主节点,在主节点发生故障或者人为需要切换时需要手动执行切换操作.若主节点已经失效,希望将异地备机提升为主节点. $bin/repmgr s ...
- KingbaseES V8R3 集群专用机网关失败分析案例
KingbaseES R3集群网关检测工作机制: 1.Cluster下watchdog进程在固定间隔时间,通过ping 网关地址监控链路的连通性,如果连通网关地址失败,则修改cluster sta ...
随机推荐
- 微信小程序实现原理
微信小程序实现原理 微信小程序采用wxml.wxss.javascript进行开发,本质是一个单页应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口.微信的架 ...
- CentOS在无网络环境下,用离线源yum安装软件
先说大致步骤: 1.前提假设:当前无网络的目标服务器是A,我们需要先准备一台服务器B: 2.在B上面用yum先把软件安装完成. 3.然后用createrepo将B中的包拷贝出来,并传到A上(用U盘或者 ...
- Swoole从入门到入土(8)——协程初探
这一章节"协程"话题的讨论是为了让我们对之后协程风格服务端有更全面的了解.所以我们需要先一起了解一下什么是协程?协程有什么作用? 当大家第一次看到"协程"这个词 ...
- Swift —— 一、架构解析
一.简介 OpenStack 对象存储 (swift) 用于冗余.可扩展的数据 使用标准化服务器集群存储PB的存储 可访问的数据.它是一种长期存储系统,可存储大量 可以检索和更新的静态数据.对象存储使 ...
- win32 - 虚拟内存的一些介绍
对32位Windows来说,其虚拟地址空间总数就是2的32次方,即4GB. 如果没有在引导时加上/3GB或/BOOTVA选项,Windows默认最大会分2GB给内核模式程序使用,2GB给用户模式程序. ...
- win32- 窗口模板
主要用于日常的win32窗口的测试 #include <Windows.h> #include <stdio.h> #include <iostream> usin ...
- 对于Celery原理的简单理解
参考博客: https://www.cnblogs.com/forward-wang/p/5970806.html https://blog.csdn.net/cuomer/article/detai ...
- 01、NATS基础介绍
01.NATS基础介绍 项目中使用到了 NATS,但是之前并没有接触过,所以特意去学习了下,网上找了些资料,相对来说,都不是很全的介绍,所以特意记录下笔记,方便自己掌握,也希望可以帮助到其他小伙伴. ...
- 【Azure Developer】示例: 在中国区调用MSGraph SDK通过User principal name获取到User信息,如Object ID
问题描述 示例调用MSGraph SDK通过User principal name获取到User信息,如Object ID. 参考资料 选择 Microsoft Graph 身份验证提供程序 : ht ...
- Nebula Graph|如何打造多版本文档中心
本文首发于 Nebula Graph Community 公众号 世界上没有完美的产品,每个不完美的产品都需要一份文档. 为什么需要文档 打造出一款产品后,我们需要一份文档来回答以下问题: 设计这款产 ...