
# 灰度升级
#### 操作场景
当涉及新功能或问题修复等需要进行版本升级时，云数据库GaussDB提供了灰度升级的方式，灰度升级支持升级自动提交和升级待观察两种操作方式。
- 升级自动提交是先升级所有备DN，再升级主DN，最后升级CN，升级完成后会自动提交升级。
- 升级待观察又名滚动升级。升级待观察方式升级完成后进入观察状态，可以在此期间观察业务状态，根据业务情况选择提交或回退本次升级。
  - 分布式版实例按照分片进行滚动，操作请参见[分布式版实例升级]。
  
  - 集中式版实例按照AZ进行滚动，操作参见[集中式版实例升级]。
   
 
#### 操作流程
| 操作步骤                                                             | 说明                                                    |
|:---|:---|
| [步骤一：升级前检查] | 版本升级前需要检查实例状态和实例的CPU使用率、内存使用率、磁盘使用率等监控指标是否正常。         |
| [步骤二：升级操作]    | 支持两种升级方式：升级自动提交和升级待观察。用户可以根据需要选择单个实例升级，也可以选择批量升级多个实例。 |
| [步骤三：升级后验证]  | 升级完成后需要检查升级后的实例状态、备份创建、连接实例是否正常，能否进行正常的增加、删除、修改、查询操作。 |
   
#### 注意事项
- 升级时应用新增加的规格参数，可能会导致实例重启。重启过程中，实例将不可用。重启后实例会自动释放内存中的缓存，请在业务低峰期进行该操作，避免对高峰期业务造成影响。
- DN磁盘使用率不得高于设置磁盘使用率阈值减去10%的值。
  ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  DN磁盘使用率可以通过管理控制台监控指标查看。
  磁盘使用率阈值可以在管理控制台右上角，选择[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)，联系技术支持人员获取。
  
- 实例节点状态异常，不支持灰度升级。
- 升级前确保每个库的public schema存在，否则升级会失败。
- 升级待观察方式支持手动回退操作，升级自动提交不支持手动回退操作。
- 升级过程中不支持自动降副本操作。
- 灰度升级/回退过程中不支持磁盘扩容、规格变更、备份、重置密码、重启实例、删除实例等操作。
- 建议在业务较小的时候执行灰度升级操作，以确保CPU，磁盘，内存使用率等都有较大的空闲。
- 在大版本升级时如果使用升级自动提交方式，在执行升级前会关闭归档日志，用户无法通过归档日志进行PITR恢复，可能会造成数据丢失。
- 在大版本升级时如果使用升级待观察方式，升级过程中全量备份将无法触发，差量备份可能失败。升级观察期间待所有AZ都升级完成后才允许执行手动全量备份，在提交升级前仍会进行归档日志，用户可以通过归档日志进行PITR恢复，保证数据不会丢失。提交升级时会关闭归档日志。
- 如果升级过程中出现异常导致升级失败，系统会自动对实例进行回退，您可以在管理控制台右上角，选择[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)，联系华为云技术支持，由华为云工程师给出分析评估后重新执行升级。
- 在升级主DN和CN的过程中分别会有一次10秒左右的业务中断。
- 升级结束后会触发自动备份，开启关闭的归档日志。需要注意的是小版本升级不会触发自动备份。仅V2.0-2.2以上版本的实例才能进行归档日志。
  ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  小版本升级，例如：从V2.0-1.a.x升级到V2.0-1.a.y或者V2.0-2.a.x升级到V2.0-2.a.y。
  大版本升级，例如：V2.0-1.x升级V2.0-2.x或者V2.0-2.x到V2.0-2.y等。
  
 
 #### 步骤一：升级前检查
版本升级前需要检查实例状态和实例的CPU使用率、内存使用率、磁盘使用率等监控指标是否正常。
1. 检查实例状态
   1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
   
   2. 在"实例管理"页面，查看实例的运行状态是否正常。
      图1实例状态   
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853219.png "点击放大")
      
      如果实例状态异常，您可以在管理控制台右上角，选择[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)，联系华为云技术支持，由华为云工程师给出分析评估后进行处理。
      
    
