暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 替换故障实例

墨天轮 2019-09-28
589

替换故障实例

当主机上的某些实例出现故障后,可以使用替换实例功能,快速的将故障的实例修复到正常状态,无需替换主机。

前提条件

  • 分布式部署模式下替换故障实例的前提条件:
    • 故障节点不能存在CN实例。
    • 集群状态可查,主CM Server状态正常,集群状态不能为Unavailable。
    • 替换前不能锁定集群。
    • 实例替换必须在正常主机上执行。
    • 在修复实例时,各主机必须互信正常。
    • 替换实例操作会修复故障节点下的全部故障实例。
    • 替换实例期间集群不能执行DDL和DML操作。
    • 各节点的系统时间必须同步。
  • 主备部署模式下替换故障实例的前提条件:
    • 集群状态可查,且主CM Server状态正常。
    • 对于故障节点上的DN所在的group,HA集群需保证主DN正常;Z-Paxos集群除了要保证主DN正常外,还需保证每个group中正常DN个数大于等于总数(不包含passive DN)的1/2+1(向下取整)个。
    • 替换前,故障节点上的DN所在的group不能被锁定。
    • 实例替换必须在一个正常主机上执行。
    • 在修复实例时,各主机必须互信正常。
    • 替换实例操作会修复故障节点下的全部故障实例。
    • 替换实例期间故障节点上的DN所在的group不能执行DDL和DML操作。
    • 各节点的系统时间必须同步。

注意事项

  • 替换过程中,请勿执行数据的增删改等DML操作以及DDL操作,否则有可能数据丢失导致数据不一致。
  • 如果故障实例所在主机的安装目录下($GAUSSHOME/bin/)的二进制文件损坏或丢失,则不能通过替换实例进行修复。需要复制其他正常主机对应的二进制文件到该主机,或者将该主机卸载后,再通过替换主机修复。
  • 在前一次替换结束后才能再次执行替换。因此请不要同时在多个主机上同时执行替换操作。
  • 在替换实例的config阶段,先将CM Agent组件修复好,这样才能获取到集群中所有实例的状态。如果主机上的某些实例被人为停止,在CM Agent组件修复好之后,这些原来正常的实例会被正常拉起,而不会被替换。如果在一定时间内拉起失败,这些实例将会被替换。

操作步骤

以替换主机plat1、plat2上的实例为例。

  • omm用户身份登录GaussDB 100待替换实例所在服务器。
  • 使用如下命令在需要替换实例的主机上完成配置操作。

    omm@plat1:~> gs_replace -t config -h plat1,plat2

    配置操作会清理替换实例的空间,初始化替换实例,配置替换实例。

    如果收到提示:“GAUSS_50201: The XXX does not exist.”,则请检查对应的实例数据目录是否存在。如果不存在,请重新创建目录后再次执行上述命令。

  • 使用如下命令在需要替换实例的主机上完成启动操作。

    omm@plat1:~> gs_replace -t start -h plat1,plat2

    启动操作会启动集群替换实例的主机。

  • 使用如下命令查询集群状态。

    omm@plat1:~> gs_om -t status

示例

示例1:替换故障实例。

  • 配置替换的实例。
    omm@plat1:/opt/software/gaussdb/script> gs_replace -t config -h plat1,plat2 Check cluster status for replace. Check the status of ETCD cluster. Successfully check the status of ETCD cluster. Successfully check cluster status. Filter out all valid hosts for replacing. Distributing configuration to remote host. Successfully distributed configuration to remote host. Configuring Stopping replace instances. Successfully stopped replace instances. Waiting for upgrading standby instances. Successfully upgraded standby instances. Configuring replacement instances. Delete broken instances for primary instances' raft. Successfully delete broken instances for primary instances' raft. Config replace instances. Successfully config replace instances. Add cover instances for primary instances' raft. Successfully add broken instances for primary instances' raft. Config standby DN of new instances. .............................. .............................. .............................. .............................. .............................. .............................. .......................... Config standby DN of new instances successfully. Successfully configured replacement instances. Configuration succeeded. ============================== Time statistics: Config replacement nodes: 264s total: 264s
  • 启动替换实例所在主机。
    omm@plat1:/opt/software/gaussdb/script> gs_replace -t start -h plat1,plat2 Starting. ============================== .. Start cm agent on new nodes. Successfully start cm agent for new nodes. Starting the cluster. . Successfully started instance process. Waiting to become Normal. ============================== Successfully started cluster. ============================== Time statistics: Start replacement nodes: 27s total: 27s
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论