GaussDB数据库版本升级--容灾滚动升级

127 阅读12分钟

容灾滚动升级

操作场景

容灾滚动升级是实例间的一种升级方式,仅支持Dorado容灾双集群、Dorado双+异地流式备两地三中心的场景。容灾滚动升级基于主实例先提交升级,备实例再提交升级的方式,可以优先使用到新版本特性,并且在特性不兼容或者故障场景下,可以快速切换旧版本的备实例恢复业务。

流程图

图1 Dorado双+异地流式备两地三中心操作流程图

图2 Dorado容灾双集群操作流程图

约束限制
  • 仅支持集中式版实例。
  • 仅支持Dorado容灾双集群、Dorado双+异地流式备两地三中心的场景。
  • 数据库引擎版本大于等于V2.0-8.200.0。
  • 容灾滚动升级需要开启白名单“gaussdb_feature_supportInterClusterRollingUpgrade”,白名单默认关闭。请参考《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“运维指南 > DBS运维管理平台操作指南 > 配置管理 > 特性白名单” 章节开启白名单。
  • 升级前需要设置容灾相关集群的GUC参数wal_level=logical。
  • 容灾滚动升级期间,容灾集群间拓扑结构变化时,不支持继续进行容灾滚动升级。
注意事项
  • DN磁盘使用率不得高于设置磁盘使用率阈值减去10%的值。

    DN磁盘使用率可以通过管理控制台监控指标查看。

    磁盘使用率阈值可以联系技术支持人员获取。

  • 实例节点状态异常,不支持版本升级。

  • 版本升级过程中不支持磁盘扩容、规格变更、备份、重置密码、重启实例、删除实例等操作。

  • 建议在业务较小的时候执行版本升级操作,确认CPU,磁盘,内存使用率等都有较大的空闲。

  • 在大版本升级时如果使用升级待观察方式,升级过程中全量备份将无法触发,差量备份可能失败。升级观察期间待所有AZ都升级完成后才允许执行手动全量备份,在提交升级前仍会进行归档日志,用户可以通过归档日志进行PITR恢复,保证数据不会丢失。提交升级时会关闭归档日志。

  • 如果升级过程中出现异常导致升级失败,系统会自动对实例进行回退,您可以联系客服,由工程师给出分析评估后重新执行升级。

  • 升级结束后会触发自动备份,开启关闭的归档日志。需要注意的是单副本实例从V2.0-3.0以下版本升级到V2.0-3.0以上版本时自动备份默认关闭,不会触发自动备份,小版本升级也不会触发自动备份。

    大版本升级,例如:V2.0-1.x升级V2.0-2.x或者V2.0-2.x到V2.0-2.y。

    小版本升级,例如:从V2.0-1.a.x升级到V2.0-1.a.y或者V2.0-2.a.x升级到V2.0-2.a.y。

步骤一:升级前检查

版本升级前需要检查实例状态和实例的CPU使用率、内存使用率、磁盘使用率等监控指标是否正常,并且需要检查容灾相关实例GUC参数wal_level的值是否为logical。

  1. 检查实例状态

    1. 登录管理控制台。

    2. 单击管理控制台左上角的,选择区域和项目。

    3. 在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。

    4. 在“实例管理”页面,查看实例的运行状态是否正常。

      如果实例状态异常,您可以联系技术支持,由工程师给出分析评估后进行处理。

  2. 检查监控指标

    1. 在“实例管理”页面选择指定的实例,在操作列单击“查看监控指标”,进入查看监控指标页面。

      查看“实例数据磁盘已使用百分比”,查看是否有磁盘满使用率不足的情况。

    2. 在“实例管理”页面选择指定的实例,单击实例名称,进入“基本信息页面”。

    3. 在“节点列表”模块,选择指定的节点,在操作列单击“查看监控指标”,进入查看监控指标页面。

      • 查看“CPU使用率”,查看是否有CPU长期过高的情况。
      • 查看“内存使用率”,查看是否有内存飙升的情况。

      如果监控指标异常,您可以联系技术支持,由工程师给出分析评估后进行处理。

  3. 检查GUC参数wal_level的值是否为logical。

    按照以下步骤依次检查容灾实例的参数:

    1. 登录管理控制台。
    2. 单击管理控制台左上角的,选择区域和项目。
    3. 在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。
    4. 在“实例管理”页面,单机需要查看参数的实例,进入“参数管理”,在输入框搜索 “wal_level”。
      1. 如果默认值不是logical,修改为logical保存。等待参数修改成功后,单击右上角“重启实例”使参数修改生效。
      2. 如果值是logical,则忽略。
