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