当服务器无法启动,备节点就不无法执行unregister操作,也无法通过cluster_install.sh 进行shrink操作。只能从主库delete esrep数据库下的repmgr.nodes表中这个备库的记录。然后删除这个备库对应的复制槽。
适用版本:V8R6 、V9
示例:
查看集群状态,node1节点状态显示failed。
[kingbase@v8r6_2 ~]$ repmgr cluster show
w^H ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------
1 | node1 | standby | - failed | ? node2 | default | 100 | | ? | host=192.168.43.11 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
2 | node2 | primary | * running | | default | 100 | 2 | | host=192.168.43.12 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
[WARNING] following issues were detected
- unable to connect to node "node1" (ID: 1)
[HINT] execute with --verbose option to see connection error messages
登录esrep数据库,删除rempgr.node里node1 的相关信息
[kingbase@v8r6_2 ~]$ ksql -Usystem esrep
ksql (V8.0)
输入 "help" 来获取帮助信息.
esrep=# select * from repmgr.nodes ;
node_id | upstream_node_id | active | node_name | type | location | priority | conn
info | repluser | slot_name | config_file
| primary_seen | lsn
---------+------------------+--------+-----------+---------+----------+----------+-------------------------------------------------------------------------
--------------------------------------------------------------------------+----------+---------------+-----------------------------------------------------
--------+--------------+-----
2 | | t | node2 | primary | default | 100 | host=192.168.43.12 user=esrep dbname=esrep port=54321 connect_timeout=10
keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 | esrep | repmgr_slot_2 | /home/kingbase/cluster/test/kingbase/bin/../etc/repm
gr.conf | |
1 | 2 | f | node1 | standby | default | 100 | host=192.168.43.11 user=esrep dbname=esrep port=54321 connect_timeout=10
keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3 | esrep | repmgr_slot_1 | /home/kingbase/cluster/test/kingbase/bin/../etc/repm
gr.conf | |
(2 行记录)
esrep=# delete from repmgr.nodes where node_name ='node1';
DELETE 1
使用system用户登录test数据库删除复制槽
#查看复制槽信息
test=# select * from sys_replication_slots ;
-[ RECORD 1 ]-------+--------------
slot_name | repmgr_slot_1
plugin |
slot_type | physical
datoid |
database |
temporary | f
active | f
active_pid |
xmin |
catalog_xmin |
restart_lsn | 0/31531E0
confirmed_flush_lsn |
#删除复制槽
test=# select sys_drop_replication_slot('repmgr_slot_1');
-[ RECORD 1 ]-------------+-
sys_drop_replication_slot |
查看集群状态,node1已从集群节点剔除
[kingbase@v8r6_2 ~]$ repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+-------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------
2 | node2 | primary | * running | | default | 100 | 2 | | host=192.168.43.12 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
备注:将节点从备节点信息删除相对简单,但无法删除对应节点的物理数据文件。