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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本场景介绍日常访问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


相关文章
|
1月前
|
人工智能 关系型数据库 分布式数据库
拥抱Data+AI|“全球第一”雅迪如何实现智能营销?DMS+PolarDB注入数据新活力
针对雅迪“云销通App”的需求与痛点,本文将介绍阿里云瑶池数据库DMS+PolarDB for AI提供的一站式Data+AI解决方案,助力销售人员高效用数,全面提升销售管理效率。
|
12天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
45 6
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
149 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
24天前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
29天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
67 14
|
1月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
65 9
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
1月前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
52 1
|
1月前
|
SQL 关系型数据库 MySQL
mysql数据误删后的数据回滚
【11月更文挑战第1天】本文介绍了四种恢复误删数据的方法:1. 使用事务回滚,通过 `pymysql` 库在 Python 中实现;2. 使用备份恢复,通过 `mysqldump` 命令备份和恢复数据;3. 使用二进制日志恢复,通过 `mysqlbinlog` 工具恢复特定位置的事件;4. 使用延迟复制从副本恢复,通过停止和重启从库复制来恢复数据。每种方法都有详细的步骤和示例代码。
337 2

相关产品

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