1.配置数据库使用自动撤销管理(Automatic Undo Management)
具体设置参照:管理UNDO
SQL>show parameter undo;
NAME TYPE VALUE
-------------------- ----------- ------------------------------
undo_management undo_retention undo_tablespace | string AUTO |
integer | 900 |
string UNDOTBS1 |
SQL>
2.配置数据库使用oracle 闪回师傅查询(Oracle Flashback Transaction Query)
1)确保Oracle数据库使用版本10.0兼容运行
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 11.2.0.4.0
SQL>
2)启用补充日志记录
compatible string 11.2.0.4.0
SQL> alter database add supplemental log data;
Database altered.
SQL>
3 配置数据库使用闪回事务(Flashback Transaction)
1)启用数据库归档
SQL> startup mount
ORACLE instance started.
Total System Global Area 839282688 bytes
Fixed Size 2257880 bytes
Variable Size 545262632 bytes
Database Buffers 289406976 bytes
Redo Buffers 2355200 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 24
Next log sequence to archive 29
Current log sequence 29
SQL> alter database archivelog;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 24
Next log sequence to archive 29
Current log sequence 29
SQL> alter database open;
Database altered.
2)打开至少一个归档日志
SQL> alter system archive log current;
System altered.
4.在特定的LOB列上启用Oracle闪回操作
在特定的LOB列上启用Oracle闪回操作,需要使用alter table 语句的RETENTION选项,因为LOB列的UNDO data可能非常大,所以你必须定义哪些LOB列可以使用flashback操作。这个再次不做过多讨论。
5.授权
要使用闪回特性,必须授予一定的权限给用户、角色或者应用程序。
1)对于闪回查询(Oracle Flashback Query)和闪回版本查询(Oracle Flashback Version Query)
访问特定的对象,需要授权Flashback 和select权限;访问所有的表需要授权Flashback Any Table权限。
2)对于闪回事务查询(Oracle Flashback Transaction Query)
需要授权Select Any Transaction 权限,允许执行Oracle闪回事务查询检索出来的撤销SQL代码(Undo SQL Code),需要授予Select、Update 、Delete和Insert权限;
3)对于DBMS_FLASHBACK包里的特性,需要授予对该包的Execute权限;
4)对于闪回数据归档(Flashback Data Archive /Oracle Total Recall)
为了允许特定的用户在表上启用闪回数据归档,使用特定的闪回数据归档,需要授予Flashback Archive 对象权限。授予时,必须以SYSDBA或者Flashback Archive Administer系统权限登陆。