注册
达梦数据库闪回查询
技术分享/ 文章详情 /

达梦数据库闪回查询

醉酒方知浓 2024/08/02 852 0 0

一、闪回时间查询

1、开启闪回查询

SQL> sp_set_para_value(1,'ENABLE_FLASHBACK',1);

2、设置undo闪回时间为600s

SQL> sp_set_para_double_value(1,'UNDO_RETENTION',600);

3、查询现有测试数据
image.png
4、删除9开头的数据

SQL> delete from "TEST"."TEST_TABLE" where id like '9%';
SQL> commit;

5、查看修改后的数据
image.png
6、查看当前时间

SQL> select sysdate from dual;

行号 SYSDATE

1 2022-03-24 16:01:12

7、指定时间闪回查询(通过闪回查询子句,可以得到指定表过去某时刻的结果集)
image.png

二、闪回版本查询

1、查看当前数据
image.png
2、删除22222 ,33333 两条数据

SQL> DELETE FROM TEST.TEST_TABLE WHERE ID='22222';
SQL> DELETE FROM TEST.TEST_TABLE WHERE ID='33333';
SQL>COMMIT;

3、修改911数据为1006

SQL> UPDATE TEST.TEST_TABLE SET ID=1006 WHERE ID=911;
SQL>COMMIT;

4、查看当前时间

SQL> SELECT SYSDATE();

1 2022-03-28 11:42:12

5、查看VERSIONS_ENDTRXID
image.png
6、指定 TRXID 闪回查询,未删除22222,33333,未修改911
image.png
指定 TRXID 闪回查询,已删除22222,33333,未修改911
image.png

三、闪回事务查询

闪回事务查询提供系统视图 V$FLASHBACK_TRX_INFO 供用户查看在事务级对数据库所做的更改。根据视图信息,可以确定如何还原指定事务或指定时间段内的修改。
image.png
查看18014对应的行

SQL> select * rowid from TEST.TEST_TABLE where ROWID='18014';

行号 ID ROWID

1 911 18014

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服