# RDS for MySQL蓝绿部署
#### 什么是蓝绿部署？
蓝绿部署是一种通过冗余部署实现服务版本升级的策略，其基于现有的生产环境（蓝色环境）复制出一套实时同步的测试环境（绿色环境），以用于测试与灰度验证。通过调整虚拟IP与真实节点之间的映射关系，实现生产环境与测试环境的快速切换，应用侧无需改造，最大限度地减少服务中断时间，并提供回滚的能力。
您可以将RDS for MySQL低版本实例作为蓝色实例，选择目标高内核版本创建一个新的绿色实例，绿色实例与蓝色实例通过原生Binlog复制同步数据。蓝绿部署完成后支持主动下发蓝绿切换操作，将业务流量切到绿色实例，测试观察业务运行在高版本实例是否有兼容性问题。如果遇到兼容性问题，支持蓝绿回滚操作，将业务流量切回蓝色实例。
#### 部署方案
- 提交蓝绿部署任务后，首先会基于低版本蓝色实例恢复一个高版本绿色实例，并搭建两个实例之间的复制关系，等待绿色实例追齐蓝色实例的数据，然后创建DRS同步任务，用于后续回滚场景。
- 提交蓝绿切换任务后，等待蓝绿数据一致，触发VIP切换，将读写请求切换到绿色高版本实例，然后启动DRS同步任务，完成切换流程。
- 提交蓝绿回滚任务后，等待DRS同步任务追平数据，触发VIP切换，将读写请求切换到蓝色低版本实例，完成回滚流程。
 
#### 使用须知
表1使用须知 
| 阶段                                                                              | 注意事项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 功能限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| [阶段一：创建蓝绿部署]    | - RDS蓝绿部署需要进行数据同步，请您耐心等待。  - 创建蓝绿部署过程中，蓝色环境可以正常被访问，但蓝色实例上进行的变配等运维管理操作入口会被屏蔽。  - 蓝色实例费用：创建蓝绿部署时，会指定一个存量实例作为蓝色实例（生产环境实例），该实例正常计费（与蓝绿部署前保持一致）。  - 绿色实例费用：创建蓝绿部署时，会新建一个绿色实例，该实例正常按需计费。   | - 如需使用蓝绿部署功能，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)申请。  - 支持内核小版本蓝绿升级和内核大版本蓝绿升级（不支持跨内核大版本）。  - 一个蓝色实例仅支持创建一个蓝绿部署关系，如果需要更换目标版本，请先[删除蓝绿部署关系]。  - 不支持带有高可用只读的实例进行蓝绿部署。  - 不支持已开启代理的实例进行蓝绿部署。  - 不支持已绑定DDM的实例进行蓝绿部署。  - 不支持开启TDE的实例进行蓝绿部署。  - 不支持开启SSL的实例进行蓝绿部署。  - 不支持集群版实例进行蓝绿部署。  - 不支持本地盘存储类型的5.7实例进行蓝绿部署。  - 8.0版本蓝色实例升级到8.4版本时的限制： - log_bin_use_v1_row_events参数需要修改为OFF才能进行蓝绿部署。  - **8.0版本蓝色实例若存在外键，外键必须引用完整的唯一键（主键或唯一索引），否则无法进行蓝绿部署回滚** **。**    - 对于主备实例，复制延迟大于300秒无法进行蓝绿部署。  - 实例中存在异常节点，无法进行蓝绿部署。  - 其他升级约束详见内核小版本和内核大版本升级约束： - [升级RDS for MySQL内核小版本](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0003.html)  - [RDS for MySQL 5.7版本升级到8.0](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0004.html)  - [RDS for MySQL 5.6版本升级到5.7](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0075.html)     |
| 阶段二：蓝绿部署完成                                                                       | 蓝绿部署关系维持阶段，蓝色和绿色实例上的相关变更等运维管理操作入口会被屏蔽。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 蓝绿部署完成后，DRS同步任务默认保留3天。建议在3天内执行蓝绿部署切换进行业务兼容性验证。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [阶段三：切换蓝绿部署]    | - 蓝绿部署切换完成后，数据VIP切换到绿色实例，新的业务请求将访问绿色实例。  - 蓝绿部署切换时，蓝色实例和绿色实例均会出现30秒左右的闪断，请确保应用具备重连机制，尽量在业务低峰期执行操作。                                                                                                                                                                                                                                                                                                                                          | - 蓝色实例同绿色实例之间的复制延迟大于300秒时，无法下发蓝绿部署切换。  - 蓝色实例、绿色实例（含只读实例）若存在异常节点，均无法下发蓝绿部署切换。  - 切换后DRS数据同步期间执行DDL操作的限制：切换完成后，在高版本的绿色实例上不建议执行DDL操作（如创建表、修改表结构、删除表、创建或删除索引等）。例如跨大版本场景下，DDL可能因字符集、排序规则或语法不兼容等导致同步异常，由此可能产生数据差异，建议切换前自行确认业务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| [阶段四：回滚蓝绿部署]   | - 蓝绿部署回滚完成后，数据VIP切换到蓝色实例，新的业务请求将访问蓝色实例。  - 蓝绿部署回滚时，蓝色实例和绿色实例均会出现60秒左右的闪断，请确保应用具备重连机制，尽量在业务低峰期执行操作。                                                                                                                                                                                                                                                                                                                                  | - 绿色实例同蓝色实例之间的DRS同步任务状态异常时，无法下发蓝绿部署回滚。  - 蓝色实例（含只读实例）若存在异常节点，无法下发蓝绿部署回滚。  - 回滚阶段需等待DRS同步任务将数据追齐，不建议业务高峰期进行回滚操作。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [阶段五：删除蓝绿部署关系] | 支持仅删除蓝绿部署关系，绿色实例作为单独的按需实例保留，蓝色实例保持不变。 - 蓝绿创建完成后：支持同时删除蓝绿部署关系和绿色实例，绿色实例将被释放。  - 蓝绿部署切换完成后：支持同时删除蓝色部署关系和蓝色实例，此时业务在绿色实例上，原蓝色实例将被释放，请确认后再删除。  - 蓝绿部署回滚完成后：支持同时删除蓝色部署关系和绿色实例，绿色实例将被释放。                                                                       | 删除蓝绿部署关系后，蓝色实例和绿色实例就是两个单独的实例，不再支持蓝绿切换和回滚，请确认后再删除。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 操作步骤
#### 步骤1：创建蓝绿部署
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在"实例管理"页面，单击主实例名称。
4. 在左侧导航栏，选择"蓝绿部署"。
5. 右侧单击"创建蓝绿部署"。
6. 在创建页面，指定当前实例作为蓝色实例（生产环境实例），同时会新建一个绿色实例（测试环境实例）。 
   图1创建蓝绿部署   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002812933839.png "点击放大")
   
   
