yuan-er

导航

 

替换GaussDB节点

操作场景

数据库集群由多台主机组成,当集群中主机发生故障时,为了使数据库快速地恢复正常,可以使用该功能将发生故障的节点替换为正常节点。当前替换节点只针对故障节点开放,且替换操作与自身互斥。

约束限制

  • 节点不是异常状态同时此节点的组件也不是异常状态下,无法执行节点替换。
  • 单副本实例不支持节点替换。
  • 1主1备形态实例数据和日志合并部署的节点不支持节点替换。

注意事项

  • 替换操作需要确保集群处于启动状态,且没有加锁。
    节点替换期间,会有分钟级的加锁操作,影响实例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需要替换为数据库密码。

  • 节点替换操作需要确认存在一个正常主机。
  • 实例磁盘满状态下不允许进行节点替换。
  • 替换的主机上不能含有主DN。
  • 集群内下列组件中分别至少存在一个正常运行的:CM Server、CM Agent、CN(仅分布式混合部署)。
  • 正常的ETCD个数必须大于ETCD总个数的一半。
  • 如果集群中部署有GTM,需保证至少存在一个正常运行的GTM实例(仅分布式集群混合部署)。
  • 修复CN过程中,在CN状态未变为Normal前,不能连接该CN执行业务(仅分布式集群混合部署)。
  • 节点替换完成后,需要登录告警平台查看是否有该节点的节点状态异常告警,如果有告警需要手动清除。

操作步骤

  1. 登录管理控制台
  2. “实例管理”页面,选择指定的实例,单击实例的名称,进入基本信息”页面,最下方的节点列表,显示如下图:

     

    当节点为异常状态时,可执行节点替换。

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

     

    图2 节点替换

     

     

  4. 当节点替换下发成功时,提示替换命令下发成功信息。
 
posted on 2025-01-22 10:24  数据库笔记  阅读(15)  评论(0)    收藏  举报