PolarDB-X 1.0-用户指南-数据恢复表-SQL闪回

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 背景介绍PolarDB-X SQL闪回针对SQL误操作,提供行级数据的恢复能力。当您在PolarDB-X上执行误操作SQL(如INSERT、UPDATE或DELETE) 后,使用SQL闪回,提供相关的误操作SQL信息,即可从BINLOG中找到匹配的事件,生成对应的恢复文件,下载后根据需求恢复数据。SQL闪回针对误操作SQL,支持模糊匹配与精确匹配两种丢失数据的定位策略,以及自动选择匹配策略的能力,请参见名词解释。面向不同的使用场景,SQL闪回提供回滚SQL与原始SQL两种方式来恢复数据。

背景介绍

PolarDB-X SQL闪回针对SQL误操作,提供行级数据的恢复能力。

当您在PolarDB-X上执行误操作SQL(如INSERT、UPDATE或DELETE) 后,使用SQL闪回,提供相关的误操作SQL信息,即可从BINLOG中找到匹配的事件,生成对应的恢复文件,下载后根据需求恢复数据。

SQL闪回针对误操作SQL,支持模糊匹配与精确匹配两种丢失数据的定位策略,以及自动选择匹配策略的能力,请参见名词解释

面向不同的使用场景,SQL闪回提供回滚SQL与原始SQL两种方式来恢复数据。

功能优势

  • 操作简单:轻松配置,填写少量误操作SQL信息,即可助您找回丢失的数据。
  • 快速轻量:不依赖RDS的备份策略,只需在误操作SQL执行前开启RDS日志备份即可快速恢复误操作数据。
  • 灵活的恢复方式:针对不同的场景,提供回滚SQL与原始SQL两种能力,恢复方式灵活多样。
  • SQL级精确匹配能力:SQL级的误操作数据精确匹配能力,提高数据恢复的精准性。

限制与说明

  • SQL闪回依赖RDS BINLOG保存时间,请开启RDS日志备份。RDS BINLOG存在保存时限,误操作数据后请尽快使用SQL闪回生成恢复文件。
  • SQL闪回生成的恢复文件默认保存7天,生成后请尽快下载。
  • SQL闪回精确匹配需要满足如下条件:
  • PolarDB-X实例版本在5.3.4-15378085版本及以上,关于版本信息,详情请参见实例版本概览
  • PolarDB-X数据库使用的RDS是5.6及上版本。
  • 执行误操作SQL前,SQL闪回精确匹配开关已开启。
  • 提供误操作SQL的TRACE_ID信息。
  • 为了保证数据恢复的精准性,PolarDB-X对于在5.3.4-15378085版本及以上实例新建的数据库,默认开启精确匹配的开关。开启后,RDS BINLOG中会默认带上执行SQL的信息,增加一定的RDS存储空间。如您需要使用精确匹配的能力,建议升级PolarDB-X后开启,详情请参见开启精确匹配

生成恢复文件

如果您之前未使用过SQL闪回功能,可以任选一条样例SQL,按照下文的操作步骤试用,观察生成的恢复文件,有助于更好地理解SQL闪回。

  1. 登录云原生分布式数据库控制台,选择指定地域。
  2. 在实例列表页面单击实例名称。
  3. 在左侧导航栏中单击SQL闪回,进入SQL闪回页面,如下图中1所示。
  4. 按照操作提示,填写误操作SQL的基本信息,包括数据库、误操作SQL执行的时间范围、表名、TRACE_ID,SQL类型。关于如何获取误操作SQL的相关信息,请参见定位误操作SQLp128020.png参数说明:
  • SQL执行时间范围:误操作SQL执行的大致时间范围,开始时间早于误操作SQL开始执行时间,结束时间晚于误操作SQL执行结束时间。为了保证恢复的效率,建议时间范围尽可能精确,限定在5分钟范围内。
  • TRACE_ID:PolarDB-X会为每条执行的SQL分配唯一的TRACE_ID,误操作SQL的TRACE_ID值可以通过PolarDB-X SQL审计获取。
  1. 单击预检按钮,检查提供的时间范围内,RDS BINLOG是否存在,如上图中2所示。
  1. 如果您提供的时间范围内,已不存RDS BINLOG,则提示预检失败,无法恢复数据。
  2. 如果您提供的时间范围内,存在RDS BINLOG,则预检通过。
  1. 选择恢复方式,支持选择回滚SQL和原始SQL,如下图所示。关于恢复方式的选择,详情请参见回滚SQL与原始SQLp128023.png
  2. 单击生成SQL按钮,即可生成SQL闪回任务。SQL闪回页面会展示当前实例运行的SQL闪回任务状态。p130034.png
  3. SQL闪回任务完成后,会显示该任务是否是精确匹配,实际恢复的数据行数等信息。 您可以单击下载按钮下载对应的恢复文件,进行数据恢复。恢复文件默认保存7天,请尽快下载。

定位误操作SQL

  1. 选择误操作的数据库。
  2. 单击SQL闪回页面的SQL审计与分析链接,前往SQL审计与分析页面。如果您未开启SQL审计,请使用SQL审计的导入历史数据功能,最多支持导入7天内的历史SQL记录,详情请参见开启 SQL 日志审计p143313.png
  3. 使用SQL审计与分析,定位误操作SQL的审计记录。关于如何快速定位误操作SQL,请参见日志分析
  4. 获取误操作SQL数据中的sql_timetable_namesql_typetrace_id字段。p161722.png

开启精确匹配

