PolarDB MySQL通过DMS恢复误操作数据

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 本场景介绍日常访问PolarDB MySQL数据库时,由于操作导致数据不符合预期,需要将数据快速恢复到正常状态。误操作受影响的数据量在10万以内时,可使用DMS数据追踪的方式恢复数据。

PolarDB MySQL通过DMS恢复误操作数据


1. 创建模拟数据及模拟误操作

在PolarDB MySQL集群中,创建数据库。

在数据库中插入一个表进行体验。例如,执行如下语句,创建一个名为students的表。

CREATE TABLE students (
    id          INT4,
    name       VARCHAR(10),
    grade       INT4,
    class        INT4
 );

在表中插入基础数据,例如:

INSERT INTO students(id,name,grade,class) 
values
(1,'Nick',5,4),(2,'Joy',4,3),(3,'Lucy',3,2),(4,'Lulu',6,1),(5,'Merry',2,4),(6,'Jason',1,5);

模拟误删除操作。

1)在DMS中登录集群。2)覆盖某条或者某些数据。例如,执行如下语句,假设您通过以下语句误覆盖了students表中的某条数据。

UPDATE students SET name='Tom',grade=6,class=1 WHERE id=2;

2. 查找需回滚记录,生成回滚脚本

首先,您需要在DMS控制台提交数据追踪工单申请,审批通过后,根据解析出的日志,选择需要回滚的变更记录,并生成回滚脚本。

在DMS控制台页面顶部,选择全部功能 > 数据方案 > 数据追踪。

在页面右上角,单击+数据追踪。

在数据追踪工单申请页面,根据下表填写工单申请。


参数名

说明

任务名称

便于后续检索,并提供给审批人员清晰的操作意图。例如,可输入“误操作恢复”。

库名

误操作对象的数据库名。

表名

误操作对象的表名

追踪类型

支持多选,可按需勾选检索的操作。 

此案例明确知道是Delete操作造成的误操作,因此可仅勾选删除。

时间范围

按默认选择即可。

单击提交申请,系统将获取日志文件。

获取日志文件后,系统会进入审批环节。

等待审批通过。

说明 数据追踪的默认安全审批规则为:数据库对应的DBA进行审批。

审批通过后,系统会进行日志下载、日志解析等操作。

待解析完成后,您可以勾选需要回滚的变更记录,单击导出回滚脚本即可。

3. 执行回滚

导出回滚脚本后,您可以提交普通数据变更工单,将此回滚脚本作为附件上传至工单中,执行至目标数据库中。

在DMS控制台页面顶部,选择全部功能 > 数据方案 > 普通数据变更。

可参考下表填写数据变更工单申请,并单击提交申请。

参数名

说明

数据库

要恢复的数据库名称。

影响行数

预估本次更新会影响的数据行数,可在SQLConsole以count统计。

本案例中影响行数为1。

变更SQL

选择附件,并将步骤二中生成的脚本上传至附件。

工单提交后,系统会进行内容合法性检查。

当检查通过后,需要您提交审批,审批通过后,就会生成执行任务。

说明 目前数据变更的默认安全审批规则为:数据库对应的DBA进行审批。

单击执行变更。

4. 验证数据

当数据恢复完成后,您可以通过DMS登录集群,进行数据比对,验证数据。

在PolarDB控制台进入集群的基本信息页面。在右上角单击登录数据库。

登录DMS后,在左侧导航栏中,单击已登录实例。

在已登录实例列表中,单击目标集群名称,找到并双击目标数据库名称,即可切换到目标数据库进行管理。


打开目标表,查找到误操作的数据,确认其是否已恢复到误操作前,且其他数据也和误操作发生前一致。

实验链接:https://developer.aliyun.com/adc/scenario/01529a7b5a764c03b80f1c1652279a9d


相关文章
|
26天前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
148 0
|
1月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
47 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
8天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
114 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
8天前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
42 14
|
11天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
43 9
|
16天前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
23天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
19天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
38 1
|
20天前
|
SQL 关系型数据库 MySQL
mysql数据误删后的数据回滚
【11月更文挑战第1天】本文介绍了四种恢复误删数据的方法:1. 使用事务回滚,通过 `pymysql` 库在 Python 中实现;2. 使用备份恢复,通过 `mysqldump` 命令备份和恢复数据;3. 使用二进制日志恢复,通过 `mysqlbinlog` 工具恢复特定位置的事件;4. 使用延迟复制从副本恢复,通过停止和重启从库复制来恢复数据。每种方法都有详细的步骤和示例代码。
|
30天前
|
存储 人工智能 安全
【荣誉奖项】荣获2024数据治理优秀产品!瓴羊Dataphin联合DAMA发布数据管理技能认证
瓴羊Dataphin连续俩年获得DAMA年度优秀数据治理产品奖,本次与DAMA联合发布“DAMA x 瓴羊 数据管理技能认证”,助力提升全民数据素养。
137 0
【荣誉奖项】荣获2024数据治理优秀产品!瓴羊Dataphin联合DAMA发布数据管理技能认证

相关产品

  • 云数据库 RDS MySQL 版
  • 云原生数据库 PolarDB