云数据库 GaussDB 复制状态异常该如何解决?

63 阅读3分钟

对系统的影响

影响主备切换RTO和主机TPS。

可能原因

  • DN节点所在服务器故障。
  • DN节点所在服务器网络故障。
  • DN有大量数据需要同步,无法提供服务。
  • DN节点复制异常,无法修复。

处理步骤

  1. 根据告警信息中的节点ID,参考登录实例节点登录数据库节点。

    • 如果能登录上,按照25 进行检查修复。

    • 如果不能,执行如下步骤进行节点替换。

      1. 登录DBS运维管理平台

      2. 在“实例运维 > 实例管理”页签根据实例ID找到实例。

      3. 单击实例名称,进入“GaussDB基本信息”页面。

      4. 根据告警信息中的节点ID,在“节点列表”模块中找到对应节点。

      5. 单击节点名称,进入节点基本信息页面,获取到服务器资源参考查看实例节点状态,确认服务器是否正常。

      • 如果服务器异常,则参考《华为云Stack 8.3.1 应急预案》中的“数据库服务 > 云数据库 GaussDB > 运维案例库 > 租户面应急案例 > 节点替换”章节替换故障节点。如果替换失败,请执行6
      • 如果服务器正常,则请执行以下步骤。
  2. 执行如下命令,导入环境变量。

    source /home/Ruby/gauss_env_file

  3. 执行如下指令查看DN所在节点是否网络异常

    cm_ctl query -Cvid

    ping

    node_ip

    node_ip为上图中其他节点IP地址。

    • 如网络不通,请联系网络人员修复。
    • 如果DN网络状态都正常,请继续执行下列步骤。
  4. 执行如下指令,查看所在机器的IP地址。

    • 当前实例的资源类型为ECS时执行:

      ifconfig eth0

    • 当前实例的资源类型为BMS时执行:

      ifconfig bond0

  5. 执行如下指令,查看DN的状态。

    cm_ctl query -Cvid

    [  Datanode State   ]
    node             instance state                          | node             instance state                         | node             instance state
    -------------------------------------------------------------------------------------------------------------------------------------
    1  25.213.52.45  6001     P Standby Normal | 2  25.213.31.245 6002     S Primary Normal | 3  25.213.63.116 6003     S Standby Down
    

    查看与4中IP相同的DN的状态。

    • 如果状态不是Normal状态,参考如下步骤定位。
      1. 使用cm_ctl query -rv命令查看主备复制状态和日志回放状态。
      2. 根据node_ip字段找到当前dn的状态。确认主备机连接是否正常。
        • 如果is_by_query字段为0,表明DN无法接受连接,此时可以根据speed查看日志回放速度。
        • 如果is_by_query字段为1,表明此DN可以接受连接。
          • 此时如果recovery_done_location为0,表明本地日志未回放完。

            本地日志未回放完时,系统会显示local_replay_remain_time参数,根据local_replay_remain_time和speed查看DN回放本地日志的速度和预估剩余时间。此时DN有大量数据需要同步,暂时不能提供服务,仍需等待。

          • 如果recovery_done_location不为0,则表明DN本地日志已经回放完。

      3. 如果已确认日志回放完,并使用cm_ctl query -Cvid查看集群状态,如果DN组件状态不为Normal。则参考《华为云Stack 8.3.1 应急预案》中的“数据库服务 > 云数据库 GaussDB > 运维案例库 > 租户面应急案例 > 节点修复”章节修复节点。如果修复失败,则执行6
    • 如果状态是Normal,则说明数据库已经自动修复异常组件。
  6. 参考收集日志,下载节点日志,并收集告警信息和配置信息,联系技术支持进行处理。

    需要下载的日志信息有:

    • Agent组件下的/var/log/message
    • GaussDB Kernel组件下的/var/lib/log/Ruby

告警清除

此告警修复后,系统会自动清除此告警,无需手工清除。

参考信息

不涉及。