关于介质恢复和实例恢复的疑问

[复制链接]
查看11 | 回复7 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
此前看到一个说法:在数据库启动过程中,当System Checkpoint SCN、Datafile Checkpoint SCN和Start SCN号都相同时,数据库可以正常启动,不需要做media recovery.三者当中有一个不同时,则需要做media recovery(我理解就是应用redo保证三点一致)。如果在启动的过程中,End SCN号为NULL,则需要做instance recovery。ORACLE在启动过程中首先检查是否需要media recovery,然后再检查是否需要instance recovery。
对上面的说法有一点疑问,instance recover应该是通过前滚回滚使数据文件和控制文件同步的过程,media recover应该有指备份文件还原吧,那么上面的说法第一项应该也属于instance recover吧,只有用到了备份文件的才算介质恢复吧?

回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
对于System Checkpoint SCN、Datafile Checkpoint SCN和Start SCN来说,在oracle8i后除非手动或关闭才做完全检查点,要不然始终是增量检查么?增量检查点只是记录LRBA位置,而不更新控制文件和数据文件头中的scn吧,如果这样的话,那么从启动后,这三者应该始终一致?直到关机?
如果system scn=datafile scn>start scn这个我好理解,应该是用了旧备份文件覆盖,那么这三个scn是否还有其他可能?system scn和datafile scn是不是永远都一致?请高手指点则个,感激不尽
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
自己顶一下,请各位不吝赐教
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
在测试中,datafile scn应该是可以大于system scn的,但是和start scn保持一致,譬如:
SQL> select checkpoint_change#from v$database;

CHECKPOINT_CHANGE#
------------------
7940522
SQL> select name,last_change#,checkpoint_change#,offline_change#from v$datafile;

NAME
LAST_CHANGE# CHECKPOINT_CHANGE# OFFLINE_CHANGE#
-------------------------------------------------------------------------------- ------------ ------------------ ---------------
C:\APP\LL\ORADATA\ORCL\SYSTEM01.DBF
7940522
886307
C:\APP\LL\ORADATA\ORCL\SYSAUX01.DBF
7940522
886307
C:\APP\LL\ORADATA\ORCL\UNDOTBS01.DBF
7940522
886307
C:\APP\LL\ORADATA\ORCL\USERS01.DBF
7940522
886307
C:\APP\LL\ORADATA\ORCL\EXAMPLE01.DBF
7940522
914078
C:\APP\LL\ORADATA\ORCL\INVENTORY01.DBF
7940522 6963003
C:\APP\LL\ORADATA\ORCL\TT.DBF
7944333
0
C:\APP\LL\ORADATA\ORCL\TT01.DBF
7944333
0
C:\APP\LL\ORADATA\ORCL\SPC1.DBF
7940522
0

9 rows selected
SQL> select name,checkpoint_change# from v$datafile_header;

NAME
CHECKPOINT_CHANGE#
-------------------------------------------------------------------------------- ------------------
C:\APP\LL\ORADATA\ORCL\SYSTEM01.DBF
7940522
C:\APP\LL\ORADATA\ORCL\SYSAUX01.DBF
7940522
C:\APP\LL\ORADATA\ORCL\UNDOTBS01.DBF
7940522
C:\APP\LL\ORADATA\ORCL\USERS01.DBF
7940522
C:\APP\LL\ORADATA\ORCL\EXAMPLE01.DBF
7940522
C:\APP\LL\ORADATA\ORCL\INVENTORY01.DBF
7940522
C:\APP\LL\ORADATA\ORCL\TT.DBF
7944333
C:\APP\LL\ORADATA\ORCL\TT01.DBF
7944333
C:\APP\LL\ORADATA\ORCL\SPC1.DBF
7940522
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
再顶一下,求教
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
无人问津么,请大家指点一下啊
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
依靠REDO来恢复的,就是实例级别的恢复!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
百步亭花园 发表于 2012-1-7 14:03
依靠REDO来恢复的,就是实例级别的恢复!

9i以后的数据库,是不是只有在闭库的时候才做complete CKPT?start scn datafile scn和system scn在一段时间内是不同的?那么oracle开库的时候依据什么判断是否做media recover呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行