闪回技术主要是通过回滚段存储的 UNDO 记录来完成历史记录的还原。设置ENABLE_FLASHBACK 为 1 后,开启闪回功能。 DM 会保留回滚段一段时间,回滚段保留的时间代表着可以闪回的时间长度。由 UNDO_RETENTION 参数指定。
开启闪回功能后, DM 会在内存中记录下每个事务的起始时间和提交时间。通过用户指定的时刻,查询到该时刻的事务号,结合当前记录和回滚段中的 UNDO 记录,就可以还原出特定事务号的记录。即指定时刻的记录状态,从而完成闪回查询。闪回查询功能完全依赖于回滚段管理,对于 DROP 等误操作不能恢复。
注:对于DROP表的恢复,由于达梦数据库不存在回收站机制,所以对于DROP表操作无法flashback。无法像Oracle进行flashback table XXX to before drop;
开启闪回功能:
默认是闪回功能为关闭状态
SQL> select name,type,value from v$parameter where name=‘ENABLE_FLASHBACK’;
LINEID NAME TYPE VALUE
1 ENABLE_FLASHBACK SYS 0
SQL> alter system set ‘ENABLE_FLASHBACK’=1 both;
SQL> select name,type,value from v$parameter where name=‘ENABLE_FLASHBACK’;
LINEID NAME TYPE VALUE
1 ENABLE_FLASHBACK SYS 1
##或者修改参数文件dm.ini中ENABLE_FLASHBACK值为1,重启生效。
修改UNDO_RETENTION
默认UNDO保留时间为900秒(15分