2. 检查监控指标
   1. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933380.png)，选择"管理与监管 \> 云监控服务 CES"，进入"云监控"服务信息页面。
   
   2. 在左侧导航栏选择"云服务监控 \> 云数据库 GaussDB"，进入"云服务监控"页面。
   
   3. 在云监控页面，单击需要查看监控的实例，进入"监控指标"页面。
      - 在"实例"页面查看"实例数据磁盘已使用百分比"，查看是否有磁盘满使用率不足的情况。
      
      - 在"节点"页面查看"CPU使用率"，查看是否有CPU长期过高的情况。
      
      - 在"节点"页面查看"内存使用率"，查看是否有内存飙升的情况。
      
      
      如果监控指标异常，您可以在管理控制台右上角，选择[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)，联系华为云技术支持，由华为云工程师给出分析评估后进行处理。
      
    
 
 #### 步骤二：升级操作
灰度升级支持升级自动提交和升级待观察两种升级方式。您可以根据需要选择合适的升级方式。
- [升级自动提交方式]
  **【方式一：单个实例版本升级】**
  1. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933456.png)，选择"数据库 \> 云数据库 GaussDB"，进入云数据库 GaussDB信息页面。
  
  2. 在"实例管理"页面，选择指定的实例，单击"操作"列的"更多 \> 版本升级 "。
  
  3. 在"版本升级"界面，单击"灰度升级"。
  
  4. 单击"升级自动提交"。 GaussDB提供版本升级路径管理功能，支持搜索从源版本到目标版本的所有升级路径，并提供界面可视化升级路径图，帮助您规划合理的升级方案。如需使用，请单击"版本升级路径管理"跳转至"版本管理"页面，查询对应版本的升级路径。
     下发升级时，可选择是否应用目标版本新增的规格参数。升级时应用新增加的规格参数，可能会导致实例重启。重启过程中，实例将不可用。重启后实例会自动释放内存中的缓存，请在业务低峰期进行该操作，避免对高峰期业务造成影响。
     
     图2版本升级界面   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013131.png "点击放大")
     
     
  
  5. 选择目标版本，输入"YES"，单击"确定"，确认升级。
  
  6. 在"实例管理"页面，查看版本升级情况。
     - 升级过程中，实例运行状态为"实例版本升级中"。
     
     - 升级完成后，实例运行状态变为"正常"。此时，您可以在实例"基本信息"页面，"配置信息"模块查看"数据库引擎版本"是否已升级到目标版本。
      
  
  
  **【方式二：批量实例版本升级】**
  1. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013123.png)，选择"数据库 \> 云数据库 GaussDB"，进入云数据库 GaussDB信息页面。
  
  2. 在"实例管理"页面，选择指定的实例，单击"批量版本升级"。
     图3批量版本升级   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933444.png "点击放大")
     
     
  
  3. 在"批量版本升级"界面，单击"灰度升级"。
  
  4. 单击"升级自动提交"。
  
  5. 选择目标版本，输入"YES"，单击"确定"，确认升级。
     图4灰度升级自动提交   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933464.png "点击放大")
     
     
     
  
  6. 在"实例管理"页面，查看版本升级情况。
     - 升级过程中，实例运行状态为"实例版本升级中"。
     
     - 升级完成后，实例运行状态变为"正常"。此时，您可以在实例"基本信息"页面，"配置信息"模块查看"数据库引擎版本"是否已升级到目标版本。
      
   
