没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
为了回答关于《深入浅出 Oracle》中的一些疑问,引出本系列文章,讨论链接参考:
http://www.itpub.net/609499.html
在上一讲中,我们说过:当我们使用 file_hdrs 事件来转储数据文件头信息时,Oracle 会转储两部分信息,一部分来自控制文件,
一部分来自数据文件,在数据库启动过程中,这两部分信息要用来进行启动验证。
在数据库 open 的过程中,Oracle 要进行检查中包含以下两个过程:
第一次检查数据文件头中的 Checkpoint cnt 是否与对应控制文件中的 Checkpoint cnt 一致.
如果相等,进行第二次检查.
第二次检查数据文件头的开始 SCN 和对应控制文件中的结束 SCN 是否一致如果结束 SCN 等于开始 SCN,则不需要对那个文件
进行恢复.
对每个数据文件都完成检查后,打开数据库.同时将每个数据文件的结束 SCN 设置为无穷大.
通过以下过程我们来进一步说明一下这个内容。
我们来看以下来自控制文件部分(选取一个文件测试):
DATA FILE #4:
(name #4) /opt/oracle/oradata/eygle/eygle01.dbf
creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1
tablespace 4, index=4 krfil=4 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:58 scn: 0x0000.002ac8ee 08/11/2006 09:48:29
Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29
Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54
thread:0 rba:(0x0.0.0)
................
aux_file is NOT DEFINED
这部分中包含的重要信息有:
检查点计数: Checkpoint cnt:58
检查点 SCN: scn: 0x0000.002ac8ee 08/11/2006 09:48:29
数据文件 Stop SCN:Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29
我们再看来自数据文件头的信息:
FILE HEADER:
Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000
Db ID=1407686520=0x53e79778, Db Name='EYGLE'
Activation ID=0=0x0
Control Seq=979=0x3d3, File size=1280=0x500
File Number=4, Blksiz=8192, File Type=3 DATA
Tablespace #4 - EYGLE rel_fn:4
Creation at scn: 0x0000.0015078d 06/06/2006 09:41:54
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/10/2006 20:57:53
status:0x0 root dba:0x00000000 chkpt cnt: 58 ctl cnt:57
begin-hot-backup file size: 0
Checkpointed at scn: 0x0000.002ac8ee 08/11/2006 09:48:29
.......................
这部分中包含的重要信息有:
检查点 SCN: Checkpointed at scn: 0x0000.002ac8ee 08/11/2006 09:48:29
检查点计数: chkpt cnt: 58 ctl cnt:57
这两者都和控制文件中所记录的一致。如果这两者一致,数据库启动时就能通过验证,启动数据库。
那么如果不一致呢?
Oracle 则请求进行恢复。
我们看,从备份中恢复 eygle01.dbf 文件.
首先第一部分从控制文件中获得的信息是相同的:
DATA FILE #4:
(name #4) /opt/oracle/oradata/eygle/eygle01.dbf
creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1
tablespace 4, index=4 krfil=4 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:58 scn: 0x0000.002ac8ee 08/11/2006 09:48:29
Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29
Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54
...................
aux_file is NOT DEFINED
检查点计数: Checkpoint cnt:58
检查点 SCN: scn: 0x0000.002ac8ee 08/11/2006 09:48:29
数据文件 Stop SCN:Stop scn: 0x0000.002ac8ee 08/11/2006 09:48:29
而从文件头中获得的备份文件信息则是:
FILE HEADER:
Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000
Db ID=1407686520=0x53e79778, Db Name='EYGLE'
Activation ID=0=0x0
Control Seq=973=0x3cd, File size=1280=0x500
File Number=4, Blksiz=8192, File Type=3 DATA
Tablespace #4 - EYGLE rel_fn:4
Creation at scn: 0x0000.0015078d 06/06/2006 09:41:54
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/10/2006 20:57:53
status:0x0 root dba:0x00000000 chkpt cnt: 53 ctl cnt:52
begin-hot-backup file size: 0
Checkpointed at scn: 0x0000.002ac5f9 08/10/2006 20:58:21
...................................
我们看到此时备份文件的信息:
检查点是:Checkpointed at scn: 0x0000.002ac5f9 08/10/2006 20:58:21
检查点计数为:chkpt cnt: 53 ctl cnt:52
这两者不再一致,首先是检查点技术不一致,当前文件的 chkpt cnt 为 53,小于控制文件中记录的 58,Oracle 可以判断文件是
从备份中恢复的,或者文件故障,需要进行介质恢复。
我们看如果此时我们试图打开数据库,则 Oracle 提示文件需要介质恢复:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/opt/oracle/oradata/eygle/eygle01.dbf'
执行恢复:
SQL> recover datafile 4;
Media recovery complete.
我们看看恢复完成之后,控制文件和数据文件的变化.
首先看控制文件的变化:
DATA FILE #4:
(name #4) /opt/oracle/oradata/eygle/eygle01.dbf
creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1
tablespace 4, index=4 krfil=4 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:59 scn: 0x0000.002ac8ee 08/11/2006 09:48:29
Stop scn: 0x0000.002ac8ed 08/11/2006 09:48:29
Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54
......................
检查点计数: Checkpoint cnt:59
执行了恢复之后,检查点计数较前增加了 1
检查点 SCN: scn: 0x0000.002ac8ee 08/11/2006 09:48:29
数据文件 Stop scn: 0x0000.002ac8ed 08/11/2006 09:48:29
数据文件 Stop scn 和数据文件进行了同步。
数据文件头信息:
FILE HEADER:
Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000
Db ID=1407686520=0x53e79778, Db Name='EYGLE'
Activation ID=0=0x0
Control Seq=983=0x3d7, File size=1280=0x500
File Number=4, Blksiz=8192, File Type=3 DATA
Tablespace #4 - EYGLE rel_fn:4
剩余18页未读,继续阅读
资源评论
cailibin
- 粉丝: 4
- 资源: 7018
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功