oracle 10g较之oracle 9i在闪回上增加了库的闪回。试验如下:
一、设置
1. 检查库闪回是否启用:
SQL>select flashback_on from v$database
2. 设置闪回区目录、大小、保存时间
SQL>show parameter db_recovery
NAME TYPE VALUE
----------------------------- ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 2G
SQL>alter system set db_recovery_file_dest='E:/oracle/product/10.2.0/flash_recovery_area' scope=spfile
SQL>show parameter db_flashback_retention_target
NAME TYPE VALUE
------------------------------------ ----------- -----
db_flashback_retention_target integer 1440(单位:分钟)
此后,oracle的redo日志不但归档到原来的目录,也会同时归档到db_recovery_file_dest
3. 重新启动数据库
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database flashback on;
SQL>alter database open;
二、测试
SQL>startup mount --需要在mount下闪回
SQL> flashback database to timestamp to_timestamp('20100514115000','YYYYMMDDHH24MISS');
闪回完成。
SQL> alter database open read only;
数据库已更改。
SQL> shutdown immediate
SQL> startup mount --再次启动
ORACLE 例程已经启动。
数据库装载完毕。
SQL> alter database open resetlogs;--以resetlogs方式打开
三、关闭闪回
SQL> alter system set db_recovery_file_dest='' scope=spfile;
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
下一个存档日志序列 1
当前日志序列 1
SQL> shutdown immediate
SQL> startup mount
ORACLE 例程已经启动。
数据库装载完毕。
SQL> alter database flashback off;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 E:/oracle/data/orcl/archive
最早的联机日志序列 1
下一个存档日志序列 1
当前日志序列 1