- [升级待观察方式]
  **【方式一：单个实例版本升级】**
  - 分布式版实例升级
    1. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773552.png)，选择"数据库 \> 云数据库 GaussDB"，进入云数据库 GaussDB信息页面。
    
    2. 在"实例管理"页面，选择指定的实例，单击"操作"列的"更多 \> 版本升级 "。
       您也可以单击实例名称，进入基本信息页面，在"配置信息"模块的"数据库引擎版本"处单击"版本升级"。
       图5基本信息   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679853159.png "点击放大") 
    
    3. 在"版本升级"界面，单击"灰度升级"。
    
    4. 单击"升级待观察"。
    
    5. 独立部署形态实例选择"本次升级分片数"，混合部署形态实例选择"升级可用区"，选择"目标版本"，输入"YES"，单击"确定"，确认升级。 GaussDB提供版本升级路径管理功能，支持搜索从源版本到目标版本的所有升级路径，并提供界面可视化升级路径图，帮助您规划合理的升级方案。如需使用，请单击"版本升级路径管理"跳转至"版本管理"页面，查询对应版本的升级路径。
       图6分布式版独立部署实例版本升级界面   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013121.png "点击放大")
       
       图7分布式版混合部署实例版本升级界面   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773572.png "点击放大")
       
       
    
    6. 在"实例管理"页面，查看版本升级情况。
       1. 升级过程中，实例运行状态为"实例版本升级中"。
       
       2. 升级完成后，实例运行状态变为"实例版本升级待观察"。
        
    
    7. 升级待观察方式下，待所有分片或可用区都升级完成，且业务测试正常后，可以提交升级。 在"版本升级"界面，选择"目标版本"，输入"YES"，单击"提交升级"。
       如果选择逐个分片或可用区进行升级，则一个分片或可用区升级完成后，还需重复[2]\~[6]分别升级所有分片或可用区，才可提交升级。
       
       
     
  
  - 集中式版实例升级
    1. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933450.png)，选择"数据库 \> 云数据库 GaussDB"，进入云数据库 GaussDB信息页面。
    
    2. 在"实例管理"页面，选择指定的实例，单击"操作"列的"更多 \> 版本升级 "。
       您也可以单击实例名称，进入基本信息页面，在"配置信息"模块的"数据库引擎版本"处单击"版本升级"。
       图8基本信息   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013125.png "点击放大") 
    
    3. 在"版本升级"界面，单击"灰度升级"。
    
    4. 单击"升级待观察"。
    
    5. 选择"升级可用区"和"目标版本"，输入"YES"，单击"确定"，确认升级。 GaussDB提供版本升级路径管理功能，支持搜索从源版本到目标版本的所有升级路径，并提供界面可视化升级路径图，帮助您规划合理的升级方案。如需使用，请单击"版本升级路径管理"跳转至"版本管理"页面，查询对应版本的升级路径。
       图9集中式版实例版本升级界面   
       ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013115.png "点击放大")
       
       ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
       每次升级可以根据实际情况选择进行单个AZ或者多个AZ升级。
       
    
    6. 在"实例管理"页面，查看版本升级情况。
       1. 升级过程中，实例运行状态为"实例版本升级中"。
       
       2. 升级完成后，实例运行状态变为"实例版本升级待观察"。
        
    
    7. 升级待观察方式下，待所有AZ都升级完成，且业务测试正常后，可以提交升级。 在"版本升级"界面，选择"目标版本"，输入"YES"，单击"提交升级"。
       如果选择逐个AZ进行升级，则一个AZ下发升级完成后，还需参考[2]\~[6]分别升级所有AZ，才可提交升级。
       
       
     
  
  
  **【方式二：批量实例版本升级】**
  1. 在页面左上角单击![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680013119.png)，选择"数据库 \> 云数据库 GaussDB"，进入云数据库 GaussDB信息页面。
  
  2. 在"实例管理"页面，选择指定的实例，单击"批量版本升级"。
     图10批量版本升级   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933444.png "点击放大")
     
     
  
  3. 在"批量版本升级"界面，单击"灰度升级"。
  
  4. 单击"升级待观察"。
  
  5. 选择目标版本，输入"YES"，单击"确定"，确认升级。
     图11灰度升级待观察   
     ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933466.png "点击放大")
     
     ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
     批量版本升级下，升级待观察方式默认升级实例的所有AZ或分片。
     
  
  6. 在"实例管理"页面，查看版本升级情况。
     - 升级过程中，实例运行状态为"实例版本升级中"。
     
     - 升级完成后，实例运行状态变为"实例版本升级待观察"。
      
  
  7. 升级待观察方式下，待所有分片或可用区分区都升级完成，且业务测试正常后，可以提交升级。 在"批量版本升级"界面，选择"目标版本"，输入"YES"，单击"提交升级"。
     
     
   
 #### 步骤三：升级后验证
