当前位置: 首页 > backend >正文

达梦数据闪回查询-快速恢复表

Time:2025/08/12

Author:skatexg

一、环境说明

DM数据库:DM8.0及以上版本

二、适用场景

研发在误操作或变更数据后,想马上恢复表到某个时间点,可以通过闪回查询功能快速实现(通过全量备份恢复时间长,成本高)

三、说明

  • 闪回查询只支持普通表(包括加密表与压缩表)、水平分区表和堆表,不支持临时表、列存储表、外部表与视图;
  • 闪回查询利用的是 UNDO 表空间里所记录的数据被改变前的值。因此,如果因保留时间超过了初始化参数 UNDO_RETENTION 所指定的值,从而导致闪回查询时所需要的 UNDO 数据被其他事务覆盖的话,那么就不能将表中数据恢复到指定的时间了
  • 数据守护环境下,备库不支持闪回查询

四、闪回查询开启与关闭

查询闪回功能状态,数据库默认关闭 (0-关闭,1-打开),通过如下语句查询开启状态

SELECT name,

TYPE,

VALUE,

sys_value,

file_value

FROM v$parameter

WHERE name LIKE '%FLASHBACK%';

输出结果:

开启闪回查询

SP_SET_PARA_VALUE (1, 'ENABLE_FLASHBACK', 1);--无需重启服务器

--scope 为 1 表示 dm.ini 文件和内存参数都修改,不需要重启服务器;--scope 为 2 表示只修改 dm.ini 文件,服务器重启后生效。

--value: 设置的值。

关闭闪回查询

SP_SET_PARA_VALUE (1, 'ENABLE_FLASHBACK', 0);----无需重启服务器

配置可闪回数据保留时间

由于回滚段默认每秒种都会自动清理,所以需要延长回滚记录的保留时间,单位是秒。回滚段参数太大容易引发回滚段膨胀,这里设置为 3600s。示例语句如下所示:

ALTER SYSTEM SET 'undo_retention'=3600 BOTH;

SELECT name,

TYPE,

VALUE,

sys_value,

file_value

FROM v$parameter

WHERE name = 'UNDO_RETENTION';

输出结果:

五、数据闪回查询

通过指定一个时间(timestamp 类型),用一个日期时间字符串表达。使用 test_zxg 模式下的 tab_1 表。测试如下:

-1)切换schema

set schema "test_zxg"

2)查询 tab_1 表中的信息

SELECT * FROM tab_1 where id =1;

3)更新 id = 1,更新时间为 '2025-08-12 16:42:00'

UPDATE tab_1 set name='cccccc' where id =1;

4)再次查询 id = 1 时表中的信息

SELECT * FROM tab_1 where id =1;

4)闪回查询 update 操作前表中的信息

SELECT * FROM tab_1 WHEN TIMESTAMP '2025-08-12 16:40:00' where id =1

六、数据恢复

为安全起见,先把闪回查询的数据保存到临时表,后续在根据业务逻辑,研发按需恢复

CREATE table tab_bak20208121650 as SELECT * FROM tab_1 WHEN TIMESTAMP '2025-08-12 15:40:00'

另:数据变更前的备份方法

1、在dml某表数据前,如果表行数不多(10万以内)可以先备份表,然后再做表变更

CREATE table tab_bak20208121650 as SELECT * FROM tab_1 where id

注意:数据闪回功能达梦工程师建议生产环境关闭闪回,可能影响性能

----end----

http://www.xdnf.cn/news/17585.html

相关文章:

  • 燕山大学计算机网络实验(2025最新)
  • SpringMVC的原理及执行流程?
  • uv 配置和简单使用
  • 飞算JavaAI全流程实操指南:从需求到部署的智能开发体验
  • 虚拟机高级玩法-网页也能运行虚拟机——WebAssembly
  • code-inspector-plugin插件
  • [ue5 shader] 路由申明和路由引用
  • 【SpringBoot】05 容器功能 - SpringBoot底层注解的应用与实战 - @Configuration + @Bean
  • 智能家居Agent:物联网设备的统一控制与管理
  • 无人机航拍数据集|第13期 无人机城市斑马线目标检测YOLO数据集963张yolov11/yolov8/yolov5可训练
  • 无人机智能返航模块技术分析
  • 无人机航拍数据集|第14期 无人机水体污染目标检测YOLO数据集3000张yolov11/yolov8/yolov5可训练
  • k8s-scheduler 解析
  • 让齿轮与斑马线共舞:汽车文化驿站及安全教育基地的展陈实践
  • 【工作笔记】win11系统docker desktop配置国内mirror不生效解决方案汇总整理
  • 7 种最佳 DBAN 替代方案,彻底擦除硬盘数据
  • 【实时Linux实战系列】实时环境监测系统架构设计
  • 思科、华为、华三如何切换三层端口?
  • 初识数据结构——优先级队列(堆!堆!堆!)
  • Java静态代理和动态代理
  • [SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍
  • mysql登录失败 ERROR1698
  • Java多线程基础总结
  • Camera open failed
  • STM32学习笔记7-TIM输入捕获模式
  • MySQL-日志
  • JavaScript Const的基础使用
  • UE 手柄点击UI 事件
  • 《零基础入门AI:深度学习基础核心概念解析(从激活函数到反向传播)》
  • MySQL 基础练习(50 题完整解析)