GaussDB管理平台形态变更失败需要回滚

66 阅读5分钟

形态变更失败需要回滚

现象描述

用户在下发形态变更后,任务失败导致实例锁住,需要回滚恢复。

可能原因

实例故障或机器故障引起的失败,需要恢复业务。

定位思路

查看实例状态是否正常,查看当前任务的进展,符合要求则允许进行回滚操作。

缩副本场景处理步骤
  1. 使用有管理员权限的账号登录云数据库GaussDB管理平台(TPOPS)。

  2. 在“任务中心”,通过实例ID进行搜索,找到失败的形态变更工作流。

  3. 缩副本场景下,在WaitReduceReplicaTask及其之前Task出现了失败,则允许进行回滚操作。

  4. 在当前工作流中单击“释放锁”。

  5. 在“实例管理”页面,筛选条件选择“实例ID”或“实例名称”,输入框中输入获取的实例ID或实例名称,执行搜索。

  6. 单击搜索出实例的“实例名称”,进入实例详情界面。

  7. 单击“备份恢复 > 修改备份策略”,打开自动备份。

  8. 以root用户登录云数据库GaussDB管理平台(TPOPS)所在主节点。

  9. 执行以下命令,切换数据库用户并更新环境变量。

    su dbadmin

    source ~/gauss_env_file

  10. 使用以下命令登录数据库,请根据提示输入正确的密码(密码请参见《云数据库GaussDB管理平台(TPOPS) 账户一览表 01》中对应的默认密码)。

**gsql -q core -p 8635 -U core** **\-h 127.\*.\*.\***
  1. 执行以下SQL,打开HA开关。
**INSERT INTO CORE.DBS\_HA\_DISTRIBUTION\_EVENT (ID, TYPE, INSTANCE\_ID)**
**VALUES('**

**{UUID}**

**', 0, '

{instanceId}

');**

其中UUID可以随机生成,instanceId为实例ID。
扩副本场景处理步骤
  1. 使用有管理员权限的账号登录云数据库GaussDB管理平台(TPOPS)。

  2. 在“任务中心”,通过实例ID进行搜索,找到失败的形态变更工作流。

  3. 扩副本场景下,须确认是否可以进行回滚操作。

    1. 在WaitAgentCmdLongerTask之后的Task出现了失败,则不允许进行回滚操作,请联系技术人员支持

    2. 登录实例主节点后台,执行以下命令查询当前实例状态。

      su Ruby

      source ~/gauss_env_file

      cm_ctl query -Cvdz ALL

      若查询到实例中DN数量不为3,则不允许进行回滚操作,请联系技术人员支持

  4. 进入对应实例的“实例详情”界面。

  5. 在形态变更的任务详情页面,单击“调度方案”处的“释放锁”(若“释放锁”按钮置灰,请先刷新当前页面),解除当前任务的Action锁。

  6. 复制当前实例ID和两个新节点的ID。

  7. 以root用户登录云数据库GaussDB管理平台(TPOPS)所在主节点。

  8. 将管理平台安装包所在目录(以/data/docker-service目录为例,以实际docker-service所在目录为准)下的回滚文件expand_roll_back.sql复制到目录/home/dbadmin下。

    cp /data/docker-service/package/rollback_sql/expand_roll_back.sql /home/dbadmin

  9. 执行以下命令,修改回滚文件的权限。

    cd /home/dbadmin**/**

    chown dbadmin:dbgrp expand_roll_back.sql

  10. 执行以下命令,依次修改回滚文件中的实例ID和两个新节点ID。

**sed -i 's/rollback\_instance/**
**{instanceId}**

**/g;s/rollback\_node\_1/

{node\_1}

/g;s/rollback\_node\_2/

{node\_2}

/g' expand\_roll\_back.sql**

例如,实例ID为32eb35ac8e314256bbc4b2293666dd5bin14,两个新节点ID分别为4dd5a6caa8ee42e5a0ff522c56670c3cno14、dbee0ac3d66f417381c3c9d18ad024abno14

则命令最终为:

**sed -i 's/rollback\_instance/32eb35ac8e314256bbc4b2293666dd5bin14/g;s/rollback\_node\_1/4dd5a6caa8ee42e5a0ff522c56670c3cno14/g;s/rollback\_node\_2/dbee0ac3d66f417381c3c9d18ad024abno14/g' expand\_roll\_back.sql**

可cat该文件,检查文件最后是否正确修改实例ID和两个新节点ID。

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/66ff9c162ab140e8bacc92b2cad24c71~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgb3BlbkdhdXNz5bCP55m95oiQ6ZW_5pel6K6w:q75.awebp?rk3s=f64ab15b&x-expires=1771381163&x-signature=LIkBcsSZ7QbX5B8LqKdhjyrVk8Y%3D)

11. 执行以下命令,切换数据库用户并导入环境变量。

**su dbadmin**

**source ~/gauss\_env\_file**

12. 使用以下命令,连接数据库并执行回滚SQL。

**gsql -q core -p 8635 -U core** **\-h 127.\*.\*.\*** **-W**

**{password}**

**\-f expand\_roll\_back.sql**

![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e1a1b1aab27344edbcfd07c4b45ead67~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgb3BlbkdhdXNz5bCP55m95oiQ6ZW_5pel6K6w:q75.awebp?rk3s=f64ab15b&x-expires=1771381163&x-signature=zjVRzL2teRQfKLlI6NEYg0j4sPE%3D)

{password}

请参见《[云数据库GaussDB管理平台(TPOPS) 账户一览表 01](https://support.huawei.com/enterprise/zh/cloud-computing/gaussdb-pid-251517148)》中数据库core账户对应的默认密码。

13. 参考《云数据库GaussDB管理平台(TPOPS) 用户指南》中的“常见问题 > 实例异常 > 后台手动删除实例”章节,重置两个新扩节点的主机。

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…