oracle recover 原理概括

来源:互联网 发布:电脑上翻墙用什么软件 编辑:程序博客网 时间:2024/05/18 01:45

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

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

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

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

SQL> select FILE#,STATUS,RECOVER,TABLESPACE_NAME,RESETLOGS_CHANGE#, CHECKPOINT_CHANGE# from v$datafile_header;

     FILE# STATUS  REC TABLESPACE_NAME                RESETLOGS_CHANGE# CHECKPOINT_CHANGE#
---------- ------- --- ------------------------------ ----------------- ------------------
         1 ONLINE  NO  SYSTEM                                    754488            2295245
         2 ONLINE  NO  SYSAUX                                    754488            2295245
         3 ONLINE  NO  UNDOTBS1                                  754488            2295245
         4 ONLINE  NO  USERS                                     754488            2295245
         5 ONLINE  NO  EXAMPLE                                   754488            2295245
         6 ONLINE  NO  TBS01                                     754488            2295245
         7 ONLINE  NO  INVENTORY                                 754488            2295245
         8 ONLINE  NO  UNDOTBS7                                  754488            2295245

8 rows selected.

SQL>

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

SQL> select FILE#,STATUS,CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;

     FILE# STATUS  CHECKPOINT_CHANGE# LAST_CHANGE#
---------- ------- ------------------ ------------
         1 SYSTEM             2295245
         2 ONLINE             2295245
         3 ONLINE             2295245
         4 ONLINE             2295245
         5 ONLINE             2295245
         6 ONLINE             2295245
         7 ONLINE             2295245
         8 ONLINE             2295245


8 rows selected.


SQL>

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

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

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

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


原创粉丝点击