步骤二:升级操作
  1. 在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。

  2. 在“实例管理”页面,选择指定的实例,单击“操作”列的“更多 > 版本升级 ”。

    您也可以单击实例名称,进入基本信息页面,在“数据库信息”模块的“数据库引擎版本”处单击“版本升级”。

  3. 在“版本升级”界面,选择“容灾滚动升级”,按照升级方式下方的步骤条执行。

    • Dorado双+异地流式备两地三中心场景

      假设Dorado主为实例A,Dorado备为实例B,异地流式备为实例C。按照表1顺序依次执行1到10。

      图3 Dorado双集群+异地流式备两地三中心场景

      NOTICE:

      在容灾滚动升级期间,不支持容灾相关操作。如果需要执行备实例容灾升主、容灾主备切换、容灾回切操作,请参考《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“故障管理 > 故障处理 > 业务故障 > 容灾滚动升级 > 三集群故障”恢复。

      表1 Dorado双+异地流式备两地三中心场景容灾滚动升级步骤

      序号

      容灾滚动升级步骤

      执行动作实例

      容灾约束项(此约束特指滚动升级Action释放并且对应步骤完成后的容灾操作)

      Dorado容灾主备切换

      Dorado容灾升主

      Dorado容灾回切

      Dorado容灾解除

      流式容灾主备切换

      流式容灾升主

      流式容灾回切

      流式容灾解除

      1

      异地流式备连接切换至Dorado备

      实例C

      不支持

      不支持

      支持

      支持

      不支持

      支持

      不支持

      支持

      2

      实例间物理转逻辑复制

      须知:

      当前步骤完成后,灾备数据库回放不支持DDL,请参考

      《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“故障管理 > 故障处理 > 业务故障 > 容灾滚动升级 > Dorado容灾滚动升级期间(DML/DDL)失败”恢复。

      实例B

      支持

      支持

      支持

      支持

      不支持

      支持

      不支持

      支持

      3

      Dorado备组件升级

      实例B

      支持

      支持

      支持

      支持

      不支持

      支持

      不支持

      支持

      4

      异地流式备组件升级

      实例C

      支持

      支持

      支持

      支持

      不支持

      支持

      不支持

      支持

      5

      主实例升级

      须知:

      主集群升级支持升级待观察和自动提交。

      实例A

      支持

      支持

      不支持

      支持

      不支持

      支持

      不支持

      支持

      6

      异地流式备连接切换至Dorado主

      实例C

      支持

      支持

      不支持

      支持

      不支持

      支持

      不支持

      支持

      7

      Dorado备升级

      须知:

      Dorado备升级仅支持自动提交。

      实例B

      支持

      支持

      不支持

      支持

      不支持

      支持

      不支持

      支持

      8

      Dorado备逻辑转物理复制

      实例B(Dorado备升级之后自动触发)

      支持

      支持

      支持

      支持

      不支持

      支持

      不支持

      支持

      9

      异地流式备升级

      须知:

      异地流式备升级仅支持自动提交。

      实例C

      支持

      支持

      支持

      支持

      不支持

      支持

      不支持

      支持

      10

      异地流式备逻辑转物理复制

      实例C(异地流式备升级之后自动触发)

      支持

      支持

      支持

      支持

      支持

      支持

      支持

      支持

    • Dorado双集群场景

      假设Dorado主为实例A,Dorado备为实例B。按照表2顺序依次执行1到5。

      图4 Dorado双集群场景版本升级

      NOTICE:

      在容灾滚动升级期间,不支持容灾相关操作。如果需要执行备实例容灾升主、容灾主备切换、容灾回切操作,请参考《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“故障管理 > 故障处理 > 业务故障 > 容灾滚动升级 > 双集群故障”恢复。

      表2 Dorado双集群场景容灾滚动升级步骤

      序号

      容灾滚动升级步骤

      执行动作实例

      容灾约束项(此约束特指滚动升级Action释放并且对应步骤完成后的容灾操作)

      Dorado容灾主备切换

      Dorado容灾升主

      Dorado容灾回切

      Dorado容灾解除

      1

      实例间物理转逻辑复制

      须知:

      当前步骤完成后,灾备数据库回放不支持DDL,请参考

      《云数据库 GaussDB 维护指南(for 华为云Stack 8.5.0)》中的“故障管理 > 故障处理 > 业务故障 > 容灾滚动升级 > Dorado容灾滚动升级期间(DML/DDL)失败”恢复。

      实例B

      支持

      支持

      支持

      支持

      2

      Dorado备组件升级

      实例B

      支持

      支持

      支持

      支持

      3

      主实例升级

      须知:

      主集群升级支持升级待观察和自动提交。

      实例A

      支持

      支持

      不支持

      支持

      4

      Dorado备升级

      须知:

      Dorado备升级仅支持自动提交。

      实例B

      支持

      支持

      不支持

      支持

      5

      Dorado备逻辑转物理复制

      实例B(Dorado备升级之后自动触发)

      支持

      支持

      支持

      支持

  4. 在“实例管理”页面,查看版升级情况。

    • 升级过程中,实例运行状态为“实例容灾滚动升级中”。

    • 升级完成后,实例运行状态变为“正常”。

    • 升级失败,实例会显示“容灾滚动升级异常”,此时单击版本“版本升级”,选择“容灾滚动升级”,查看具体失败的步骤。

      如果升级步骤进行到“主实例升级”,在完成升级待观察或者升级提交之后,可以参考步骤三:升级后验证进行验证。

