# 升级RDS for MySQL内核小版本
#### 操作场景
云数据库 RDS for MySQL支持自动或手动升级内核小版本，内核小版本的升级涉及性能提升、新功能或问题修复等。
#### 查看数据库实例的内核版本
新创建的实例默认为最新小版本。华为云有新的内核小版本发布时，您可以在"实例管理"页面"数据库引擎版本"列看到内核小版本升级提示，单击"补丁升级"跳转到小版本升级页面。
图1升级   
![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002247141945.png "点击放大")
内核小版本功能详情请参见[华为云RDS for MySQL内核版本说明](https://support.huaweicloud.com/kerneldesc-rds-mysql/rds_02_0000.html)。
#### 升级方案
升级内核小版本可以分为以下两种升级方案：
- 对于单机或只读实例，采用原地升级的方案，会停止内核进程并进行升级。
- 对于主备实例，如果主备在同一个可用区，升级期间会进行一次主备倒换。先升级备机，然后进行主备倒换升级原主机。
- 对于主备实例，如果主备在不同的可用区，采用滚动升级的方式，期间会进行两次主备倒换。先升级备机，然后进行主备倒换升级原主机，最后再次主备倒换。
根据升级时间不同，升级内核小版本可以分为以下两种方式。
- 立即升级：您可以根据实际业务情况，在目标实例的"概览"页面手动[升级内核小版本]。
- 可维护时间段内升级：您可以在您设置的可维护时间段内进行升级，详情参见[设置可维护时间段](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0038.html)。
如果当前实例的内核版本存在已知潜在风险、重大缺陷，或者已过期、已下线，系统会通过短信、邮件等渠道进行提前通知，并在可维护时间段内下发升级任务。
#### 升级注意事项
表1升级注意事项 
| 阶段   | 注意事项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|
| 升级前   | - 当有对应的小版本更新时（定期同步开源社区问题、漏洞修复），请及时[手动立即升级]或者[设置可维护时间段]升级小版本。  - 升级数据库内核小版本会重启RDS for MySQL实例，服务可能会出现闪断，请您尽量在业务低峰期执行该操作，或确保您的应用有自动重连机制。  - 升级内核小版本期间，除了主备切换时的网络闪断外，由于主备之间默认是半同步复制，升级过程中会有两次单条SQL持续最长十秒的更新及写入等待，用户可通过修改主备间的复制模式为异步来规避此场景。  - 如果主备实例在同一个AZ，升级内核小版本会触发一次主备倒换；如果主备实例在不同AZ，则会触发两次主备倒换。  - 升级主实例小版本时，如有只读实例，也会同步升级只读实例的小版本，升级完成会重启实例，请您选择合适的时间升级（不支持单独升级只读实例的小版本）。  - 升级内核小版本时，如果RDS实例为DRS任务的源端，DRS可能会拉取不到RDS实例的日志；如果RDS实例为DRS任务的目标端，DRS可能会写不进目标库。 建议您在升级内核小版本前先确认RDS实例Binlog的保留时间： - 如果Binlog在保留时间内，待内核小版本升级完成后，DRS任务会自动重启。  - 如果Binlog不在保留时间内，您需要重新配置或创建DRS任务。     - 升级小版本前建议先做一次全量备份。  - 对于主备实例，复制延迟大于300秒无法升级小版本。  - 实例中存在异常节点，无法升级小版本。  - 云数据库RDS for MySQL暂不支持已开启事件定时器功能的实例升级内核小版本，若您想使用该功能，请先关闭事件定时器。具体操作请参考[开启或关闭事件定时器](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0101.html)。  - 在RDS for MySQL 8.0.28 以上的内核版本中，系统库information_schema中表的查询结果会使用utf8mb3替代utf8。Connector/Net在8.0.28之前的版本不支持utf8mb3，遇到utf8mb3时会报错：Character Set 'utf8mb3' is not supported by .Net Framework。如果应用程序使用了Connector/Net，请在升级RDS for MySQL内核版本前，先将Connector/Net升级到8.0.28或更高版本。详情请参见[MySQL 8.0.29 Character Set Support](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-29.html#mysqld-8-0-29-charset)和[Changes in MySQL Connector/NET 8.0.28](https://dev.mysql.com/doc/relnotes/connector-net/en/news-8-0-28.html)。   |
| 升级中 | - 升级内核小版本一般是分钟级完成。升级期间以下业务场景可能导致小版本升级时间较长，请您尽量避免在版本升级期间执行此类操作。 - 频繁访问performance_schema、mysql等系统库表。  - 频繁写入操作导致复制延迟、buffer_pool脏页率高。    - 小版本升级过程中禁止event的DDL操作，如create event、drop event和alter event。如果存在DDL操作，可参考[小版本升级时，界面提示主节点存在DDL操作该怎么处理？]处理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 升级后  | - 8.0.28及以上的内核版本，不支持设置TLSv1.1，可以通过参数["loose_tls_version"](https://support.huaweicloud.com/usermanual-rds-mysql/rds_configuration.html)修改TLS版本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 #### 升级内核小版本
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在"实例管理"页面，单击"补丁升级"。 
   图2补丁升级   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002701612202.png "点击放大")
   
   
4. 在弹出框中，设置以下升级配置项，单击"确定"。 
   - 升级方式：
     - 立即升级：系统会立即升级您的数据库内核版本到当前最新版本。
     
     - 可维护时间段内升级：系统会在您设置的可维护时间段内，升级您的数据库内核版本到当前最新版本。
      
   
   
   
   - 是否二次倒换保持主备可用区不变： 如果主备在不同的可用区，主备实例升级过程中，备机升级成功后，会触发主备倒换继续升级主机，主机升级完成后，若主备可用区不同则触发第二次倒换，保证可用区不变。
     
   
   
   图3升级小版本（主备在同一个可用区）   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002761882521.png "点击放大")
   图4升级小版本（主备在不同的可用区）   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002713561322.png "点击放大")
   
   
