绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
应急处理-CN隔离恢复
2020-01-08 16:15:36

集群CN由于故障被隔离时,可以根据本节内容恢复故障CN。该操作仅支持在分布式部署模式下执行。

背景信息

部署集群时,建议用户将CN实例分散部署在其他多个服务器上,以避免主机故障造成的集群不可用。如表1所示。

表1 集群部署方案示例

主机

AZ

CN

CM

ETCD

DN

plat1

AZ1

CN 1

CM备

ETCD1

DN1备

plat2

AZ1

CN 2

CM主

ETCD2

DN2备

plat3

AZ1

-

-

ETCD3

DN1主

plat4

AZ1

-

-

-

DN2主

前提条件

  • 不支持恢复由于物理损坏而被隔离并替换的故障CN。
  • 在故障CN恢复期间,不允许进行DDL操作。
  • 如果集群中有负载均衡组件,需要从负载均衡组件中剔除对故障CN的业务分发。在故障恢复后,再在负载均衡组件中恢复CN。
  • 如果集群中某个CN节点一直处于route_conflict,同时在故障CN以外的某个CN或主DN上,SYS_DATA_NODES系统表中没有配置故障的CN节点, 也适用手动恢复操作。

操作步骤-使用工具自动恢复

  1. omm用户身份登录GaussDB 100任一服务器。
  1. 使用以下命令查看集群状态。

    gs_om -t status

    状态显示为DELETED的CN,为被隔离的CN。集群状态详解,请参见集群状态查询

  1. 执行如下命令恢复状态显示为DELETED的CN。
    gs_om -t recoverycn

    执行命令时所在目录不能是待恢复CN的数据目录。

操作步骤-手动恢复

  1. omm用户身份登录GaussDB 100被隔离CN所在服务器。
  1. 使用以下命令查看集群状态。
    gs_om -t status

    状态显示为DELETED的CN,为被隔离的CN。集群状态详解,请参见集群状态查询

  2. (可选)故障CN被隔离期间,如果在其它正常CN上进行过DDL操作,需要将元数据同步到故障CN上。

    1. 使用以下命令,关闭CM自动更新CN和DN的路由信息表功能。
      cm ctl updateCNSwitchCmd updateNodeRoute=OFF
    2. 关闭CM检测CN自动隔离开关。
      cm ctl set -p CoordinatorHeartbeatTimeout -v 
    3. 恢复集群中故障CN的状态。
      cm ctl restoreCn -H host_name -I instance_name
    4. 在正常CN上进行过DDL操作上执行EXP逻辑导出,生成元数据,具体操作参见《GaussDB 100 1.0.1开发者指南(分布式)》中的语法参考 > 功能语法 > EXP章节。
      {EXP | EXPORT}[ keyword =param [ , ... ] ] [ ... ];
    5. 在故障CN上以本地登录方式使用zsql连接数据库
      zsql / as clsmgr
    6. (可选)如果使用zsql连接失败,需要使用如下命令手工启动CN进程后再使用命令“zsql / as clsmgr”本地登录故障CN。
      zengine open --coordinator -D cn_data_dir
    7. 将元数据同步到故障CN上。
      @业务DDL脚本.sql
    8. 退出当前链接。
      exit

  3. 使用以下命令,关闭CM自动更新CN和DN的路由信息表功能。
    cm ctl updateCNSwitchCmd updateNodeRoute=OFF

  4. 关闭CM检测CN自动隔离开关。
    cm ctl set -p CoordinatorHeartbeatTimeout -v 

  5. 在除故障CN以外的集群所有CN、主DN上,以本地登录方式执行以下命令,加回故障节点。

    本地登录CN的命令为“zsql / as clsmgr”,本地登录DN的命令为“zsql / as sysdba -D dn_data_dir”。

    CREATE NODE cn_name WITH (
    TYPE = 'coordinator',
    NODEID =401,
    HOST = '192.168.0.3 ',
    PORT = 8000,
    USERNAME = omm,
    PASSWORD = 'gaussdb_123'
    );

  6. 恢复集群中故障CN的状态。
    cm ctl restoreCn -H host_name -I instance_name
    重启故障CN。
  7. gs_om -t start -h host_name -I cn_name

  8. 打开CM检测CN自动隔离开关。
    cm ctl set -p CoordinatorHeartbeatTimeout -v 300

    系统默认CN故障5分钟(即300秒)后进行故障隔离。

  1. 启动CM的自动更新CN和DN的路由信息表功能。
    cm ctl updateCNSwitchCmd updateNodeRoute=ON
分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~