步骤三:升级后验证

升级完成后需要检查升级后的实例状态、备份创建、连接实例是否正常,能否进行正常的增加、删除、修改、查询操作。

  1. 在“实例管理”页面,查看实例的运行状态是否为“正常”。
  2. 在“实例管理”页面单击实例名称,进入基本信息页面,查看“数据库信息”模块的“数据库引擎版本”是否已升级到目标版本。
  3. 检查备份创建是否正常。升级完成后系统会进行一次自动备份,检查备份创建是否正常。
    1. 在“实例管理”页面,选择指定的实例,单击实例名称。
    2. 在左侧导航栏中选择“备份恢复”,查看备份是否创建,且备份状态是否为“备份完成”。
  4. 检查实例连接是否正常,是否能进行正常的增加、删除、修改、查询操作。
    1. 创建数据库。

      CREATE DATABASE

      数据库名

      ;

      以创建一个库名为db_tpcds的数据库为例:

      CREATE DATABASE db_tpcds;

      创建完db_tpcds数据库后,可以在左上方切换到新创建的库中。

    2. 创建表,并进行增加、删除、修改、查询操作。

      1. 创建一个SCHEMA。

        CREATE SCHEMA

        myschema

        ;

      2. 创建一个名称为mytable,只有一列的表。字段名为firstcol,字段类型为Integer。

        CREATE TABLE myschema

        .

        mytable

        (firstcol int)

        ;

      3. 向表中插入数据:

        INSERT INTO myschema

        .

        mytable VALUES (100);

      4. 查看表中数据:

        SELECT * FROM myschema.mytable;

           | firstcol | 
        ---+----------+
        1  |   100    |
        
      5. 修改表中数据:

        UPDATE myschema.mytable SET firstcol = 200;

      6. 再次查看表中数据:

        SELECT * FROM myschema.mytable;

           | firstcol | 
        ---+----------+
        1  |   200    |
        
      7. 删除表:

        DROP TABLE myschema.mytable;

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