更新时间:2020-08-13 09:44
PolarDB-X SQL闪回针对SQL误操作,提供行级数据的恢复能力。
当您在PolarDB-X上执行误操作SQL(如INSERT、UPDATE或DELETE) 后,使用SQL闪回,提供相关的误操作SQL信息,即可从BINLOG中找到匹配的事件,生成对应的恢复文件,下载后根据需求恢复数据。
SQL闪回针对误操作SQL,支持模糊匹配与精确匹配两种丢失数据的定位策略,以及自动选择匹配策略的能力,请请参见精确匹配与模糊匹配。
面向不同的使用场景,SQL闪回提供回滚SQL与原始SQL两种方式来恢复数据。
如果您之前未使用过SQL闪回功能,可以任选一条样例SQL,按照下文的操作步骤试用,观察生成的恢复文件,有助于更好地理解SQL闪回。
按照操作提示,填写误操作SQL的基本信息,包括数据库、误操作SQL执行的时间范围、表名、TRACE_ID,SQL类型。关于如何获取误操作SQL的相关信息,请参见定位误操作SQL。
参数说明:
SQL执行时间范围:误操作SQL执行的大致时间范围,开始时间早于误操作SQL开始执行时间,结束时间晚于误操作SQL执行结束时间。为了保证恢复的效率,建议时间范围尽可能精确,限定在5分钟范围内。
TRACE_ID:PolarDB-X会为每条执行的SQL分配唯一的TRACE_ID,误操作SQL的TRACE_ID值可以通过PolarDB-X SQL审计获取。
单击预检按钮,检查提供的时间范围内,RDS BINLOG 是否存在,如上图中2所示。
选择恢复方式,支持选择回滚SQL和原始SQL,如下图所示。关于恢复方式的选择,详情请参见回滚SQL与原始SQL。
单击生成SQL按钮,即可生成SQL闪回任务。SQL闪回页面会展示当前实例运行的SQL闪回任务状态。
SQL闪回任务完成后,会显示该任务是否是精确匹配,实际恢复的数据行数等信息。 您可以单击下载按钮下载对应的恢复文件,进行数据恢复。
恢复文件默认保存7天,请尽快下载。
单击SQL闪回页面的SQL审计与分析链接,前往SQL审计与分析页面。如果您未开启SQL审计,请使用SQL审计的导入历史数据功能,最多支持导入7天内的历史SQL记录,详情请参见开启SQL日志审计。
使用SQL审计与分析,定位误操作SQL的审计记录。关于如何快速定位误操作SQL,请参见SQL日志分析。
sql_time
、table_name
、sql_type
和trace_id
字段。前提条件:您的PolarDB-X实例版本需为5.3.4-15378085及以上,如果低于该版本,建议升级后开启。
SQL闪回根据您提供的误操作SQL信息,在RDS BINLOG 中查找对应的匹配事件,反向生成对应的恢复SQL。受实例版本,参数设置的影响,SQL闪回支持两种BINLOG事件的匹配策略:精确匹配与模糊匹配。具体的匹配策略无需选择,PolarDB-X SQL闪回会自动检测,选择最优的匹配策略,并在闪回任务结束后通知您。
针对误操作SQL,在RDS BINLOG 中精确匹配出该SQL误操作的事件,生成恢复文件。
优点:恢复文件中仅包含误操作SQL误删(误改)的数据,可直接使用,保证数据恢复的精准性与效率。
缺点:需要满足以下的条件:
注:SQL闪回精确匹配开关对于5.3.4-15378085版本及以上的新建数据库默认开启,低版本实例建议升级后手动开启,详情请参见开启精确匹配开关。
针对误操作SQL的相关信息(执行时间范围、操作表名、SQL类型等),在RDS BINLOG中匹配满足条件的事件,生成对应的恢复文件
优点:不依赖实例版本、参数设置等,所有实例都支持。
缺点:无法精准匹配误删(误改)的数据,恢复文件中包含其它业务SQL改动的数据,需要您从中筛选出所需数据。
为了支持不同的业务场景,PolarDB-X SQL闪回提供生成回滚SQL与生成原始SQL两种恢复方式,您在生成恢复SQL文件前,需要根据使用场景,选择对应的恢复方式。
下图给出了SQL闪回针对一条误操作,生成的回滚SQL与原始SQL示例。
逆序遍历BINLOG中的匹配事件,对INSERT、UPDATE、DELETE事件进行逆反操作,生成的SQL。
使用方式:在原表执行,对现有数据进行覆盖性恢复。
适用场景:当需要恢复的数据没有冲突或者接受部分冲突数据被覆盖,建议生成回滚SQL。
顺序遍历BINLOG中的匹配事件,对INSERT、UPDATE、DELETE事件进行全记录的镜像构造处理,生成的SQL。
使用方式:在临时表执行,写入误操作前的原始数据,与现有数据进行对比,分析冲突后决定最终数据。
适用场景:当需要恢复的数据与当前数据存在冲突时,建议生成原始SQL。
在文档使用中是否遇到以下问题
更多建议
匿名提交