学习oracle技术,每天学一点,每天进步一点

oracle 学习总结篇三:SCN的理解

上一篇 / 下一篇  2008-03-17 16:29:11 / 个人分类:学习

scn(system change number)  系统改变号,这个号码一直是增加不会减少的数字,

可以通过以下sql 查出当前scn 是多少

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBERITPUB个人空间^~Xf E
------------------------
$| y!|;v#^-rs4?.} P-q!yJ0                  210923

1.一。SCN与CHECKPOINT
g$]?1f|0CKPT进程在checkpoint发生时,将当时的SCN号写入数据文件头和控制文件,同时通知DBWR进程将数据块写到ITPUB个人空间 Ej:hds+S SU
数据文件。
2f+n&^,@nv{0CKPT进程也会在控制文件中记录RBA(redo block address),以标志Recovery需要从日志中哪个地方开始。

与checkpoint相关的SCN号有四个,其中三个存在控制文件中,一个存放在数据文件头中。
\H0{7h"xWF_ ecO1L0这四个分别是:
g6O@W&n+jgN!e9N01.System Checkpoint SCN
O YjuK ez*Ig-s0当checkpoint完成后,ORACLE将System Checkpoint SCN号存放在控制文件中。
k&hp@9_4?0我们可以通过下面SQL语句查询:
y7Cw \Q"Me0SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
p1~k.pf4E`+E/nw0------------------ITPUB个人空间bS#}ie8BV(f+^3as
            209006

2.Datafile Checkpoint SCN
of2T XD7q2|5a V0当checkpoint完成后,ORACLE将Datafile Checkpoint SCN号存放在控制文件中。ITPUB个人空间J%b9p6oO+j
我们可以通过下面SQL语句查询所有数据文件的Datafile Checkpoinnt SCN号。ITPUB个人空间us t{0Ju
select name,checkpoint_change# from v$datafile;

SQL> select name,checkpoint_change# from v$datafile;

NAMEITPUB个人空间9FV5B2?!W
-----------------------------------------------------------------

CHECKPOINT_CHANGE#ITPUB个人空间H{M*U|\Rn!Ik1y
------------------ITPUB个人空间.n@ |Ji(y/F#?
D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBF
9d|"p!?B+U0            209006

D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBF
e.z/l&_3{x*Y0            209006

D:\ORACLE\ORADATA\PUBTEST\INDX01.DBFITPUB个人空间c8X At'J]
            209006


.@F'Ce9H8Gp0NAMEITPUB个人空间+kwzza0_'rzs3C
-----------------------------------------------------------------

CHECKPOINT_CHANGE#
0yR j~SU9x[H0------------------
0z`LW Q,xt.G,x p0D:\ORACLE\ORADATA\PUBTEST\TOOLS01.DBF
}-Vq,{H8B0            209006

D:\ORACLE\ORADATA\PUBTEST\USERS01.DBFITPUB个人空间sscd&v~G-Wb
            209006
/x1Y V Y`&A|)A2Sg0

3.Start SCN号
S sdS(e(P?QQ0ORACLE将Start SCN号存放在数据文件头中。ITPUB个人空间k_hKe+h F(N
这个SCN用于检查数据库启动过程是否需要做media recovery.
S9y)k D(M+NkO8f0我们可以通过以下SQL语句查询:
vK(Az,A,|+cO r%M$Ts0SQL> select name,checkpoint_change# from v$datafile_header;

NAME
Y)\x#N+xN9I6f0----------------------------------------------------------------

CHECKPOINT_CHANGE#
_"vC)P]c!h XT0------------------
!ch/c"Z|j,Ve0D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBFITPUB个人空间-g,J1~"qEj/t$v*\ P
            209006

D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBFITPUB个人空间&ING$P|
            209006

D:\ORACLE\ORADATA\PUBTEST\INDX01.DBF
*UVx3_p;}}+|0            209006


nxbZ0V*i-Q8Z J9g)l0NAMEITPUB个人空间F%k(Im/Wv!U
----------------------------------------------------------------

CHECKPOINT_CHANGE#ITPUB个人空间2wE1p f5q~L6q.y
------------------ITPUB个人空间^b u9j,C?
D:\ORACLE\ORADATA\PUBTEST\TOOLS01.DBF
~2c7t#c1[m)D0            209006

D:\ORACLE\ORADATA\PUBTEST\USERS01.DBFITPUB个人空间%gHb7a.BJ'E6Y
            209006
:iuwf:B,L-P'`sy0

4.End SCN号
,RJyI[0ORACLE将End SCN号存放在控制文件中。
\T6[#] q5`K'~Lnu0这个SCN号用于检查数据库启动过程是否需要做instance recovery.
sii3o8M+\0我们可以通过以下SQL语句查询:ITPUB个人空间bCqd4~Z(y5Y#F
select name,last_change# from v$datafile;

SQL> select name,last_change# from v$datafile;

NAMEITPUB个人空间L'X6qN pM Y;yl
-------------------------------------------------------------

LAST_CHANGE#ITPUB个人空间b8Ol4U z
------------ITPUB个人空间m&J*g#f/Y$U3o
D:\ORACLE\ORADATA\PUBTEST\SYSTEM01.DBF

ITPUB个人空间'~7U9@ ^~W C
D:\ORACLE\ORADATA\PUBTEST\UNDOTBS01.DBF

ITPUB个人空间Bv] y1}k}Py
D:\ORACLE\ORADATA\PUBTEST\INDX01.DBF

 

NAME
Wr3_NS0-------------------------------------------------------------

LAST_CHANGE#
n#P"NASO~o;D? _0------------ITPUB个人空间y4S wYQ$KD:}Yqw
D:\ORACLE\ORADATA\PUBTEST\TOOLS01.DBF


Y Hbn Y%Ll`0D:\ORACLE\ORADATA\PUBTEST\USERS01.DBF

 

SQL>

在数据库正常运行的情况下,对可读写的,online的数据文件,该SCN号为NULL.

可以看到System Checkpoint SCN,Datafile Checkpoint SCN,Start SCN号
:H#cJkK6v#y0u0这三者值是一致的,这是因为checkpoint发生时同时要写这三个值保持一致

后续还有因为时间关系,下次再补充

 

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 20466
  • 日志数: 291
  • 图片数: 2
  • 建立时间: 2007-12-11
  • 更新时间: 2008-10-04

RSS订阅

Open Toolbar