Show parameter recover     --查看归档日志文件的存放路径

Alter database archive     --修改数据库为归档模式

Archive log list   SQL> select name,log_mode from v$database;   查看数据库当时状态

修改归档日志文件的路径

[oracle@localhost 2010_06_07]$ mkdir /home/oracle/yofee/archive

[oracle@localhost 2010_06_07]$ exit

exit

SQL> alter system set log_archive_dest_1='location=/home/oracle/yofee/archive' scope=both;

System altered.

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /home/oracle/yofee/archive

Oldest online log sequence     40

Next log sequence to archive   43

Current log sequence           43

 

Recover 原理:

在media recover的时候,其实我们最关心的是从什么地方开始recover,什么地方结束。那么oracle到底怎么来确定从什么地方开始的呢?

在数据库正常关闭的时候控制文件的scn ,数据文件的scn ,应该是保持一致的,如若不一致,则在open database的时候提示需要恢复

下面的两个view必须注意一下:

V$datafile_header 里面的内容来自数据文件的头部

V$datafile 里面的内容来自 控制文件

两个view的checkpoint_change#字段的值必须保持一致,否在在open的时候提示需要recover

那么v$datafile_header可以确定应用重做的起始SCN值,而 v$datafile可以确定应用重做的结束SCN值)

有兴趣的朋友可以试验一下!

另外: oracle之所以可以在recover的时候定位从那个日志的那个block开始,得益于在datafile header的checkpoint的时候还记录了此事的 redo的sequence 和block