KingbaseES R3 集群pcp_attach_node 更新show pool_nodes中节点状态
系统环境:
操作系统:
[kingbase@node2 bin]$ cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)
数据库:
prod=# select version();
                                                         version
----------------------------------------------------------------------------------------
 Kingbase V008R003C002B0270 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46),
64-bit
(1 row)
案例架构:

案例说明:
pcp_attach_node工具是kingbasecluster(pgpool)自带的集群管理工具,pcp_attach_node工具可以将集群中的节点重新注册到集群中,对于主备流复制正常,但通过show pool_nodes显示的状态不正常的node,可以尝试通过此工具进行处理。
一、案例现象
备库数据库服务手工启动后,从sys_stat_replication查看主备流复制状态已经正常,但是从show pool_nodes中仍显示node status为“down”,通过pcp_attach_node工具重新将备节点注册到cluster,status状态正常“up”。
1)主备流复制状态
test=# select * from sys_stat_replication;
  pid  | usesysid | usename | application_name |  client_addr  | client_hostname | client_port |         backend_s
tart         | backend_xmin |   state   | sent_location | write_location | flush_location | replay_location | sync
_priority | sync_state
-------+----------+---------+------------------+---------------+-----------------+------
 13458 |       10 | SYSTEM  | node1            | 192.168.7.248 |                 |       24328 | 2021-03-01 13:17:
21.697235+08 |              | streaming | 0/1A004380    | 0/1A004380     | 0/1A004380     | 0/1A004380      |
        0 | async
(1 row)
2)show pool_nodes查看节点状态
[kingbase@node2 bin]$  ./ksql -U SYSTEM -W 123456Abc test -p 9999
ksql (V008R003C002B0270)
Type "help" for help.
test=# show pool_nodes;
 node_id |   hostname    | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_del
ay
---------+---------------+-------+--------+-----------+---------+------------+------------
 0       | 192.168.7.248 | 54322 | down   | 0.500000  | standby | 0          | false             | 0
 1       | 192.168.7.249 | 54322 | up     | 0.500000  | primary | 0          | true              | 0
(2 rows)

=如上面所示,集群中主备流复制状态正常,standby节点数据库服务状态应该是“up" ; 但是在通过9999端口访问查询时,备库状态为”down“的状态,这和实际的node状态不符,应该是kingbasecluster的cache中记录node中后台数据库状态没有被更新,可以通过pcp_attach_node将node重新注册到集群,获取node最新状态。=
二、通过pcp_attach_node工具注册备库
1)查看pcp工具的连接用户
[kingbase@node1 etc]$ cat pcp.conf
kingbase:e10adc3949ba59abbe56e057f20f883e
2)使用pcp_attach_node注册
[kingbase@node2 bin]$ ./pcp_attach_node -h 192.168.7.245 -U kingbase 0
Password:
pcp_attach_node -- Command Successful
三、查看show pool_nodes的节点状态
test=# show pool_nodes;
 node_id |   hostname    | port  | status  | lb_weight |  role   | select_cnt | load_balance_node | replication_de
lay
---------+---------------+-------+---------+-----------+---------+------------+----------
 0       | 192.168.7.248 | 54322 | waiting | 0.500000  | standby | 0          | false             | 0
 1       | 192.168.7.249 | 54322 | up      | 0.500000  | primary | 0          | true              | 0
(2 rows)

----- stauts由“down” 更新为“waiting”
四、测试流复制同步
主库事务操作:
test=# \c prod;You are now connected to database "prod" as user "SYSTEM".prod=# \d                    List of relations Schema |             Name              | Type  | Owner  --------+-------------------------------+-------+-------- PUBLIC | pathman_cache_stats           | view  | SYSTEM PUBLIC | pathman_concurrent_part_tasks | view  | SYSTEM PUBLIC | pathman_config                | table | SYSTEM PUBLIC | pathman_config_params         | table | SYSTEM PUBLIC | pathman_partition_list        | view  | SYSTEM(5 rows)prod=# create table t1 (id int ,name varchar(20));CREATE TABLEprod=# insert into t1 values (generate_series(1,1000),'tom'||generate_series(1,1000));INSERT 0 1000
备库查询:
prod=# select count(*) from t1; count -------  1000(1 row)
查看show pool_nodes节点状态:
prod=# show pool_nodes; node_id |   hostname    | port  | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay ---------+---------------+-------+--------+-----------+---------+------------+----------- 0       | 192.168.7.248 | 54322 | up     | 0.500000  | standby | 0          | false             | 0 1       | 192.168.7.249 | 54322 | up     | 0.500000  | primary | 3          | true              | 0(2 rows)
---- satus为“up”!!!
五 、使用pcp工具查看集群节点信息
1)查看node信息
[kingbase@node2 bin]$ ./pcp_node_info -h 192.168.7.245 -U kingbase -v 0Password: Hostname   : 192.168.7.248Port       : 54322Status     : 2Weight     : 0.500000Status Name: up[kingbase@node2 bin]$ ./pcp_node_info -h 192.168.7.245 -U kingbase -v 1Password: Hostname   : 192.168.7.249Port       : 54322Status     : 2Weight     : 0.500000Status Name: up
2)查看watchdog信息
[kingbase@node2 bin]$ ./pcp_watchdog_info -h 192.168.7.245 -U kingbase -vPassword: Watchdog Cluster Information Total Nodes          : 2Remote Nodes         : 1Quorum state         : QUORUM EXISTAlive Remote Nodes   : 1VIP up on local node : NOMaster Node Name     : 192.168.7.248:9999 Linux node1Master Host Name     : 192.168.7.248Watchdog Node Information Node Name      : 192.168.7.249:9999 Linux node2Host Name      : 192.168.7.249Delegate IP    : 192.168.7.244Kingbasecluster port    : 9999Watchdog port  : 9000Node priority  : 1Status         : 7Status Name    : STANDBYNode Name      : 192.168.7.248:9999 Linux node1Host Name      : 192.168.7.248Delegate IP    : 192.168.7.244Kingbasecluster port    : 9999Watchdog port  : 9000Node priority  : 3Status         : 4Status Name    : MASTER
六、总结
有效使用pcp工具,可以快速解决集群中遇到的故障问题。
七、现场案例
案例说明:
 备库出现故障,通过sys_basebackup修复后,查看主备流复制状态正常,通过show pool_nodes查看节点出现异常。