7. 确认部署版本信息后，单击"立即购买"，会基于现有的蓝色实例复制出一个实时同步的绿色实例。
8. 绿色实例创建完成后，可以看到实例状态为"蓝绿部署中"。 
   图2蓝绿部署中   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002783534396.png "点击放大")
   
   
 
#### 步骤2：切换蓝绿部署
绿色环境中测试完毕后，执行当前步骤将绿色环境一键切换为蓝色环境。
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在"实例管理"页面，单击蓝色环境主实例名称。
4. 在左侧导航栏，选择"蓝绿部署"。
5. 右侧单击"切换"。 
   图3蓝绿部署   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002812813945.png "点击放大")
   
   
6. 在弹框中，确认切换实例的版本信息，选择切换时间，单击"确定"。 
   图4切换为蓝色环境   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002783694338.png "点击放大")
   - 立即变更：提交后会立即开始执行变更操作。
   
   - 可维护时间段变更：选择可维护时间段变更，建议将变更时间段设置在业务低峰期。
   
   
   
   
 
#### 步骤3：回滚蓝绿部署
蓝绿切换完毕后，如果新版本的蓝色环境实例出现问题，支持切换回旧版本。
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 在"实例管理"页面，单击蓝色环境主实例名称。
4. 在左侧导航栏，选择"蓝绿部署"。
5. 右侧单击"回滚"。 
   图5蓝绿部署   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002812933841.png "点击放大")
   
   
6. 在弹框中，确认回滚实例的版本信息，选择切换时间，单击"确定"。 
   图6回滚实例   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002783534398.png "点击放大")
   - 立即变更：提交后会立即开始执行变更操作。
   
   - 可维护时间段变更：选择可维护时间段变更，建议将变更时间段设置在业务低峰期。
   
   
   
   
7. 修复新版本问题后，可重新部署到绿色环境中，验证通过后，再次切换蓝色环境和绿色环境。
 
#### 步骤4：删除蓝绿部署关系
1. [登录RDS管理控制台](https://console.huaweicloud.com/rds/#/rds/management/list)。
2. 单击管理控制台左上角的![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002593882307.png)，选择区域。
3. 单击蓝色环境实例名称，在蓝绿部署页面，单击"删除"。
4. 在弹框中，选择仅删除蓝绿部署关系，或选择同时删除蓝绿部署关系与蓝/绿色实例，单击"确定"。 
   图7蓝绿切换前删除蓝绿部署   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002812813947.png "点击放大")
   图8蓝绿切换后删除蓝绿部署   
   ![](https://support.huaweicloud.com/usermanual-rds-mysql/zh-cn_image_0000002783694340.png "点击放大")
   - 仅删除蓝绿部署关系后，蓝色实例和绿色实例均可正常使用。绿色实例会变为常规实例，支持读写，计费方式依旧为按量计费，支持转换为包年包月实例。
   
   - 蓝绿切换前，支持同时删除蓝绿部署关系和绿色实例，绿色实例会被释放，蓝色实例不受影响，可正常使用。
   
   - 蓝绿切换后，支持同时删除蓝绿部署关系和蓝色实例，蓝色实例会被释放，绿色实例不受影响，可正常使用。
   
   
   
   
 
