集群理论补充:
1.集群组件
pgpool功能:连接池,负载均衡,限制超过限度的连接,并行查询
看门狗watchdog功能:pgpool服务的生命检测,进程相互监控,切换时自动虚拟IP地址分配,自动注册服务为备用服务器
配置看门狗:kingbasecluster.conf
cat kingbasecluster.conf |grep -i wd
通讯服务端口:netstat -an|egrep "9000|9999|5432"
通过kingbase_monitor.sh脚本可以同时启动kingbasecluster和kingbase服务
ps -ef|grep kingbasecluster
说明:
1) kingbasecluster –n 是集群的父进程,负责检查各个底层数据库的健康状态。
2) watchdog是“看门狗”服务,用于cluster节点间状态监测通讯。
3) lifecheck用于watchdog监测pgpool的状态。
4) heartbeat receiver,watchdog心跳接收服务。
5) heartbeat sender,watchdog心跳发送服务。
6) pcp pgpool提供的管理工具。
7) worker process负责检查底层数据库之间的复制延迟。
8) kingbasecluster子进程,负责接收用户发送的SQL请求,
在主库数据库服务wal sender进程负责发送wal日志流到备库。
说明:
1) 在备库数据库服务wal receiver进程负责接收从主库发送的日志流。
2) startup进程负责对wal日志做replay操作。
主备复制状态
通过9999(kingbasecluster服务)端口连接查看
ksql -h IP -U 用户 -W 密码 库名 -p 9999
show pool_nodes;
select * from sys_stat_replication;
通过函数sys_is_in_recovery()判断主备角色
select sys_is_in_recovery();
函数返回结果“t”表示此节点是备库,“f”表示此节点是主库。
查看流复制复制槽状态信息
select * from sys_replication_slots;
Slot_name要和备库的recovery.conf中的primary_slot_name匹配。
在视图中active字段值为‘t’,表示复制槽被启用,‘f’表示未启用。
通过控制文件信息对比主备库同步状态
主库备库控制文件信息查看对比
sys_controldata -D ./data
可以对比“Latest checkpoint's TimeLineID”时间线,一般主库的timeline应该大于或等于备库的timeliness。
集群服务重启和关闭操作
重新启动集群所有服务(kingbasecluster和Database)
kingbase_monitor restart/stop
手工关闭kingbasecluster服务(root用户):
ps -ef|grep kingbasecluster
pkill -9 kingbasecluster
手工启动kingbasecluster服务: kingbasecluster -n -d > cluster.log 2>&1
手工快速关闭kingbasecluster服务
kingbasecluster -m fast stop
手工停止和启动、重启数据库服务
sys_ctl start/stop/restart
当集群中kingbasecluster服务正常,而数据库服务启动失败时,可以通过sys_ctl命令单独启动、停止或重启数据库服务。
工具查看详细信息 (root)pcp_watchdog_info -h IP -p 9898 -U 用户 -W 密码
数据库配置文件kingbase.conf
用户认证配置文件sys_hba.conf
备库recovery.conf文件解析,cat recovery.conf
说明:
1) standby_mode=on ,表示开启主备复制模式。
2) primary_conninfo: 备库连接主库的配置信息。
3) 其中port代表数据库服务端口号;host 代表主库的ip地址;user代表具有replication权限的用户;password代表用户口令(base64加密);application_name 对应主库kingbase.conf文件中“synchronous_standby_names='1(node1,node2)”配置。
7) 当集群切换过程中,如果出现“双主脑裂”现象,可以检查备库的recovery.conf,是不是被修改成了recovery.done。
kingbasecluster.conf是kingbasecluster服务的主配置文件
HAmodule.conf是kingbasecluster读写分离集群的shell脚本读取的共有参数的配置文件
在通过kingbase_monitor.sh启动、停止或重启集群服务时,会读取此配置文件。
pcp.conf文件记录了pcp工具连接集群的用户和密码的信息,密码通过md5加密。
通过各自服务对应的日志来获取相关的故障信息,比如是kingbasecluster集群管理故障,可以通过系统日志(如/var/log/message)、集群日志cluster.log、recovery.log、failove.log来判断故障的原因。而主库流复制相关的数据库服务的故障可以通过系统日志(如/var/log/message)、sys_log的数据库日志来判断故障的原因。