在数据文件头存在一系列的重要信息,这些信息包括检查点信息、数据库名称、软件版本信息等,在重建控制文件进行恢复时,可以从数据文件头获得这部分信息并写入重建的控制文件用于恢复。那么可以来看一下在数据文件头都记录了哪些信息,通过如下命令我们可以将数据文件头信息转储出来:
SQL> ALTER SESSION SET EVENTS ' IMMEDIATE TRACE NAME FILE_HDRS LEVEL 10';
Session altered.
检查跟踪文件,可以从中获得如下数据文件头的信息,摘录SYSTEM表空间的输出作为示例:
FILE HEADER:
Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000
Db ID=1407686520=0x53e79778, Db Name='EYGLE'
Activation ID=0=0x0
Control Seq=1299703=0x13d4f7, File size=27017=0x6989
File Number=1, Blksiz=8192, File Type=3 DATA
Tablespace #0 - SYSTEM rel_fn:1
Creation at scn: 0x0000.00000007 04/24/2006 11:34:39
Backup taken at scn: 0x0004.6c2d657e 02/12/2007 15:54:52 thread:1
reset logs count:0x25196a85 scn: 0x0004.6c594c14 recovered at 05/12/2007 22:51:46
status:0x4 root dba:0x004001a1 chkpt cnt: 6957 ctl cnt:6956
begin-hot-backup file size: 32000
Checkpointed at scn: 0x0004.6c59876a 05/13/2007 11:51:03
thread:1 rba:(0x8.2.10)
enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
Backup Checkpointed at scn: 0x0004.6c2d657e 02/12/2007 15:54:52
thread:1 rba:(0x18e1.30.10)
enabled threads: 01000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
……
注意在输出部分中的Checkpointed at scn和thread信息,这两个信息记录了数据文件的检查点SCN及Redo Byte Address(RBA)。这里的RBA包含了重要的恢复信息,代表最后完成的检查点对应的RBA,如果数据文件需要恢复,则需要根据这个RBA来决定应该从哪个日志文件(或归档日志文件)开始。
可能很多朋友都曾对类似如下信息有所思考,在通过重建控制文件进行恢复时,控制文件中已经不存在归档日志的相关信息了,但是Oracle仍然能够准确地提示我们需要的控制文件名称,那么这个信息从何而来呢?
SQL> recover database using backup controlfile;
ORA-00279: change 18997660553 generated at 05/12/2007 22:24:28 needed for thread 1
ORA-00289: suggestion : /opt/oracle/product/9.2.0/dbs/arch1_31.dbf
ORA-00280: change 18997660553 for thread 1 is in sequence #31
这个信息就是来自数据文件头,RBA信息中就包含了日志的序列号,RBA的主要由以下三部分组成:rba:(0x8.2.10)
1.日志文件序号 4 bytes
2.日志文件块号 4 bytes
3.日志记录偏移量 2 bytes
具备了这个信息,再加上参数文件中定义的log_archive_format参数,Oracle就可以推演出日志序列及日志文件名称,提示恢复。
对于本例,0x8代表的日志文件序号就是8,所以当恢复时,Oracle将从日志序列8开始请求恢复。而从数据库的当前日志序列中可以看到,正在被使用的日志序列正是8。
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/product/9.2.0/dbs/arch
Oldest online log sequence 6
Next log sequence to archive 8
Current log sequence 8
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




