yuan-er

导航

 

修复GaussDB节点

操作场景

数据库集群由多台主机组成,当集群中主机发生故障时,为了使数据库快速地恢复正常,可以使用该功能将发生故障的节点修复为正常节点。

约束限制

  • 节点不是异常状态同时此节点的组件也不是异常状态下,无法执行节点修复。
  • 单副本实例不支持节点修复。

注意事项

  • 修复操作需要确保集群处于启动状态,且没有加锁。

    节点修复期间,会有分钟级的加锁操作,影响实例DDL操作。

    1. 登录状态正常。
    2. 执行如下命令,连接数据库。

      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的端口号。

    3. 执行如下命令,查看集群是否加锁。
      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. 登录管理控制台
  2. “实例管理”页面,选择指定的实例,单击实例的名称,进入基本信息”页面,最下方的节点列表,显示如下图:

     

    当节点为异常状态时,可执行节点修复。

    图1 节点修复
  3. 单击“节点修复”,选择“节点修复”。输入“YES”并勾选确认信息,单击“确定”。

     

    图2 节点修复

     

     

  4. 当节点修复下发成功时,提示修复命令下发成功信息。
 
posted on 2025-03-19 09:22  数据库笔记  阅读(11)  评论(0)    收藏  举报