故障现象:

故障处理:
采用pcp_attach_node工具将节点重新注册,集群状态恢复正常。

KingbaseES R3 集群pcp_attach_node 更新show pool_nodes中节点状态的更多相关文章
- KingbaseES R3 集群一键修改集群用户密码案例
		案例说明: 在KingbaseES R3集群的最新版本中增加了kingbase_monitor.sh一键修改集群用户密码的功能,本案例是对此功能的测试. kingbaseES R3集群一键修改密码说明 ... 
- kingbaseES R3 集群修改data路径测试案例
		案例说明: 默认KingbaseES R3集群部署后,数据存储目录(data)在/home/kingbase下,部署时不能更改:本案例是在部署完成后,迁移data目录到其他指定的存储位置. 数据库版本 ... 
- KingbaseES R3集群在线删除数据节点案例
		案例说明: kingbaseES R3集群一主多从的架构,一般有两个节点是集群的管理节点,所有的节点都可以为数据节点:对于非管理节点的数据节点可以在线删除:但是对于管理节点,无法在线删除,如果删除管理 ... 
- KingbaseES R3 集群删除test库导致主备无法切换问题
		案例说明: 在KingbaseES R3集群中,kingbasecluster进程会通过test库访问,连接后台数据库服务测试:如果删除test数据库,导致后台数据库服务访问失败,在集群主备切换时,无 ... 
- KingbaseES R3 集群修改system用户密码方案
		方案说明: 对于kingbaseES R3集群修改system密码相比单机环境有一定的复杂性,需要修改的位置如下: 1)数据库中system用户密码,可以用alter user命令修改 2)在reco ... 
- KingbaseES R3 集群cluster日志切割和清理案例
		案例说明: 对于KingbaseES R3集群的cluster日志默认系统是不做切割和清理的,随着运行时长的增加,日志将增长为一个非常大的文件,占用比较大的磁盘空间,并且在分析问题读取大文件时效率很低 ... 
- KingbaseES R3 集群主库归档失败案例
		案例说明: 本案例用于KingbaseES R3集群归档进程归档日志失败的处理,对于一线的生产环境具有 一定的参考意义. 数据库版本: TEST=# select version(); VERSION ... 
- KingbaseES R3集群备库执行sys_backup.sh物理备份案例
		案例说明: KingbaseES R3的后期版本支持通过sys_backup.sh执行sys_rman的物理备份,实际上是调用了sys_rman_v6的工具做物理备份.本案例是在备库上执行集群的备份, ... 
- kingbaseES R3 集群配置 SSL
		 案例说明: 本测试是在非生产环境下,在官方没有明确声明支持KingbaseCluster使用ssl的前提下,建议只能在测试环境使用,避免生产环境下直接使用. 数据库版本: TEST=# selec ... 
随机推荐
- HTML,CSS,JS,DOM,jQuery
			HTML 超链接访问顺序 a:link-->a:visited-->a:hover-->a:active.(有顺序) link:表示从未访问过的链接的样式 visited:表示已经访 ... 
- 华为AppLinking中统一链接的创建和使用
			 运营的同学近期在准备海外做一波线下投放,涉及到海外的Google Play,iOS设备的App Store,以及华为渠道的AppGallery. 其中运营希望我们能够将三个平台的下载整合到一个链接 ... 
- js 表面学习 - 认识结构2
			单行注释以 // 开头. 多行注释以 /* 开头,以 */ 结尾. 任何位于 /* 和 */ 之间的文本都会被 JavaScript 忽略. JavaScript 数据类型 JavaScript 变量 ... 
- oracle备份数据库数据及导入数据库
			1.oracle数据库备份和导入 bat 脚本 scott oracle数据库用户名称 123456 数据库scott用户下的密码 192.168.124.8 本电脑IP orcl 为oracle库 ... 
- NC16561 [NOIP2012]国王的游戏
			NC16561 [NOIP2012]国王的游戏 题目 题目描述 恰逢 H 国国庆,国王邀请 \(n\) 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上 ... 
- 《AlignedReID:Surpassing Human-Level Performance in Person Re-Identification》理解
- 经典面试题:==和equals的区别
			1.== 既可以比较基本类型也可以比较引用类型.对于基本类型就是比较值,对于引用类型就是比较内存地址 2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过 ... 
- Python究竟属不属于嵌入式语言?
			写在前面: 几十年来,大家普遍的认为C与C++才是标准的嵌入式语言,那么现在大火的Python算是一种嵌入式语言吗? 在给出我的答案之前我们要先明确几个问题? 什么是Python? 编程语言的定义? ... 
- 08 MySQL_SQL_DQL_select数据查询条件判断
			导入*.sql数据到数据库 windows系统  source d:/tables.sql; Linux系统 source /home/soft/桌面/tables.sql; 导入完成后 测试查询 ... 
- 07 MySQL_SQL数据类型
			数据类型 整数类型: int(m) 对应java中的int bigint(m) 对应java中的long m代表显示长度,需要结合 zerofill使用 create table t_int(id i ... 
