达梦数据库 闪回查询

当用户操作不慎导致错误的删改数据时,非常希望有一种简单快捷的方式可以恢复数据。闪回技术,就是为了用户可以迅速处理这种数据逻辑损坏的情况而产生的。

闪回技术主要是通过回滚段存储的 UNDO 记录来完成历史记录的还原。如果提交了,还没有超过undo_retention的保留时长,可以通过闪回查询找回。闪回查询功能完全依赖于回滚段管理,对于 DROP 等误操作不能恢复。

设置ENABLE_FLASHBACK 为 1 后(ENABLE_FLASHBACK默认值为0),开启闪回功能。DM 会保留回滚段一段时间,回滚段保留的时间代表着可以闪回的时间长度。由UNDO_RETENTION 参数指定(UNDO_RETENTION 缺省值90秒,最大值1天)。(DM MPP、DMDSC 和 DMDPC 环境不支持闪回查询。)

闪回特性可应用在以下方面:

  1. 自我维护过程中的修复:当一些重要的记录被意外删除,用户可以向后移动到一个时间点,查看丢失的行并把它们重新插入现在的表内恢复;
  2. 用于分析数据变化:可以对同一张表的不同闪回时刻进行链接查询,以此查看变化的数据。

测试

1:开启闪回

 SP_SET_PARA_VALUE (1, ‘ENABLE_FLASHBACK’, 1);

2:查看当前回滚段记录保留时间,根据实际调整。默认就是90s

select para_name,para_value,default_value,para_type from v$dm_ini where para_name like '%UNDO_RETENTION%';

在这里插入图片描述

3:调整UNDO_RETENTION,20min

4:创建表:

create table "SYSDBA"."TABLE_1"
(
	"COLUMN_1" CHAR(10)
);

5:插入数据----注意不要只插入一条数据,只插入一条数据。

  insert into TABLE_1 values('11');
   insert into TABLE_1 values('11');
  insert into TABLE_1 values('12');
  commit;
  select sysdate(); --2023-02-23 14:37:42

6:delete 表数据

delete from TABLE_1 where COLUMN_1='11';
commit;
select sysdate(); --2023-02-23 14:38:07

7:查询删除之前的数据

   select * from TABLE_1 when timestamp '2023-02-23 14:37:42';

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值