- 文档首页
云数据库 veDB MySQL 版
用户指南
备份与恢复
数据恢复
闪回查询
闪回查询
通过闪回查询功能,能够快速查询过去某个时间点的数据信息,有助于进行数据恢复或故障排查。本文介绍如何使用闪回查询功能。
前提条件
- 已创建兼容版本为 MySQL 8.0 的实例。操作步骤请参见创建实例。
- 已在实例参数管理中开启 innodb_flashback_query 参数,该参数默认关闭。操作步骤请参见修改参数。
使用限制
- 版本限制:实例兼容版本为 MySQL 8.0,内核版本为 3.0.*.* 且大于等于 3.0.5.2,关于版本的详细介绍请参见版本号管理。
- 仅支持 innoDB 表,不支持 view 及其他引擎(如 HTAP 引擎)。
- 仅支持在只读语句中使用(在 read committed 隔离级别下可以支持 insert ... select... 语句)。
- 仅支持秒级的闪回查询,不保证时间上百分之百准确。如果一秒之内有多个改动,可能会查询到其中任何一个。
- 在执行 DDL 之后(会产生 rebuild table 的 DDL,如 truncate table),之前的数据闪回查询结果可能不符合预期。
- PITR 后的实例因为 undo log 丢失因此闪回查询功能失效(报错 DB_MISSING_HISTORY)。
- 开启闪回查询后会延迟 undo 日志清理并增加内存占用,因此不建议将 innodb_flashback_query_window 设置过大,建议设置在 900 至 1800 之间。
- 推荐在单表场景中使用闪回查询,不建议在复杂查询场景下(如 JOIN、子查询)使用闪回查询。
参数说明
通过以下参数控制闪回查询功能。
语法说明
支持通过以下语法使用闪回查询。
示例
- 在 2025-03-25 15:50:35 时间点创建一个表,并插入数据。
- 在 2025-03-25 16:04:50 时刻,修改 Bob 为 Alice。
- 查看 2025-03-25 16:00:00 时间点表中的数据。
- 在 2025-03-25 16:10:00 删除 name='David'的行数据。
- 查看 2025-03-25 16:05:00 时间点表中 id=3 的数据。
最近更新时间:2025.10.09 17:38:46