升级完成后需要检查升级后的实例状态、备份创建、连接实例是否正常，能否进行正常的增加、删除、修改、查询操作。
1. 在"实例管理"页面，查看实例的运行状态是否为"正常"。
2. 在"实例管理"页面单击实例名称，进入基本信息页面，查看"配置信息"模块的"数据库引擎版本"是否已升级到目标版本。
3. 检查备份创建是否正常。升级完成后系统会进行一次自动备份，检查备份创建是否正常。
   1. 在"实例管理"页面，选择指定的实例，单击实例名称。
   
   2. 在左侧导航栏中选择"备份恢复"，查看备份是否创建，且备份状态是否为"备份完成"。
    
4. 检查实例连接是否正常，是否能进行正常的增加、删除、修改、查询操作。
   1. 参考[通过数据管理服务DAS连接实例](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_084.html)，登录到数据库。
   
   2. 进入SQL窗口页面。
      图12SQL窗口   
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933170.png "点击放大") 
   
   3. 创建数据库。 **CREATE DATABASE** *数据库名*;
      以创建一个库名为db_tpcds的数据库为例：
      **CREATE DATABASE** **db_tpcds**;
      创建完db_tpcds数据库后，可以在左上方切换到新创建的库中。
      图13切换数据库   
      ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773492.png) 
   
   4. 创建表，并进行增加、删除、修改、查询操作。
      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;
         
       
    
 
#### 回退操作
如果升级观察时，由于业务原因需要回退，或使用升级待观察方式升级失败时，可参考该章节手动执行升级回退操作。
![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- 升级回退成功后，您可以尝试重新升级。
- 若回退失败，您可以再次执行升级回退操作。
如果问题仍然无法解决，您可以在管理控制台右上角，选择[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)，联系华为云技术支持，由华为云工程师给出分析评估后重新执行升级。
- [方式一：单个实例回退]
  1. 在"版本升级"界面，单击"升级回退 "，选择"目标版本"，输入"YES"，单击"确定"。
  
  2. 在"实例管理"页面，查看回退情况。回退完成后，实例运行状态变为"正常"。
  
  3. 在"实例管理"页面单击实例名称，进入基本信息页面，查看"配置信息"模块的"数据库引擎版本"是否已回退到未升级前的版本。
  
  4. 检查实例连接是否正常，是否能进行正常的增加、删除、修改、查询操作。 
     1. 参考[通过数据管理服务DAS连接实例](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_084.html)，登录到数据库。
     
     2. 进入SQL窗口页面。
        图14SQL窗口   
        ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933170.png "点击放大") 
     
     3. 创建数据库。 **CREATE DATABASE** *数据库名*;
        以创建一个库名为db_tpcds的数据库为例：
        **CREATE DATABASE** **db_tpcds**;
        创建完db_tpcds数据库后，可以在左上方切换到新创建的库中。
        图15切换数据库   
        ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649773574.png) 
     
     4. 创建表，并进行增加、删除、修改、查询操作。
        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;
           
         
     
     
     
     
   
- [方式二：批量实例回退]
  1. 在"实例管理"页面，选择指定的实例，单击"批量版本升级"。
  
  2. 在"批量版本升级"界面，单击"升级回退"，选择"目标版本"，输入"YES"，单击"确定"。 
     
     
     
     
  
  3. 在"实例管理"页面，查看回退情况。回退完成后，实例运行状态变为"正常"。
  
  4. 在"实例管理"页面单击实例名称，进入基本信息页面，查看"配置信息"模块的"数据库引擎版本"是否已回退到未升级前的版本。
  
  5. 检查实例连接是否正常，是否能进行正常的增加、删除、修改、查询操作。 
     1. 参考[通过数据管理服务DAS连接实例](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_084.html)，登录到数据库。
     
     2. 进入SQL窗口页面。
        图16SQL窗口   
        ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933170.png "点击放大") 
     
     3. 创建数据库。 **CREATE DATABASE** *数据库名*;
        以创建一个库名为db_tpcds的数据库为例：
        **CREATE DATABASE** **db_tpcds**;
        创建完db_tpcds数据库后，可以在左上方切换到新创建的库中。
        图17切换数据库   
        ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002649933454.png) 
     
     4. 创建表，并进行增加、删除、修改、查询操作。
        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;
           
         
     
     
     
     
   
