修复GaussDB节点
操作场景
数据库集群由多台主机组成,当集群中主机发生故障时,为了使数据库快速地恢复正常,可以使用该功能将发生故障的节点修复为正常节点。
约束限制
- 节点不是异常状态同时此节点的组件也不是异常状态下,无法执行节点修复。
- 单副本实例不支持节点修复。
注意事项
- 修复操作需要确保集群处于启动状态,且没有加锁。
- 登录状态正常。
- 执行如下命令,连接数据库。
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需要替换为数据库密码。
- 如果集群中部署有ETCD,则正常的ETCD个数必须大于ETCD总个数的一半,故障的ETCD才可以被修复。
- 实例磁盘满状态下不允许进行节点修复。
- 如果故障节点所在主机的安装目录下($GAUSSHOME/bin/)的二进制文件损坏或丢失,则不能通过该章节进行修复。需要复制其他正常主机对应的二进制文件到该主机,再通过该章节修复。
- 主DN存活时,故障的备DN才可以被修复。
- 主GTM存活时,故障的备GTM才可以被修复(仅分布式集群混合部署)。
- 在前一次修复结束后才能再次执行修复,禁止多个节点同时执行修复。
操作步骤
- 登录管理控制台。
- 在“实例管理”页面,选择指定的实例,单击实例的名称,进入
当节点为异常状态时,可执行节点修复。
图1 节点修复![点击放大]()
- 单击“节点修复”,选择“节点修复”。输入“YES”并勾选确认信息,单击“确定”。
图2 节点修复
![点击放大]()
- 当节点修复下发成功时,提示修复命令下发成功信息。


浙公网安备 33010602011771号