ORACLE数据文件和控制文件头部

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

为了回答关于《深入浅出Oracle》中的一些疑问,引出本系列文章,讨论链接参考:http://www.itpub.net/609499.html在上一讲中,我们说过:当我们使用file_hdrs事件来转储数据文件头信息时,Oracle会转储两部分信息,一部分来自控制文件,一部分来自数据文件,在数据库启动过程中,这两部分信息要用来进行启动验证。在数据库open的过程中,Oracle要进行检查中包含以下两个过程:第一次检查数据文件头中的Checkpointcnt是否与对应控制文件中的Checkpointcnt一致.如果相等,进行第二次检查.第二次检查数据文件头的开始SCN和对应控制文件中的结束SCN是否一致如果结束SCN等于开始SCN,则不需要对那个文件进行恢复.对每个数据文件都完成检查后,打开数据库.同时将每个数据文件的结束SCN设置为无穷大.通过以下过程我们来进一步说明一下这个内容。我们来看以下来自控制文件部分(选取一个文件测试):DATAFILE#4:(name#4)/opt/oracle/oradata/eygle/eygle01.dbfcreationsize=0blocksize=8192status=0xehead=4tail=4dup=1tablespace4,index=4krfil=4prev_file=0unrecoverablescn:0x0000.0000000001/01/198800:00:00Checkpointcnt:58scn:0x0000.002ac8ee08/11/200609:48:29Stopscn:0x0000.002ac8ee08/11/200609:48:29CreationCheckpointedatscn:0x0000.0015078d06/06/200609:41:54thread:0rba:(0x0.0.0)................aux_fileisNOTDEFINED这部分中包含的重要信息有:检查点计数:Checkpointcnt:58检查点SCN:scn:0x0000.002ac8ee08/11/200609:48:29数据文件StopSCN:Stopscn:0x0000.002ac8ee08/11/200609:48:29我们再看来自数据文件头的信息:FILEHEADER:Softwarevsn=153092096=0x9200000,CompatibilityVsn=134217728=0x8000000DbID=1407686520=0x53e79778,DbName='EYGLE'ActivationID=0=0x0ControlSeq=979=0x3d3,Filesize=1280=0x500FileNumber=4,Blksiz=8192,FileType=3DATATablespace#4-EYGLErel_fn:4Creationatscn:0x0000.0015078d06/06/200609:41:54Backuptakenatscn:0x0000.0000000001/01/198800:00:00thread:0resetlogscount:0x232bee1fscn:0x0000.0007c781recoveredat08/10/200620:57:53status:0x0rootdba:0x00000000chkptcnt:58ctlcnt:57begin-hot-backupfilesize:0Checkpointedatscn:0x0000.002ac8ee08/11/200609:48:29.......................这部分中包含的重要信息有:检查点SCN:Checkpointedatscn:0x0000.002ac8ee08/11/200609:48:29检查点计数:chkptcnt:58ctlcnt:57这两者都和控制文件中所记录的一致。如果这两者一致,数据库启动时就能通过验证,启动数据库。那么如果不一致呢?Oracle则请求进行恢复。我们看,从备份中恢复eygle01.dbf文件.首先第一部分从控制文件中获得的信息是相同的:DATAFILE#4:(name#4)/opt/oracle/oradata/eygle/eygle01.dbfcreationsize=0blocksize=8192status=0xehead=4tail=4dup=1tablespace4,index=4krfil=4prev_file=0unrecoverablescn:0x0000.0000000001/01/198800:00:00Checkpointcnt:58scn:0x0000.002ac8ee08/11/200609:48:29Stopscn:0x0000.002ac8ee08/11/200609:48:29CreationCheckpointedatscn:0x0000.0015078d06/06/200609:41:54...................aux_fileisNOTDEFINED检查点计数:Checkpointcnt:58检查点SCN:scn:0x0000.002ac8ee08/11/200609:48:29数据文件StopSCN:Stopscn:0x0000.002ac8ee08/11/200609:48:29而从文件头中获得的备份文件信息则是:FILEHEADER:Softwarevsn=153092096=0x9200000,CompatibilityVsn=134217728=0x8000000DbID=1407686520=0x53e79778,DbName='EYGLE'ActivationID=0=0x0ControlSeq=973=0x3cd,Filesize=1280=0x500FileNumber=4,Blksiz=8192,FileType=3DATATablespace#4-EYGLErel_fn:4Creationatscn:0x0000.0015078d06/06/200609:41:54Backuptakenatscn:0x0000.0000000001/01/198800:00:00thread:0resetlogscount:0x232bee1fscn:0x0000.0007c781recoveredat08/10/200620:57:53status:0x0rootdba:0x00000000chkptcnt:53ctlcnt:52begin-hot-backupfilesize:0Checkpointedatscn:0x0000.002ac5f908/10/200620:58:21...................................我们看到此时备份文件的信息:检查点是:Checkpointedatscn:0x0000.002ac5f908/10/200620:58:21检查点计数为:chkptcnt:53ctlcnt:52这两者不再一致,首先是检查点技术不一致,当前文件的chkptcnt为53,小于控制文件中记录的58,Oracle可以判断文件是从备份中恢复的,或者文件故障,需要进行介质恢复。我们看如果此时我们试图打开数据库,则Oracle提示文件需要介质恢复:SQLalterdatabaseopen;alterdatabaseopen*ERRORatline1:ORA-01113:file4needsmediarecoveryORA-01110:datafile4:'/opt/oracle/oradata/eygle/eygle01.dbf'执行恢复:SQLrecoverdatafile4;Mediarecoverycomplete.我们看看恢复完成之后,控制文件和数据文件的变化.首先看控制文件的变化:DATAFILE#4:(name#4)/opt/oracle/oradata/eygle/eygle01.dbfcreationsize=0blocksize=8192status=0xehead=4tail=4dup=1tablespace4,index=4krfil=4prev_file=0unrecoverablescn:0x0000.0000000001/01/198800:00:00Checkpointcnt:59scn:0x0000.002ac8ee08/11/200609:48:29Stopscn:0x0000.002ac8ed08/11/200609:48:29CreationCheckpointedatscn:0x0000.0015078d06/06/200609:41:54......................检查点计数:Checkpointcnt:59执行了恢复之后,检查点计数较前增加了1检查点SCN:scn:0x0000.002ac8ee08/11/200609:48:29数据文件Stopscn:0x0000.002ac8ed08/11/200609:48:29数据文件Stopscn和数据文件进行了同步。数据文件头信息:FILEHEADER:Softwarevsn=153092096=0x9200000,CompatibilityVsn=134217728=0x8000000DbID=1407686520=0x53e79778,DbName='EYGLE'ActivationID=0=0x0ControlSeq=983=0x3d7,Filesize=1280=0x500FileNumber=4,Blksiz=8192,FileType=3DATATablespace#4-EYGLErel_fn:4Creationatscn:0x0000.0015078d06/06/200609:41:54Backuptakenatscn:0x0000.0000000001/01/198800:00:00thread:0resetlogscount:0x232bee1fscn:0x0000.0007c781recoveredat08/11/200610:11:26status:0x0rootdba:0x00000000chkptcnt:59ctlcnt:58begin-hot-backupfilesize:0Checkpointedatscn:0x0000.002ac8ed08/11/200609:48:29..........................我们看到此时数据文件的信息:检查点是:Checkpointedatscn:0x0000.002ac8ed08/11/200609:48:29这个检查点和控制文件中记录的stopscn一致,数据库启动可以顺利进行。检查点计数为:chkptcnt:59ctlcnt:58我们打开数据库:SQLalterdatabaseopen;Databasealtered.SQLaltersessionsetevents'immediatetracenamefile_hdrslevel10';Sessionaltered.此时数据库恢复正常运行。控制文件信息如下:DATAFILE#4:(name#4)/opt/oracle/oradata/eygle/eygle01.dbfcreationsize=0blocksize=8192status=0xehead=4tail=4dup=1tablespace4,index=4krfil=4prev_file=0unrecoverablescn:0x0000.0000000001/01/198800:00:00Checkpointcnt:60scn:0x0000.002ac8ef08/11/200610:19:30Stopscn:0xffff.ffffffff08/11/200609:48:29CreationCheckpo

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功