替换GaussDB节点
操作场景
数据库集群由多台主机组成,当集群中主机发生故障时,为了使数据库快速地恢复正常,可以使用该功能将发生故障的节点替换为正常节点。当前替换节点只针对故障节点开放,且替换操作与自身互斥。
约束限制
- 节点不是异常状态同时此节点的组件也不是异常状态下,无法执行节点替换。
- 单副本实例不支持节点替换。
- 1主1备形态实例数据和日志合并部署的节点不支持节点替换。
注意事项
- 替换操作需要确保集群处于启动状态,且没有加锁。
节点替换期间,会有分钟级的加锁操作,影响实例DDL操作。
- 登录状态正常。
- 执行如下命令,连接数据库。
gsql -d postgres -h 10.0.0.0 -U root -p 8000
postgres为需要连接的数据库名称,10.0.0.0分布式为CN的IP地址,集中式版为主DN的IP地址,root为登录数据库的用户名,8000为CN或主DN的端口号。
- 执行如下命令,查看集群是否加锁。
select count(1) from pg_stat_activity where instr( query, 'pgxc_lock_for_backup()') > 0 or instr( query, 'pg_advisory_lock(65535,65535)') > 0;
如果值小于等于1,说明锁不存在,可直接执行节点替换。
大于1表示锁存在,需要与用户确认优先级,根据业务情况选择等待用户DDL结束还是手动解锁。
解锁用户锁的命令如下:
gsql -d database -U root -p port -W password -X -f $GAUSSHOME/bin/script/gspylib/etc/sql/unlock_cluster.sql
password需要替换为数据库密码。
- 节点替换操作需要确认存在一个正常主机。
- 实例磁盘满状态下不允许进行节点替换。
- 替换的主机上不能含有主DN。
- 集群内下列组件中分别至少存在一个正常运行的:CM Server、CM Agent、CN(仅分布式混合部署)。
- 正常的ETCD个数必须大于ETCD总个数的一半。
- 如果集群中部署有GTM,需保证至少存在一个正常运行的GTM实例(仅分布式集群混合部署)。
- 修复CN过程中,在CN状态未变为Normal前,不能连接该CN执行业务(仅分布式集群混合部署)。
- 节点替换完成后,需要登录告警平台查看是否有该节点的节点状态异常告警,如果有告警需要手动清除。
操作步骤
- 登录管理控制台。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入
当节点为异常状态时,可执行节点替换。
图1 节点修复![点击放大]()
- 单击“节点修复”,选择“节点替换”。输入“YES”,勾选确认信息,单击“确定”。
图2 节点替换
![点击放大]()
- 当节点替换下发成功时,提示替换命令下发成功信息。


浙公网安备 33010602011771号