OCP考题解析_043:Oracle RECID和SEQUENCE#的区别及RESETLOGS操作

sys@ORCL> select recid,sequence# from v$log_history;

     RECID  SEQUENCE#
---------- ----------
         1          1
         2          2
         3          3
         4          4
         5          5
         6          6
         7          7
         8          8
         9          9
        10         10
        11         11
        12         12
        13          1
        14          2
        15          3
        16          4
        17          1
        18          2
        19          3
        20          4
        21          5
        22          6
        23          7
        24          8
        25          9
        26         10
        27         11
        28         12
        29         13
        30         14
        31         15
        32         16
        33         17

RMAN> list incarnation of database;

using target database control file instead of recovery catalog

List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       ORCL     1316499950       PARENT  1          2005-06-30:19:09:40
2       2       ORCL     1316499950       PARENT  446075     2012-07-15:16:40:15
3       3       ORCL     1316499950       PARENT  604802     2012-08-08:10:35:10
4       4       ORCL     1316499950       CURRENT 607329     2012-08-08:11:28:40

 

OCP考题解析_043:Oracle RECID和SEQUENCE#的区别及RESETLOGS操作_第1张图片

 

       alter database open resetlog 可让SEQUENCE#重新从序列号1开始
      
       Oracle在SEQUENCE#为100时创建了备份,在SEQUENCE#为400时崩溃,由于你只有到SEQUENCE#为251
       因此你只能恢复到SEQUENCE#为250时的状态,然后以RESETLOGS打开,Oracle又开始了一个新的Incarnation
       SEQUENCE#被重新初始化到1,然后随着Oracle的不断增加并达到400,但这些Logfile与之前的Logfile并不关联
       虽然它们的SEQUENCE#是一样的
      
       指定RESETLOGS会执行下列操作:
       ① 归档当前Online Redolog File(如果能够访问到的话),然后清空内容并将SEQUENCE#重置为1
          (如果Online Redo Log File不存在,则重建)
       ② 重置Controlfile中关于Online Redo Log File的元数据
       ③ 更新Datafile和Online Redolog File中的RESETLOGS SCN和重置时间信息
      
       在10G之前的版本,数据库执行完OPEN RESETLOGS操作后,都建议立刻进行一次完全备份
       因为之前版本中在执行OPEN RESETLOGS操作时并不对Online Redolog File进行归档
       这会导致ARCHIVED LOG FILE不再连续,导致之前创建的备份不再有效
       也就是恢复不到当前状态,只能恢复到OPEN RESETLOGS操作之前
       10G及之后版本就不存在这个问题,OPEN RESETLOGS操作会首先将当前Online Redolog File归档
       并且OPEN RESETLOGS操作也会记入Online Redologs文件并正常归档
       相当于OPEN RESETLOGS只是一个命令操作,和其他SQL命令一样
       这样保证了archived log file的连续性,之前的备份依然有效

 

        OCP考题:

 

OCP考题解析_043:Oracle RECID和SEQUENCE#的区别及RESETLOGS操作_第2张图片

 

        不过,仍然建议OPEN RESETLOGS操作后立马进行一次全库备份


你可能感兴趣的:(OCP考题解析_043:Oracle RECID和SEQUENCE#的区别及RESETLOGS操作)