
# 技术原理
#### 技术架构
图1滚动升级技术架构   
![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/figure/zh-cn_image_0000002620720497.png "点击放大")
图2滚动升级指定--auto_script参数自动生成脚本技术架构   
![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/figure/zh-cn_image_0000002590360910.png "点击放大")
数据库升级体系向上对接数据库运维管理平台，通过标准化升级接口及专用工具gs_upgradectl对接DN和gsql，最终依托升级脚本完成数据库升级。
指定auto_script参数升级脚本在切换二进制之后自动生成，小版本升级也会生成脚本并执行。该参数为内部升级方式过度使用参数，故未对数据库运维管理平台开放使用。
为最小化二进制切换对节点业务的影响，采用分阶段的二进制切换策略：
1. 首先切换进程管理组件om_monitor和cm_agent。
2. 其次切换不影响业务的集群管理组件cm_server和ETCD。
3. 最后切换业务影响组件DN、CN和GTM。
对于实例切换，不同实例采用不同的滚动方式：
- 一主多备实例：备机优先切换后执行主机切换。
- 具体滚动升级方式如下：
  - CN：多轮升级，每轮单节点切换。
  
  - GTM/CMS：两轮升级。首轮批量升级所有备机，次轮执行主机升级。
  
  - DN/ETCD：多轮升级。先升级少数派节点，再升级剩余少数派节点，最后升级主节点。具体策略：初始轮次升级两个节点（各一个）；当节点总数为奇数时，升级(n/2)个节点；为偶数时，升级(n/2 -1)个节点。
   
 
#### 性能指标
1. 单分片升级业务中断时长≤10秒。
2. 升级最后一个分片时会中断业务2 \~ 3次。
3. 部署形态3C1D，升级路径版本相差不超过2个C版本。
4. 全节点升级时效：业务空载，集群状态、网络及硬件条件无异常时，一次性升级全部节点时集群默认数据库数量升级总时长在20min内。
 
