四个SCN概念

1、系统检查点scnDOIT社区%X S9fc,d e/|j*O
当一个检查点动作完成后,Oracle就把系统检查点的SCN存储到控制文件中。DOIT社区 ct!Oua:u4ynh [
select checkpoint_change# from v$database;DOIT社区 \X(?&qe.[
2,数据文件检查点scn
\Efh1d n8f0当一个检查点动作完成后,Oracle就把每个数据文件的scn单独存放在控制文件中。DOIT社区L tP:Ub2YF H
select name,checkpoint_change# from v$datafile;
+B"F)k~5b*qI t'z03,启动scn
@7D)H1W0i`[L0Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,因为它用于在数据库实例启动时,DOIT社区1Ul:m:z^
检查是否需要执行数据库恢复。DOIT社区Mi5{0KE.u~
select name,checkpoint_change# from v$datafile_headerDOIT社区Ig4vTN
4、终止scn
J9i`2N8s*Y `0每个数据文件的终止scn都存储在控制文件中。DOIT社区;` @S_(D b.t'B
select name,last_change# from v$datafile
_o D[5X.l-s-Q^0DOIT社区7s X o(D#s`O
以下条件需要使用using backup controlfile
$B-_:dKp I01)、使用备份控制文件DOIT社区G z&Bq-vI!z
2)、重建resetlogs控制文件,如果重建立noresetlogs不必要使用using backup controlfile
| vqh] qF:R8}}0DOIT社区$xp#G)Fu5k[@;hg
DOIT社区:O*]B&? I
2、alter database open resetlogDOIT社区 o H*wR?!dP2N*uJ
指定RESETLOGS将重设当前LOG sequence number为1,抛弃所有日志信息。
2oJ}$p7w;R0以下条件需要使用resetlog
@1|$Ug` o!F01)在不完全恢复(介质恢复)
\ L.d&B/DIl02)使用备份控制文件
'\/V~o5y6o)^6X i Y0使用resetlogs打开数据库后无必完整地备份一次数据库。
|7X#hOV#_X03、create controlfile resetlogs/noresetlogsDOIT社区EK4MZ@0rI$^fQ-Wj
1).用Noresetlogs重建控制文件时,控制文件中 datafile Checkpoint来自Online logs中的Current log头
'QJ/f%`7p,y(wq02).用Resetlogs重建控制文件时,控制文件中datafile Checkpoint来自各数据文件头。
UV$cs2r0DOIT社区mM+A6m.xIbI;v0R
当system scn,datafile scn,start scn 不全相等,需要介质恢复(个人觉得此处有问题,应该是比较cnt,而不是scn),如果stopscn null需要实例恢复
N+o*W%s`,L*\@!f0resetlogs抛弃所有在上一次恢复没有用到的日志信息,确保不被重新用与恢复。
v'y+v!t#Cz]P01、系统正常关闭:DOIT社区'w~[fz!i
system scn=datafile scn=start scn=stop scn
c+B0p7|!S!LF:e01)system scn=datafile scn=start scn,不需要介质恢复DOIT社区;zI"O[-iY[ r
2)stopscn not null,不需要实例恢复DOIT社区{.UQ Q` vJ
2、系统异常关闭:DOIT社区 _JM N2U
system scn=datafile scn=start scn,stop scn null
8h/||d#A+{ CM7Q01)system scn=datafile scn=start scn,不需要介质恢复
'I`g{_02)stopscn null,需要实例恢复
E s3db I ~7P%_03、旧数据文件DOIT社区| j#Uat+O8h
system scn=datafile scn>start scn,stop scn null/notnullDOIT社区Qo|F"pV lP{.g
1)system scn=datafile scn>start scn,需要介质恢复成system scn=datafile scn=start scn
(D/Iyth3dkk b02)stopscn null,需要实例恢复,not null 不需要实例恢复DOIT社区p+i r| MU[
4、备份控制文件
`k.c:Y(o+tn0system scn=datafile scn<=start scn(当数据文件为旧的相等),stop scn notnull/nullDOIT社区`.Sx1@W'm~$B6j
1)system scn=datafile scn<=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn=current log scn(当前日志最大SCN)
5X#ko8V%f g$SYpf7F02)为保证上一次恢复没有用到log日志不被使用,必须resetlogsDOIT社区M8Z4tx M+X0Cr
5、重建noresetlogs控制文件
,IU T@E @K0控制文件中 datafile Checkpoint来自Online logs中的Current log头
0Km]+n.L0current log scn=system scn=datafile scn>=start scn,stop scn not null/null
/A'k_jQy+p(u01)current log scn=system scn=datafile scn>=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog scn(当前日志最大SCN),stop scn not null
5`c jz ^ X"AS*R02)stopscn not null 不需要实例恢复DOIT社区3T)HJz3UME-x
6、重建resetlogs控制文件
$m@*v4Ithk5E0控制文件中datafile Checkpoint来自各数据文件头。
o+m-]+_ x2GN9J1{0system scn>=datafile scn=start scn,stop scn not null/nullDOIT社区hB&lfJy _
1)system scn>=datafile scn=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start scn(当前日志最大SCN),stop scn not nullDOIT社区ZhB$J["N
2)stop notnull,因为SCN已经为redolog scn,log已经不能使用,必须resetlogs
]f|^$DU0

你可能感兴趣的:(oracle,C++,c,F#,J#)