更新时间:2024-08-23 GMT+08:00

批量实例内核版本升级

功能介绍

GaussDB批量实例版本升级。包括灰度升级,就地升级、热补丁升级三种升级方式。 批量实例可升级版本大于当前所有实例的最小引擎版本,且选择的所有实例,其升级方式和操作方式要保持一致。若批量实例升级方式是灰度升级,默认升级所有AZ和分片。

  • 就地升级:就地升级需要停止业务进行,会一次性升级集群中所有节点。就地升级需要暂停业务30分钟来升级。
  • 灰度升级:
    每个主DN或者CN组件升级就有一次10秒业务中断。升级过程均是先管理面,再数据面,由备到主的升级方式。
    • 升级自动提交:所有节点进程一起升级,在升级过程中有大概10秒的业务中断,不阻塞其他业务操作。
    • 升级待观察:升级待观察,将数据库升级过程细分为升级,提交两个阶段。
      • 升级阶段可以根据部署方式细分为按分片或者按AZ的滚动升级。
        • 分布式实例:根据分片数滚动升级。批量实例升级方式下,默认升级所有分片。
        • 主备版实例:根据AZ数进行滚动升级。批量实例升级方式下,默认升级所有分片。
      • 提交阶段可以对升级完成后的实例进行业务测试,根据需要可以选择提交升级或者升级回退。
        • 提交升级:在升级完成进入提交阶段时,业务测试正常后提交升级,完成本次升级流程。
        • 升级回退:在升级完成进入提交阶段时,可以根据需要回退本次升级,回退到升级前的版本。
  • 热补丁升级:
    • 升级自动提交:热补丁自动升级并提交,中间无业务中断,仅修复产品BUG。
    • 升级回退:热补丁回退,无业务中断时间。

URI

PUT https://{Endpoint}/v3/{project_id}/instances/db-upgrade

表1 参数说明

参数

是否必选

参数类型

描述

project_id

String

参数解释:

租户在某一Region下的项目ID。

获取方法请参见获取项目ID

约束限制:

不涉及。

取值范围:

只能由英文字母、数字组成,且长度为32个字符。

默认取值

不涉及。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

instance_ids

Array of strings

批量实例ID。

upgrade_type

String

实例升级类型。包括就地升级,灰度升级、热补丁升级三种。区分大小写。

取值范围:

  • grey:灰度升级。
  • inplace:就地升级。
  • hotfix:热补丁升级。

upgrade_action

String

实例升级操作,就地升级无需传值。灰度升级包括升级自动提交,升级待观察,提交升级,升级回退四种。区分大小写。

  • upgrade:升级。
  • upgradeAutoCommit:升级自动提交。
  • commit:提交。
  • rollback:回滚。

target_version

String

批量实例升级目标版本,非必填。

如果未传值,灰度升级和就地升级默认升级到当前实例的优选三位版本,如果是大版本升级,灰度升级和就地升级必填此参数。热补丁升级无需传该值,默认升级实例所有可升级热补丁。

响应参数

表3 响应参数

参数

参数类型

描述

job_ids

Array of strings

任务ID。

succeeded_num

Integer

下发成功的实例数量。

failed_num

Integer

下发失败的实例数量。

failed_instance_ids

Array of strings

下发失败的实例ID列表。

error_messages

Array of strings

下发失败错误信息列表。

请求示例

  • 批量实例就地升级
    PUT https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/db-upgrade
    { 
      "instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14", "aa0ae5c47bf94834bf9e44138f7f995ain14" ], 
      "upgrade_type" : "inplace" , 
      "target_version" : "8.100.0" 
    }
  • 批量实例灰度升级并采用升级待观察方式升级传参。
    PUT https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/db-upgrade
    { 
      "instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14", "aa0ae5c47bf94834bf9e44138f7f995ain14" ], 
      "upgrade_type" : "grey", 
      "upgrade_action" : "upgrade", 
      "target_version" : "8.100.0" 
    }
  • 批量实例灰度升级并采用回滚方式升级传参。
    PUT https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/db-upgrade
    { 
      "instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14", "aa0ae5c47bf94834bf9e44138f7f995ain14" ], 
      "upgrade_type" : "grey", 
      "upgrade_action" : "rollback", 
      "target_version" : "8.100.0" 
    }
  • 批量实例灰度升级并采用升级自动提交方式升级传参。
    PUT https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/db-upgrade
    { 
      "instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14", "aa0ae5c47bf94834bf9e44138f7f995ain14" ], 
      "upgrade_type" : "grey", 
      "upgrade_action" : "upgradeAutoCommit", 
      "target_version" : "8.100.0" 
    }
  • 批量实例热补丁升级并采用升级自动提交方式升级传参。
    PUT https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/db-upgrade
    { 
      "instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14", "aa0ae5c47bf94834bf9e44138f7f995ain14" ], 
      "upgrade_type" : "hotfix", 
      "upgrade_action" : "upgradeAutoCommit" 
    }
  • 批量实例热补丁升级回退并采用升级回退方式传参。
    PUT https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/v3/0483b6b16e954cb88930a360d2c4e663/instances/db-upgrade
    {
    "instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14", "aa0ae5c47bf94834bf9e44138f7f995ain14" ],
    "upgrade_type" : "hotfix",
    "upgrade_action" : "rollback"
    }

响应示例

{ 
  "job_ids" : [ "2b414788a6004883a02390e2eb0ea227", "aa414788a6004883a02390e2eb0ea228" ], 
  "succeeded_num" : 2, 
  "failed_num" : 1, 
  "failed_instance_ids" : [ "cc0ae5c47bf94834bf9e44138f7f995ain14" ], 
  "error_messages" : [ "实例状态异常,无法进行该操作" ] 
}

状态码

错误码

请参见错误码