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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 本场景介绍日常访问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


相关文章
|
17天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
44 6
|
24天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
|
1月前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
21 0
|
3天前
|
SQL 关系型数据库 MySQL
Spring_jdbc数据连接池(mysql实现增、删、改、查)
Spring_jdbc数据连接池(mysql实现增、删、改、查)
11 0
|
4天前
|
存储 数据可视化 关系型数据库
MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%🚀
本文探讨MySQL中时间类型的选择,阐述datetime、timestamp、整形时间戳等类型特点以及它们在千万级数据量下的查询性能
MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%🚀
|
8天前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据"瘦身";热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的"透视"工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
11天前
|
SQL 关系型数据库 MySQL
关系型数据库插入数据的语句
使用SQL的`INSERT INTO`语句向关系型数据库的`students`表插入数据。例如,插入一个`id`为1,`name`为'张三',`age`为20的记录:`INSERT INTO students (id, name, age) VALUES (1, '张三', 20)。如果`id`自增,则可简化为`INSERT INTO students (name, age) VALUES ('张三', 20)`。
14 2
|
11天前
|
SQL 存储 Oracle
关系型数据库查询数据的语句
本文介绍了关系型数据库中的基本SQL查询语句,包括选择所有或特定列、带条件查询、排序、分组、过滤分组、表连接、限制记录数及子查询。SQL还支持窗口函数、存储过程等高级功能,是高效管理数据库的关键。建议深入学习SQL及相应数据库系统文档。
9 2
|
15天前
|
人工智能 安全 数据处理
首次全国数据工作会议召开,数据管理体制建设迈上新台阶
首次全国数据工作会议召开,数据管理体制建设迈上新台阶
24 1
|
17天前
|
人工智能 Cloud Native 算法
数据之势丨AI时代,云原生数据库的最新发展趋势与进展
AI与云数据库的深度结合是数据库发展的必然趋势,基于AI能力的加持,云数据库未来可以实现更快速的查询和决策,帮助企业更好地利用海量数据进行业务创新和决策优化。
数据之势丨AI时代,云原生数据库的最新发展趋势与进展

相关产品

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