5. 返回实例列表，在左侧导航栏，选择"任务中心"，查看版本升级任务的执行进度。 
   - 对于升级方式为"立即升级"的任务： 在"即时任务"页签，搜索"MySQL实例版本升级"任务，查看执行进度。即时任务不支持取消。
     
   
   - 对于升级方式为"可维护时间段内升级"的任务： 在"定时任务"页签，搜索实例ID，查看该实例下版本升级的任务执行情况。
     如果任务为"待执行"状态，单击"取消"，取消执行该升级任务。
     
   
   
   更多操作，请参见[任务中心](https://support.huaweicloud.com/usermanual-rds-mysql/rds_task_0001.html)。
   
   
 
#### 常见问题
#### 如何查看RDS实例的版本号？
- 通过RDS实例管理页面，查看数据库实例的版本号。
  图5实例管理   
  ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002736507575.png "点击放大") 
- 通过DAS页面，查看数据库实例的版本号。
  1. 在DAS页面，登录目标实例。
  
  2. 在界面上方选择"SQL操作 \> SQL窗口"。
  
  3. 执行**select @@version;**语句，查看该实例的版本号。
   
 
#### 小版本升级时，界面提示主节点存在DDL操作该怎么处理？
- 方法一 将实例status为**SLAVESIDE_DISABLED** 状态的event，更改为**ENABLED** 或者**DISABLED**状态后再进行升级。具体步骤如下：
  1. 查询status为**SLAVESIDE_DISABLED** 的event。
     ```
     select * from information_schema.events where status='SLAVESIDE_DISABLED';
     ```
     
  
  2. 修改event状态为**ENABLED** 或者**DISABLED** 。
     - 激活
       ```
       ALTER EVENT event_name ENABLE;
       ```
       
     
     - 禁用
       ```
       ALTER EVENT event_name DISABLE;
       ```
       
      
   
- 方法二 删除**SLAVESIDE_DISABLED**状态的event后再进行升级。具体步骤如下：
  1. 关闭事件定时器，详见[开启或关闭事件定时器](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0101.html)。
  
  2. 修改event状态为**DISABLED** 。
     ```
     ALTER EVENT event_name DISABLE;
     ```
     
   
 