前提条件:您的PolarDB-X实例版本需为5.3.4-15378085及以上,如果低于该版本,建议升级后开启。

  1. 登录云原生分布式数据库控制台,前往指定实例的参数设置页面,详情请参见参数设置
  2. 修改对应数据库的SQL闪回精确匹配开关的参数值为ON。p161723.png

名词解释

SQL闪回根据您提供的误操作SQL信息,在RDS BINLOG中查找对应的匹配事件,反向生成对应的恢复SQL。受实例版本,参数设置的影响,SQL闪回支持两种BINLOG事件的匹配策略:精确匹配与模糊匹配。具体的匹配策略无需选择,PolarDB-X SQL闪回会自动检测,选择最优的匹配策略,并在闪回任务结束后通知您。

精确匹配

针对误操作SQL,在RDS BINLOG中精确匹配出该SQL误操作的事件,生成恢复文件。

优点:恢复文件中仅包含误操作SQL误删(误改)的数据,可直接使用,保证数据恢复的精准性与效率。

缺点:需要满足以下的条件:

  • PolarDB-X实例版本在5.3.4-15378085版本及以上。
  • PolarDB-X数据库使用的RDS是5.6及上版本。
  • 执行误操作SQL前,SQL闪回精确匹配开关已开启。开启SQL精确匹配开关后,RDS BINLOG中会默认带上执行SQL的信息,增加一定的RDS存储空间。
  • 提供误操作SQL的TRACE_ID信息。
    说明 SQL闪回精确匹配开关对于5.3.4-15378085版本及以上的新建数据库默认开启,低版本实例建议升级后手动开启,详情请参见开启精确匹配

模糊匹配

针对误操作SQL的相关信息(执行时间范围、操作表名、SQL类型等),在RDS BINLOG中匹配满足条件的事件,生成对应的恢复文件。

优点:不依赖实例版本、参数设置等,所有实例都支持。

缺点:无法精准匹配误删(误改)的数据,恢复文件中包含其它业务SQL改动的数据,需要您从中筛选出所需数据。

回滚SQL与原始SQL

为了支持不同的业务场景,PolarDB-X SQL闪回提供生成回滚SQL与生成原始SQL两种恢复方式,您在生成恢复SQL文件前,需要根据使用场景,选择对应的恢复方式。

下图给出了SQL闪回针对一条误操作,生成的回滚SQL与原始SQL示例。p161724 (1).png

回滚SQL

逆序遍历BINLOG中的匹配事件,对INSERT、UPDATE、DELETE事件进行逆反操作,生成的SQL。

  • INSERT逆反等价于DELETE。
  • DELETE逆反等价于REPLACE。
  • UPDATE逆反等价于UPDATE SET value = 变更前。

使用方式:原表执行,对现有数据进行覆盖性恢复。

适用场景:当需要恢复的数据没有冲突或者接受部分冲突数据被覆盖,建议生成回滚SQL。

原始SQL

顺序遍历BINLOG中的匹配事件,对INSERT、UPDATE、DELETE事件进行全记录的镜像构造处理,生成的SQL。

  • INSERT镜像等价于INSERT。
  • DELETE镜像等价于INSERT。
  • UPDATE镜像等价于INSERT变更前的值。

使用方式:临时表执行,写入误操作前的原始数据,与现有数据进行对比,分析冲突后决定最终数据。

适用场景:当需要恢复的数据与当前数据存在冲突时,建议生成原始SQL。

相关实践学习
Polardb-x 弹性伸缩实验
本实验主要介绍如何对PolarDB-X进行手动收缩扩容,了解PolarDB-X 中各个节点的含义,以及如何对不同配置的PolarDB-x 进行压测。
相关文章
|
3月前
|
SQL
幂等修改表增加一列的sql语句
这个 SQL 查询用于修改名为 `t1` 的表,通过添加一个名为 `b` 的新列,并指定数据类型。`IF NOT EXISTS` 子句确保只有在表中不存在该列的情况下才会添加。 在你的查询中,`<数据类型>` 应该被替换为你想要的具体数据类型(例如,INT,VARCHAR等)。以下是使用 INT 数据类型的示例: ```sql ALTER TABLE t1 ADD COLUMN IF NOT EXISTS b INT; ``` 请根据你的需求选择合适的数据类型。这个查询的作用是在表 `t1` 中添加一个名为 `b` 的新列,如果该列尚不存在的话。
|
4月前
|
存储 SQL 关系型数据库
PolarDB这个sql行存和列存性能差别好大 ,为什么?
PolarDB这个sql行存和列存性能差别好大 ,为什么?
33 0
|
4月前
|
SQL 大数据 HIVE
每天一道大厂SQL题【Day20】华泰证券真题实战(二)表转置
每天一道大厂SQL题【Day20】华泰证券真题实战(二)表转置
29 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
101 1
|
1月前
|
SQL
现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?
现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?
41 0
|
13天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
1月前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
【2月更文挑战第22天】在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
13 1
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】——用SQL语句实现数据库和基本表的创建
【MySQL】——用SQL语句实现数据库和基本表的创建
63 3
【MySQL】——用SQL语句实现数据库和基本表的创建
|
2月前
|
SQL 算法 JavaScript
【数据库SQL server】关系型数据库的基本知识
【数据库SQL server】关系型数据库的基本知识
150 0
|
3月前
|
SQL Oracle 关系型数据库
SQL 的 with as 临时中间表
SQL 的 with as 临时中间表
40 1

热门文章

最新文章

相关产品

  • 云原生分布式数据库 PolarDB-X