
# 实时灾备常见异常场景示例
由于一些不可控原因，实时灾备在同时操作双边数据时，存在一定的数据不一致的可能性，本章节主要介绍常见的数据异常场景。以下场景均以dr1、dr2库进行示例。
#### 场景一：双主灾备，双边同时操作同一行操作，导致多数据
- 初始数据如下图所示（seqno为主键，column1为非主键）。
  图1dr1、dr2库初始数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001189743796.png "点击放大") 

- 双方数据库同时分别执行如下操作：
  - dr1库：update dr1 set seqno=5 where column1=8;
  
  - dr2库：update dr2 set seqno=6 where column1=8;
   

- 执行操作后，双方数据库数据一致，并且多数据。
  图2dr1、dr2库数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001235143775.png "点击放大") 
 
#### 场景二：双主灾备，同时操作双边数据库，导致数据不一致
- 初始数据如下图所示（seqno为主键，column1为非主键）。
  图3初始数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001190463776.png "点击放大") 
- 双方数据库同时分别执行如下操作：
  - dr1库：insert into dr1 values(101,100);
  
  - dr2库：insert into dr2 values(101,102);
   
- 执行操作后，双方数据库数据如下图所示。
  图4dr1库数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001190783768.png "点击放大")
  图5dr2库数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001235863761.png "点击放大") 
 
#### 场景三：双主灾备，业务期执行DDL操作，导致数据不一致
- 双方数据库同时分别执行如下操作：
  - dr1库：truncate table dr1;
  
  - dr2库：insert into dr2 values(5,5,5);
   
- 执行操作后，双方数据不一致，如下图所示。
  图6dr1库数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001235623751.png "点击放大")
  图7dr2库数据   
  ![](https://support.huaweicloud.com/drs_faq/figure/zh-cn_image_0000001234823787.png "点击放大")
  **更多场景，持续补充中。**
  
 
