
# 使用Binlog解析功能恢复数据
#### 使用场景
当您在数据库中，误操作了某一条DML语句时，利用Binlog解析去恢复数据是高效且重要的手段。您可以通过DAS提供的Binlog解析功能，提取其中记录的DML语句相关事件，并按照事件发生的顺序，按需执行生成的回滚语句。
#### 前提条件
- 已创建RDS for MySQL实例。
- 实例Binlog功能已开启。
 
#### 操作步骤
1. 创建预置数据。 
   1. 在目标RDS for MySQL实例中创建名为test的测试数据库，详情请参见[创建数据库](https://support.huaweicloud.com/usermanual-rds-mysql/rds_05_0019.html)。
   
   2. 通过数据管理服务DAS登录RDS for MySQL数据库，详情请参见[登录华为云数据库实例](https://support.huaweicloud.com/usermanual-das/das_01_2100.html)。
   
   3. 在DAS的SQL查询执行如下命令，在数据库test中创建测试表shopping。 **CREATE TABLE** *shopping* **(**
      *a* **int** *NOT NULL AUTO_INCREMENT* **,**
      *b* **int,**
      *c* **int,**
      **PRIMARY KEY** *(a)* **,**
      **UNIQUE KEY** *u_k (b, c)* 
      **);**
      
   
   4. 执行如下命令，在测试表shopping中写入测试数据。 **insert into** *shopping(b,c)* **values** (1,1),(2,5),(3,9),(4,6)**;**
      
   
   5. 执行如下命令将shopping表中，"b"字段值全部改为10。 **update** *shopping* **set** *b* = *10* **;**
      
   
   
   
   
2. 利用Binlog解析功能获取某一时间段内的所有操作记录。 
   1. [登录DAS管理控制台](https://console.huaweicloud.com/das/#/das/overview)。
   
   2. 单击管理控制台左上角的![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002300811101.png)，选择区域和项目。
   
   3. 在左侧的导航栏中单击"DBA智能运维 \> 实例列表"页签，进入DBA智能运维实例列表页面。 您也可以在产品概览页面，单击"进入DBA智能运维"，进入DBA智能运维实例列表页面。
      
   
   4. 在实例列表页面右上角，按照引擎、实例名称或者实例IP筛选实例，单击"详情"，进入实例总览页面。
      图1DBA智能运维实例总览页面   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002300724201.png) 
   
   5. 单击"binlog"进入归档日志页面。
      图2归档日志   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002266118298.png) 
   
   6. 根据文件名的后半段"20250508023514000"可以确认该文件的执行时间为UTC时间的2025年5月8日02点35分之前，符合上述update语句执行时间。
   
   7. 单击"解析日志"，等待解析完成。
   
   8. 单击"查看日志详细内容"，进入SQL操作记录浏览页面。在该页面，您可以按照自己需要恢复数据的表、库名和操作类型进行筛选，此处筛选shopping表，update操作。
      图3查看日志详细内容   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002300716321.png) 
   
   9. 单击"查看数据"，确认操作是否为上述update语句。
      图4查看数据   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002266226604.png) 
   
   
   
   
3. 针对解析后的结果获取SQL回滚语句。 
   1. 利用Binlog解析功能获取某一时间段内的所有操作记录，获取到筛选结果后，单击"导出"按钮，选择对应OBS桶导出。
   
   2. 单击"查看导出列表"，获取最近导出的记录信息。
   
   3. 选择文件名一致，且导出条数与搜索结果一致的记录，单击"下载"。
   
   4. 打开下载后的文件，找到"事件回滚SQL"列，获取SQL回滚语句。
      图5事件回滚SQL   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002266129290.png) 
   
   5. 登录开发工具，或使用其他数据库链接工具，执行回滚语句，即可回滚Update操作。
      图6执行回滚   
      ![](https://support.huaweicloud.com/bestpractice-das/zh-cn_image_0000002300722597.png) 
   
   
   
   
 
