查看集群的狀態
[kingbase@node1 bin]$ repmgr cluster show
查看守護集群狀態
[kingbase@node1 bin]$ repmgr service status
查看集群的事件
[kingbase@node1 etc]$ repmgr cluster event
查看集群流復制狀態
esrep=#select usename,application_name,client_addr,sync_state,state,sys_wal_lsn_diff(sys_current_wal_flush_lsn(), replay_lsn) as lsn_lag from sys_stat_replication;
查看復制槽信息
esrep=# select * from sys_replication_slots;
查看集群的配置
kingbase@node2 bin]$ repmgr config show
啟停集群
#在任意數據庫節點,使用kingbase用戶執行
sys_monitor.sh start/stop/restart
start #啟動集群
stop #停止集群
restart #重啟集群
啟動集群
步驟一:檢查集群關閉時的狀態是否正常,避免后續啟動過程中出現雙主情況,具體的檢查過程如下:1、查看集群中每個節點數據庫的data目錄,目錄中存在standby.signal文件的節點為備庫,反之為主庫;2、集群中可以同時存在多個備庫,但是只能存在一個主庫,如果檢查過程中存在多個主庫,切勿貿然啟動集群。步驟二:如果集群狀態檢查結果無誤,執行以下命令依次啟動集群中所有數據庫。sys_ctl -D $data_directory -l logfile start步驟三:執行以下命令,依次啟動所有節點的repmgrd守護進程。repmgrd -d -v -f $rep_conf步驟四:執行以下命令,依次啟動所有節點的kbha守護進程。kbha -A daemon -f $rep_conf步驟五:在集群所有節點上添加CRON定時任務。# 進入定時任務編輯模式,通過crontab寫入語句:
crontab -e* 1 * * * * . /etc/profile;$bin_path/kbha -A daemon -f $rep_conf
停止集群
步驟一:在集群所有節點上注釋或刪除啟動時創建的CRON定時任務。# 進入定時任務編輯模式,通過crontab注釋(句首使用#)以下語句:
# * 1 * * * * . /etc/profile;$bin_path/kbha -A daemon -f $rep_conf步驟二:停止集群所有節點中的守護進程 -- 依次kill守護進程kbha和repmgrd。kill -9 `pidof kbha repmgrd`步驟三:停止集群中所有節點的數據庫。sys_ctl -D $data_directory -l logfile stop
主備切換
[kingbase@node1 bin]$ repmgr standby switchover --choose
[kingbase@node2 ~]$ repmgr standby switchover --siblings-follow
注銷節點
[kingbase@node1 bin]$ repmgr standby unregister --node-id=3
管理集群維護
[kingbase@node1 bin]$ repmgr service unpause
[kingbase@node1 bin]$ repmgr node rejoin -h 10.12.11.193 -U esrep -d esrep #加入集群
克隆/重做備庫
[kingbase@node1 bin]$ repmgr service unpause
[kingbase@node2 ~]$ repmgr standby clone -h 10.12.11.192 -U esrep -d esrep
[kingbase@node2 ~]$ sys_ctl -D /opt/cluster/kingbase/data start
[kingbase@node2 ~]$ repmgr standby register --force
[kingbase@node1 bin]$ repmgr service unpause
[kingbase@node1 bin]$ repmgr cluster show
修改集群用戶密碼
在集群部署過程中,會自動創建 esrep 集群管理用戶,默認密碼為Kingbaseha110,并將此密碼配置在集群內每個節點的kingbase用戶下的~/.encpwd文件中,集群管理軟件或其他本節點的應用在連接數據庫時,默認使用此文件中的密碼。
[kingbase@node1]$ sys_monitor.sh change_password system 12345678ab 'kingbase_c#'
節點維護
1.暫停集群功能repmgr service pause2.關閉集群單節點數據庫sys_ctl stop –D ${kingbase_data}4.啟動數據庫sys_ctl start –D ${kingbase_data}5.恢復集群功能repmgr service unpause