
# TaurusDB异构容灾实例
#### 操作场景
TaurusDB支持异构容灾实例（MySQL节点），支持在极端场景，如社区未知BUG、用户误操作（大事务回滚）导致服务无法正常提供服务等场景，可以快速将服务切换到异构容灾实例继续提供服务。
异构容灾实例无需用户做任何操作，容灾建设和维护，切换都由华为云完成。
#### 容灾切换原理
图1异构容灾原理图   
![](https://support.huaweicloud.com/usermanual-taurusdb/figure/zh-cn_image_0000002541380420.png "点击放大")
**正常场景** **：**
在正常运行状态下，业务系统通过读写内网地址连接到源实例TaurusDB，进行数据的读写操作。同时，通过DRS（Data Replication Service）同步链路，将源实例TaurusDB的数据实时同步到容灾实例RDS for MySQL，确保数据的一致性和高可用性。此时，容灾实例RDS for MySQL处于只读状态。
**切换后场景** **：**
当源实例TaurusDB遇到极端场景无法恢复时，经过客户授权后台人工切换读写内网地址到容灾实例，业务系统将在容灾实例RDS for MySQL进行数据的读写操作。此时，容灾实例RDS for MySQL处于读写状态，业务系统直接连接到该实例进行数据操作。同时，通过DRS反向同步链路，将容灾实例RDS for MySQL的数据同步回源实例TaurusDB，确保数据的一致性。此时，源实例TaurusDB处于只读状态。
![](https://support.huaweicloud.com/usermanual-taurusdb/public_sys-resources/note_3.0-zh-cn.png)
数据迁移包含两个阶段，全量迁移和增量迁移。
全量迁移在只读节点拉取数据，会增加只读节点少量IO，对主节点不会造成压力。
增量期间在主节点拉取Binlog，对主节点的性能消耗在3%以内。
#### 容灾切换流程
1. 如果您的源实例TaurusDB异常，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系客服人员，确认实例长时间无法提供服务。
2. 华为云客服人员通知您并告知切换影响，请您根据实际情况进行书面授权。
3. 华为云客服人员执行容灾切换操作，将所有IP与容灾实例进行交换，并自动搭建DRS反向同步链路，由容灾实例RDS for MySQL对外提供服务，源实例TaurusDB则被设置为只读状态。
4. 后续源实例TaurusDB恢复正常后，您可评估影响选择是否进行回切。如需回切，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)联系客服人员操作。
 
#### 约束限制
- 存在以下场景则无法创建异构容灾实例
  表1限制条件 
  | 限制场景                | 原因                          |
  |:---|:---|
  | 未开启Binlog           | 原实例和容灾实例之间需要使用Binlog实时同步数据。 |
  | Binlog格式不是row       | 可能导致容灾链路中断。                 |
  | 存在触发器               | 可能导致原实例和容灾实例之间数据不一致。        |
  | 存在事件                | 可能导致原实例和容灾实例之间数据不一致。        |
  | 库名、表名、字段名、索引等存在特殊字符 | 可能导致容灾链路中断。                 |
  | 数据量过大（超过32TB）       | 容灾实例的容量存在上限。                |
  | 安全组限制               | 容灾链路无法连接数据库以同步数据。           |
  | 冻结状态                | 冻结状态无法创建容灾实例。               |
  | VPC子网IP不足           | 容灾实例也会占用同子网IP。              |
  | 无主键表或无索引表且存在大量操作    | 可能导致容灾链路中断。                 |
  | 外键级联操作              | 可能导致原实例和容灾实例之间数据不一致。        |
     
  
- 切换到容灾实例的影响
  表2切换影响 
  | 场景                     | 原因                                                                  |
  |:---|:---|
  | 原实例只读流量过高时可能将CPU打满     | 容灾实例RDS for MySQL为单节点实例，原实例所有流量进入主节点会占用更多的CPU资源。                    |
  | 下游以Binlog位点方式的同步链路可能异常 | 容灾实例和源实例的Binlog位点不一样，以位点方式的同步链路在切换容灾后可能异常，需要重新配置Binlog位点或者重新进行全量同步。 |
     
  
 
#### 常见问题
- 切换容灾实例在控制台可以操作吗？ 切换容灾实例风险高，必须由客户授权，华为云客服人员进行操作。
  
- 容灾实例支持的最大容量是多少？ 当前RDS for MySQL最大支持容量是32TB。
  
- 规格变更后，对应容灾资源的规格会同步变吗？ 不会，规格变更不会联动容灾实例。
  
- 容灾实例是否收费？ 容灾实例目前不收费。
  
- Proxy流量会自动切换到容灾实例RDS for MySQL吗？ 是的，Proxy流量会自动切换到容灾实例上。
  
- 容灾实例可以关闭吗？ 开启容灾实例后不支持关闭。为保证您业务的可靠性，我们不建议您关闭容灾实例。
  
 
