详情页标题前

腾讯云TDSQL-C MySQL版闪回查询

详情页1

功能介绍

数据库运维过程中可能会发生误操作的情况,这些误操作可能会给业务带来严重的影响,因误操作导致业务受到影响时,常见的恢复手段有回档、克隆等操作,但对于少量的数据变更以及紧急故障修复而言,容易出错且耗时较长,在数据量较大时恢复时间不可控。
TXSQL 团队在 Innodb 引擎上设计和实现了闪回查询功能,仅需通过简单的 SQL 语句即可查询误操作前的历史数据,通过特定的 SQL 语法查询指定时间点的数据,节省大量的数据查询和恢复时间,使得误操作后的数据能够快速恢复,从而保障业务快速恢复运行。

支持版本

内核版本 TDSQL-C MySQL 版 8.0 3.1.10 及以上。

适用场景

闪回查询功能用于在数据库运维过程中,误操作后进行快速的查询历史数据。
在使用该功能时,需要注意以下几点:
仅支持 Innodb 物理表,不支持 view 及其它引擎,不支持 last_insert_id() 等没有实际列对应的函数。仅支持秒级的闪回查询,不保证百分之百准确,如果一秒之内有多个改动,可能会查询到其中任何一个。闪回查询仅支持主键(或者 GEN_CLUST_INDEX)。不支持在 prepared statement 和 stored procedure 中使用。不支持 DDL,如果对表进行 DDL(如 truncate table,这种建议通过回收站进行恢复),闪回查询得到的结果可能不符合预期。同一个语句中,同一张表如果指定了多个闪回查询时间,会选择离当前查询时间最远的时间。由于主从实例存在时间差,指定相同时间进行闪回查询,主从实例获得的结果可能不一样。开启闪回查询后会延迟 undo 日志清理以及增加内存占用,不建议 Innodb_backquery_window 设置过大(建议设置在900至1800之间),尤其是业务访问繁忙的实例。如果数据库实例重启或者 crash,将不能查询到重启或 crash 之前的历史信息。指定的时间需要在支持的范围之内(支持范围可通过状态变量 Innodb_backquery_up_time 和 Innodb_backquery_low_time 查看,执行 show status like '%backquery%')。

使用说明

闪回查询提供了全新的 AS OF 语法,在参数设置中将 Innodb_backquery_enable 参数设置为 ON,打开闪回查询功能,通过特定语法查询指定时间的数据。语法如下:

SELECT ... FROM <表名>AS OF TIMESTAMP <时间>;

查询指定时间参考示例

MySQL [test]> create table t1(id int,c1 int) engine=innodb;Query OK, 0 rows affected (0.06 sec)
MySQL [test]> insert into t1 values(1,1),(2,2),(3,3),(4,4);Query OK, 4 rows affected (0.01 sec)Records: 4 Duplicates: 0 Warnings: 0
MySQL [test]> select now();+---------------------+| now() |+---------------------+| 2023-08-17 15:50:01 |+---------------------+1 row in set (0.00 sec)
MySQL [test]> delete from t1 where id=4;Query OK, 1 row affected (0.00 sec)
MySQL [test]> select * from t1;+------+------+| id | c1 |+------+------+| 1 | 1 || 2 | 2 || 3 | 3 |+------+------+3 rows in set (0.00 sec)
MySQL [test]> select * from t1 as of timestamp '2023-08-17 15:50:01';+------+------+| id | c1 |+------+------+| 1 | 1 || 2 | 2 || 3 | 3 || 4 | 4 |+------+------+4 rows in set (0.00 sec)

通过历史数据创建表示例

create table t3 select * from t1 as of timestamp '2023-08-17 15:50:01';

插入历史数据至表中示例

insert into t4 select * from t1 as of timestamp '2023-08-17 15:50:01';

参数说明

下列表中列举闪回查询功能可配置的参数说明。

参数名 参数范围 类型 默认值 取值范围 是否需重启 说明
innodb_backquery_enable 全局参数 Boolean OFF ON/OFF 闪回查询功能的开关
innodb_backquery_window 全局参数 Integer 900 1 – 86400 支持闪回查询的时间范围,单位:秒,此参数的值越大,闪回查询支持的历史数据查询时间越长,同时 undo 表空间占用的存储空间也会上升
innodb_backquery_history_limit 全局参数 Integer 8000000 1 – 9223372036854476000 undo 的历史链表长度限制,超过设定值会忽略 Innodb_backquery_window 触发 purge,直到历史链表长度低于设定值



官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:http://www.yunxiaoer.com/139681.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 阿里云大数据开发治理平台 DataWorksOpenAPI计费说明-云淘科技

    购买DataWorks后,您可调用DataWorks的OpenAPI使用DataWorks的各项功能,DataWorks根据您调用API的次数进行计费收费,本文为您介绍OpenAPI的计费详情。 背景信息 DataWorks不同版本提供的OpenAPI能力不同,且支持调用的次数等限制也不同,各版本的OpenAPI的使用注意事项和能力支持详情请参见DataWo…

  • 阿里云ECS云服务器通过LVM创建逻辑卷-云淘科技

    本文介绍如何通过LVM在多块ECS云盘上创建逻辑卷。 背景信息 逻辑卷管理LVM(Logical Volume Manager)是Linux系统下的一种管理硬盘分区机制,在磁盘和分区之上建立一个逻辑层,可以灵活、高效地管理磁盘分区,简化了磁盘管理操作。逻辑卷的大小可以动态调整,而且不会丢失现有数据;即使新增了磁盘,也不会改变现有的逻辑卷。 本文中,LVM配置…

    2023年12月9日
  • 腾讯云对象存储盲水印

    简介 本文档提供关于盲水印的相关的 API 概览以及 SDK 示例代码。关于盲水印 API 文档请参见 盲水印。 添加盲水印 功能说明 盲水印支持在上传时添加和下载时添加。 示例代码一:上传时添加盲水印 const filePath = “temp-file-to-upload” // 本地文件路径cos.putObject({ Bucket: ‘examp…

    腾讯云 2023年12月9日
  • 阿里云日志服务SLS数据报表-云淘科技

    通用数据库审计应用提供审计运营中心、审计安全中心和审计性能中心仪表盘,从不同维度展示数据库审计相关的指标。 前提条件 已配置通用数据库审计。具体操作,请参见配置通用数据库审计。 功能入口 登录日志服务控制台。 在日志应用区域的审计与安全页签中,单击日志审计服务。 在左侧导航栏中,单击数据报表。 在页面左上角,选择目标任务。 审计运营中心 审计运营中心仪表盘主…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储上传对象

    简介 本文档提供关于对象的高级上传、简单上传、分块上传等操作相关的 API 概览以及 SDK 示例代码。说明 常见上传错误排查,请参考 常见问题。简单操作 API 操作名 操作描述 PUT Object 简单上传对象 上传一个对象至存储桶 Append Object 追加上传对象 将对象以分块追加的方式上传至存储桶 POST Object 表单上传对象 使用…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。