达梦数据库中与闪回技术相关的参数
1
.
ENABLE_FLASHBACK
开启闪回功能,需要在达梦数据库的配置文件
dm.ini
中打开上述参数。
2. UNDO_RETENTION
回滚段保留的时间,回滚段保留的时间代表着可以进行闪回的时间长度,以秒为单位。
SQL> select para_name,para_value from v$dm_ini where para_name like '%FLASH%';
行号
PARA_NAME PARA_VALUE
---------- ---------------- ----------
1 ENABLE_FLASHBACK 0
SQL> select para_name,para_value from v$dm_ini where para_name like '%UNDO_RE%';
行号
PARA_NAME PARA_VALUE
---------- -------------- ----------
1 UNDO_RETENTION 90.000000
SQL> alter system set 'ENABLE_FLASHBACK'=1 both;
SQL> select name,type,value from v$parameter where name='ENABLE_FLASHBACK';
行号
NAME TYPE VALUE
---------- ---------------- ---- -----
1 ENABLE_FLASHBACK SYS 1
SQL> select user();
行号
USER()
---------- ------
1 LJW
SQL> create table fb (test varchar2(20));
SQL> insert into fb values('flashback');
SQL> select sysdate();
行号
SYSDATE()
---------- ---------------------------
1 2020-02-27 10:14:36
SQL>commit;
SQL> select * from fb;
行号
TEST
---------- ---------
1 flashback
SQL> select sysdate();
行号
SYSDATE()
---------- ---------------------------
1 2020-02-27 10:15:24
SQL> select sysdate();
行号
SYSDATE()
---------- ---------------------------
1 2020-02-27 10:16:11
SQL> delete from fb;
SQL> select sysdate();
行号
SYSDATE()
---------- ---------------------------
1 2020-02-27 10:16:25
SQL> commit;
SQL> select * from fb when timestamp '2020-02-27 10:15:24';
行号
TEST
---------- ---------
1 flashback
SQL> select * from fb;
未选定行
SQL> select * from fb when timestamp '2020-02-27 10:15';
行号
TEST
---------- ---------
1 flashback
1
、闪回查询子句查询
语法格式
<
闪回查询子句
>::=WHEN <TIMESTAMP time_exp> | <TRXID trxid>
参数
1
.
time_exp
一个日期表达式,一般用字符串方式表示
2
.
trxid
指定事务
ID
号

使用说明
1
. 闪回查询只支持普通表(包括加密表与压缩表)、临时表和堆表,不支持水平分区 表、垂直分区表、列存储表、外部表与视图;
2
. 闪回查询中
trxid
的值,一般需要由闪回版本查询(见下节)的伪列来确定。实 际使用中多采用指定时刻的方式。
2
、
闪回版本查询
语法格式
参数
<
闪回版本查询子句
>::=VERSIONS BETWEEN <TIMESTAMP time_exp1 AND time_exp2> | <TRXID trxid1 AND trxid2>
1
.
time_exp
日期表达式,一般用字符串方式表示。
time_exp1
表示起始时间,
time_exp2
表示结束时间
2. trxid
指定事务
ID
号,整数表示。
trxid1
表示起始
trxid
,
trxid2
表 示结束
trxid
使用说明
1
. 闪回版本查询支持普通表(包括加密表与压缩表)、临时表和堆表,不支持水平分 区表、垂直分区表、列存储表、外部表与视图;
2
. 支持如表
17.2.1
所示伪列,作为闪回版本查询的辅助信息。

语句功能
用户通过闪回版本查询子句,可以得到指定表过去某个时间段内,事务导致记录变化的全部记录。指定条件可以为时刻,或事务号。
3
闪回事务查询
闪回事务查询提供系统视图
V$FLASHBACK_TRX_INFO
供用户查看在事务级对数据库 所做的更改。根据视图信息,可以确定如何还原指定事务或指定时间段内的修改。
使用说明
系统视图名为
V$FLASHBACK_TRX_INFO
,定义如表
17.3.1
所示。

举例说明
例
1
查询指定时间之后的事务信息,可为闪回查询操作提供参考。
SELECT * FROM V$FLASHBACK_TRX_INFO WHERE COMMIT_TIMESTAMP > '
2020
-0
2
-0
2
12:00:00';