没有必胜的秘籍,没有方程式遵循~~ 要赢~~只有全身心的投入!

晶晶实验九之详细论述增量检查点篇

上一篇 / 下一篇  2008-03-03 02:15:22 / 个人分类:晶晶oracle实验系列

查看( 516 ) / 评论( 63 )
晶晶实验九之详细论述增量检查点篇
P.qrKDb t0 **为什么要有检查点?
\%Z/m2O s{0`0    被修改过的块,在oracle中都被统称为脏块.所有的脏块被一个链表串起来,称做检查点队列.在buffer ITPUB个人空间J"_$H3~M/Ww-O
cache中,每一个块都有一个buffer header 简称BH,在BH中有一个ckptq项,此项目中记录了指向检查点队
Ui&p5d`0 列上一个块和下一个块的指针.如果某一个块不在检查点队列中,他的ckptq项为空.通过ckptq项oracle将ITPUB个人空间 CjZ_:l7Xs[m
所有的脏块串成了一个双向链表.这个双向链表就是检查点队列了.
!d;^ iW'X)ze/~6q q G0 1,只有脏块才会在检查点队列中,非脏块的ckptq为空.
x\S `-Y\0 2,当块首次被更改时,块会立即被加进检查点队列.如果检查点队列中的脏块再次被修改,并不会改变其在
6^?6eG+OR0 检查点队列中的位置.
9IsiV9Sek&j z0 3,检查点队列中脏块的排列顺序:根据第2点,所有脏块按照首次被更改的时间的顺序排列.更准确点说:按
@ l/_R/mXh0 照块的lrba排列.ITPUB个人空间#M,|1s!u3t^tXv
**什么是rba?lrba?hrba?
L$yZ$aLy"w6|0   rba就是重做块地址,比如说,用户发出了一条update命令,更新了块A,块A现在变成了脏块,oracle会为他
A"uL i y5H[K8a]0 生成一条重做记录.这条重做记录在重做日志文件中的位置就是rba(redo block address).过了一会儿,假
Q_,U+x6d#B1T#qw0 如:块A依然还是脏块,此时.用户又发出一条更新块A的命令,这又会生成一条重做记录.第一条更新命令对
t%p.E GO0 应的重做记录的rba被称为块A的lrba(low rba),第二条更新命令对应的rba,被称为hrba(high rba).
'O(V},~al$w0uW0 其实,按照lrba来排列,就是按照块首次被修改的顺序来排列.
eG6x6p9GE0   下面说说DBWR写脏块的方式,有了检查点队列之后,脏块按照首次变脏的时间顺序排列,DBWR每到一定的ITPUB个人空间9b y,L&CpiF
时机,就会被触发,沿着检查点队列的顺序刷新脏块,具体在oracle中有几个参数用来确定检查点队列的长ITPUB个人空间w"L [ _O5v!\3c"P
度.另有一个CKPT进程,会监控着检查点队列的长度,当检查点队列的长度达到一定限制时,CKPT会通知DBWRITPUB个人空间%xdxpQ5l hY
写脏块.CKPT会根据参数的设置和I/O的速度以及繁忙程度,计算出来一个Target rba(目标rba),DBWR会沿
0@W'`h#m vo0 着检查点队列,将所有Target rba之前的脏块刷新到磁盘.当CKPT通知完DBWR Target rba后,CKPT的任务就ITPUB个人空间xY|v#O1\9B
结束了.他并不会等待DBWR写完所有的Target rba之前的脏块.通知DBWR写脏块,这是CKPT的任务之一,CKPT
a!fk-c3_Q*r Qh0 另有一个任务,就是每3秒,检测一次DBWR的写进度.检查点队列最前面的块被称为检查点位置.DBWR是沿着ITPUB个人空间yhMp Dg `'g
检查点队列写脏块的,CKPT每3秒钟查看一下DBWR沿检查点队列写到了哪里,并且将这个位置设置为检查点ITPUB个人空间0THhG9^[,i
位置.也就是说检查点位置之前的块,都是已被DBWR刷新到磁盘上的块.这个3秒一次检查DBWR进度的工作,ITPUB个人空间~]F&X{ r8X\#G%i0w
也是CKPT的一个重要的任务.CKPT每3秒一次将检查点位置记录进控制文件,当然同时被记录进控制文件的
imN*c,Hfj&_0[0 还有'心跳'等其他信息.CKPT每3秒一次的工作和CKPT定期触发DBWR,这两项操作合一起被称为--增量检查ITPUB个人空间M?lx1ak
点.ITPUB个人空间$wp\(vBa _
下面的就是CKPT每3秒写进控制文件的信息ITPUB个人空间R/k:R!~IF#`m G
SQL> alter session set events 'immediate trace name controlf level 8';
1aAhrSEx0 会话已更改。
;pQC$f#?ev Q4P0 具体内容如下:
!JP8` o y#Kx~3]0 ***************************************************************************ITPUB个人空间+w3p5V4fP
CHECKPOINT PROGRESS RECORDS
V2DvZ!F$L:Ta0 ***************************************************************************
n IC8@ |0 (size = 8180, compat size = 8180, section max = 11, section in-use = 0,
!ca,U3AD0   last-recid= 0, old-recno = 0, last-recno = 0)ITPUB个人空间B#r I/L*jb:~:aS
(extent = 1, blkno = 2, numrecs = 11)
;@}!u] c fK0 THREAD #1 - status:0x2 flags:0x0 dirty:89ITPUB个人空间-g*X)H'}NCN;WS1qT4z
low cache rba0x2ad.908.0)[检查点位置] on disk rba0x2ad.d2f.0)[最后一条重做记录的rba]ITPUB个人空间(ac{g&{7p1V o
on disk scn: 0x0000.00237745 03/02/2008 15:03:44[最后一条重做记录的scn]
3~iNDO0 resetlogs scn: 0x0000.0008297b 08/27/2007 09:51:58ITPUB个人空间[/V3mm[-J7A
heartbeat: 648318959[心跳] mount id: 1201288562ITPUB个人空间1pJWnP3@l$}N
...
j ~;xC%x rym0 ...
@|"z+a]X0 这里面的大多数信息可以通过x$kcccp中看到.
%_"q;F3| W5e0 SQL> select CPDRT,CPLRBA_SEQ||'.'||CPLRBA_BNO||'.'||CPLRBA_BOF "Low ITPUB个人空间 k%YGdzY)X8Qs
RBA",CPODR_SEQ||'.'||CPODR_BNO||'.'||CPODR_BOF "On disk RBA",CPODS,CPODT,CPHBT from x$kcccp;ITPUB个人空间i#P'Q{5V5ZB
     CPDRT Low RBA         On disk RBA     CPODS            CPODT                     CPHBT
Z'yRri y Am0 ---------- --------------- --------------- ---------------- -------------------- ----------ITPUB个人空间d'VV&G"d
        35 686.124.0       686.220.0       2325376          03/02/2008 15:18:54   648319278ITPUB个人空间W+Y] n a Q0aN
说明:
hESWa0      CPDRT列是检查点队列中的脏块数目.
8y G'[e t0      CPODS列是on disk rba的scnITPUB个人空间rIS9I+` i2u9e*b
     CPODT列是on disk rba的时间戳ITPUB个人空间0UMro MGa
     CPHBT列是心跳ITPUB个人空间2k8U+Lb|(MG
检查点位置是是个rba,他指向着重做日志文件中的某个重做记录.在此位置前的重做记录,其对应的信息已
|bFe [D;h0 经被写进了数据文件,在此位置后的重做记录,所对应的是数据块,有可能还在内存中.如果发生了实例崩溃
&jOa/S QE&F@0 ,只需要在日志文件中找到检查点位置,从此处开始应用所有的重做日志文件,就完成了前滚操作.实例崩溃
o*TZW/^g.a i/{Y0 后,再次启动数据库,oracle会到控制文件中读取low cache rba,这就是检查点位置.从此处开始应用重做
9b8l/M wf0 信息,应用到on disk rba处.on disk rba是磁盘中重做日志文件的最后一条重做记录的rba.  如果某条命
mP7NXHa1X.N"J3S"M0 令的重做记录的rba高于on disk rba,那说明此重做记录还没有被写进日志文件中,崩溃发生时,他是不ITPUB个人空间9n*^^m8s.i[!\+Y
可能被恢复的.on disk rba是oracle前滚操作的终点.on disk 顾名思义 就是'在磁盘上'的意思.比这个ITPUB个人空间)`2grH9A#N Q} M
更高的rba,都在log buffer中,还没有来的急被写进磁盘中的日志文件.所以是不能被用于恢复的.ITPUB个人空间!fy1{|1Fy{~

ZfQ9z[*u@ q9u-w$Ut0 下面假设一个实例恢复的例子:ITPUB个人空间jx,b)lPSZ7O
Table表每行2000个字节,块大小8K,每块可容纳table3行,按如下发布7条更新命令:ITPUB个人空间Q5ym/I,X"c.\9D
Update table set name=low(name) where id=1;
#Ozo3{{*u{o.x0 ------
1ITPUB个人空间Bp\!r Dg9@)T

TZW0_H2OU$N0 RBA
692.2998.10

]B_#A OY m0G.I} C jQ0 Update table set name=low(name) where id=2;
qX"[v2Qm0 ------
1
PiR;Lo,s'A awh9e0 RBA
692.3015.10
ITPUB个人空间g3zn:`vA Bz9~
Update table set name=low(name) where id=4;
ak!zGH?2f(c0 ------
2ITPUB个人空间Jv)Kyks8J!{
RBA
692.3024.10
ITPUB个人空间ej5?gv8l
Update table set name=low(name) where id=7;
"jac t1d9F*k}/l:LD!Q0 ------
3
q yF&wsG0 RBA
692.3033.10

!V.HQ`%ssw0 Update table set name=low(name) where id=3;ITPUB个人空间y_S5Bn?f-O A'I
------
1
"|hNV$V*yZk0J0 RBA
692.3102.10
ITPUB个人空间Fw3Y Xi `np&xE-IH
Update table set name=low(name) where id=10;ITPUB个人空间bK.zp M
------
4
:t4E5^8i O(s0 RBA
692.3127.10
ITPUB个人空间0M(A)d3Xm S(IN.pt
Update table set name=low(name) where id=13;
qBK7L:V;n*R0z0 ------
5
*Nd}3WaK0 RBA
692.3136.10
ITPUB个人空间&r1`U%yYv}
ITPUB个人空间%r G9APoO
上面七条更新命令后,每块状态为:

1号块

ITPUB个人空间Qn h0r F^

2号块

ITPUB个人空间*_8af^;Hn e

3号块


LYI0oia0

4号块


9~}9J!Js.J |},y0

5号块

ITPUB个人空间Q@A;R*GL2C"U I
Lrba692.2998.10ITPUB个人空间4u&n u;R]6VX%g(x
Hrba692.3102.10
m-^G:M z qp5h0
Lrba692.3024.10ITPUB个人空间n f;vx j ikP
Hrba692.3024.10
)_8?1_k;Fv&r0
Lrba692.3033.10ITPUB个人空间f#fN0Wl|5p bF
Hrba692.3033.10
s0Rc^@xY0
Lrba692.3127.10ITPUB个人空间3?P$F'TrZ`k&X;]
Hrba692.3127.10
6[7` R'QV%F0
Lrba692.3136.10
WA3O&|"tB;}i'ZK0 Hrba692.3136.10
)dO$W:O1x$A)KS1D0
Lrba就是块首次变脏时的RBA,而Hrba,是最后一次改变块中信息,所对应的重做记录的RBA1号块外被修改两次,LrbaHrba不同。25号块只被修改一次,LrbaHrba相同。
'H6\'YA`},k.t#[0 ITPUB个人空间+Z/AIX-e,w8VU3[
相应的重做记录有:
RBA692.2998.10(第一条更新命令对应的重做记录)
回滚段头重做信息
R-j1xhZf+x#F0
回滚段块重做信息
3h#\ Pkc,~ G*{.d0
1号块第1行重做信息
A)D,GU2F9aB t'}7o0
(下面的重做记录中省略具体的信息)
K%u9d%W |Qy0
RBA692.3015.10 (第二条更新命令对应的重做记录)ITPUB个人空间 S7u9F$V$J?j
RBA692.3024.10 (第三条更新命令对应的重做记录)
-\2s%n"V*h0q0
RBA692.3033.10 (第四条更新命令对应的重做记录)
)j{f.in)C)?LP0l4~0
RBA692.3102.10 (第五条更新命令对应的重做记录)ITPUB个人空间Y{i#y1Cvy#B(Y
RBA692.3127.10 (第六条更新命令对应的重做记录)
%m M3?Cw,\+_f0
RBA692.3136.10 (第七条更新命令对应的重做记录)
H$D0c Ks*k3a$S0

'XL9RY0_$I*}"s0 假如此时,1号块和2号块已经变得不脏,345号块仍是脏块,所有的脏块依Lrba顺序按列为检查点队列,其中检查点队列头(此处是3号块)的Lrba就是检查点位置,此处为692.3033.10。这个值被记录在控制文件中。如果发生了实例崩溃,Oracle将从控制文件中取出692.3033.10,到692号重做日志中,找到第3033块,从此处开始,应用所有的重做日志,直到重做日志文件的最未尾。而重做日志文件的最未尾重做记录的RBA,又叫On disk rba。从检查点位置处,应用重做记录到On disk rba处,这个过程就是前滚。ITPUB个人空间`W$B-?mv
ITPUB个人空间?4o j-h'g{4ut
如下几个参数可以用来限制检查点队列的长度:
$O? w^#n:~0 1,fast_start_io_target
W&X+x?%ot!}+C0   该参数用于表示数据库发生Instance Recovery 的时候需要产生的IO总数,他通过v$filestat的
ZRQ5{6VFN0 AVGIOTIM来估算的.比如我们一个数据库发生Instance Crash后需要在10分钟内恢复完毕,假定OS的IO每秒ITPUB个人空间%[X(\v$f)vpl
为500个,那么这个数据库发生Instance Recovery的时候大概产生500*10*60=30,000次IO,也就是我们将可ITPUB个人空间#ws ]_~i
以把fast_start_io_target设置为30000.ITPUB个人空间H6l|~A p5b k2d)q"A
2,fast_start_mttr_targetITPUB个人空间`-U [+Z8Ybx.R
  我们从上面可以看到fast_start_io_target来估算检查点位置比较麻烦.oracle为了简化这个概念,从9IITPUB个人空间ke*S @ k4P5K(Q8C,i
开始引入了fast_start_mttr_target这么一个参数,用于表示数据库发生Instance Recovery的时间.以秒ITPUB个人空间 \|/h5H$g0t
为单位,这个参数我们从字面上也比较好理解,其中的mttr是mean time to recovery的简写,如上例中的情ITPUB个人空间et:F!wQ:Rta6^.F
况我们可以将fast_start_mttr_target设置为600.当设置了fast_start_mttr_targetITPUB个人空间Ny[qZ(|8j7s'r
后,fast_start_io_target这个参数将不再生效,从9I后fast_start_io_target这个参数被oracle废除了.
I_X?+E0 3,log_checkpoint_timeoutITPUB个人空间(m*U-A~A
  该参数用于表示检查点位置和重做日志尾之间的时间间隔,以秒为单位,默认情况下是1800秒,这个参数ITPUB个人空间&H)~ZhR9wu
实际上表示了脏块保持脏状态的最长时间.如果它被定为1800秒,没有脏块保持1800秒后,还是为脏.
Cc { S `;m0 设log_checkpoint_timeout 为1800秒ITPUB个人空间1e;P)sU sg

%t"g3B!M@#L\A E0 ITPUB个人空间Z/WZ Q7N G-qw XN

!up6yfc"V0图1.gif

+a*K+g(}"uR a0
H7|.h"^2J#x0   相比fast_start_mttr_target,它也是时间,但它的时间值表示完成恢复操作所需要的时间,即从最后的
U i4@ ?;G-L!qs0 检查点位置开始,应用所有日志直到日志末尾所需要的时间.而本参数表示从最后的检查点位置开始,到日
k)?}7B7B*{E0 志末尾经过的时间.
N ^7~5R%@+o/`y0   在标准版中,本参数的最小值是900.ITPUB个人空间uq.`/G _4t,g@&g
4,log_checkpoint_interval
.{'zHZ6Y4LQ}0   该参数是表示检查点位置和重做日志末尾的块的数量.以OS表示.
:~$G7F%XyN(u+M,O1^.|0 5,90% OF SMALLEST REDO LOG
4?4|9@%n'M$oE/M6s0   oracle内部事实上还将重做日志末尾前面90%的位置设为检查点位置,这不是一个参数,这是oracle内部
wWe,s)H/UK0 规定的一个触发增量检查点的事件.ITPUB个人空间tw }QA,wH5H"U
  上面这些条件,严格来说,并不是控制检查点什么时候发生,而是控制检查点队列中可以有多少个块.在前
(O*c%pu:V_jHZ0 4个参数中,9I中oracle推荐使用fast_start_mttr_target替代第一个 fast_start_io_target.      ITPUB个人空间;`*UD+dF$y
fast_start_mttr_target,log_checkpoint_timeout,log_checkpoint_interval和90% OF SMALLEST REDO ITPUB个人空间Z)z%YB"a?7o
LOG 可以同时使用.考虑这样一种情况,如果上面的这些触发增量检查点的参数都被设置,并且在某一时刻,ITPUB个人空间)~ o7NGFI(]#h
这几个参数一起被触发,但他们指定的Target RBA位置可能不尽相同,oracle将离日志末尾最近的那个位置
(U}V n.Flmv OW0 认为检查点位置,如下图所示:ITPUB个人空间5NoV v&B&^
ITPUB个人空间9iF jL a_7Y uE

K5n7O?7T$d&Z0
%cf q&?0}7F%fJ0X:YV0ITPUB个人空间:J T)yrN+w
图2.gif

Mb`:LV+i y0 ITPUB个人空间I6X6Y"u:g
  在这种情况下,将会把log_checkpoint_interval的位置定为下一增量检查点的Target RBA.
a)g2d}SV:ZAW"]q(o0 在9I后,对检查点频率,建议只设置fast_start_mttr_target.根据需要,也可以通过设置
+M$nt#Q4b0 log_checkpoint_timeout,设置一个脏块保持脏状态的最大时间,而其他两个参数ITPUB个人空间6`Lk(q"kDDX
fast_start_io_target,log_checkpoint_interval建议不再使用.ITPUB个人空间 ?z{y1?oy;Ru
  oracle写脏块并不一定都从检查点队列中写.在v$sysstat视图中,有两项关于物理写的资料.physical
?5tE.D?K`.B0 writes 和physical writes non checkpoint.也就是说,oracle将对脏块的写分为两类.一类是通过检查点ITPUB个人空间{2B-av6I(^[rF!v
的写,一类是不通过检查点的写.我把它叫做检查点无关写.比如说:当表空间脱机时,会把隶属于该表空间
1F+[ Z#QBb;Y`o(a0 的所有脏块都写进数据文件,但是不会发生检查点,这个写就是检查点无关写. 还有其他的情况会发生检查ITPUB个人空间_9@^ _J
点无关写,我会在以后的实验中介绍.
*w.^B2B!L)i1^%D_0 一个小实验,证明下检查点无关写:为了避免检查点对实验的影响,将检查点的发生频率设置的低一些.
8A}Cq7A%}r0 命令如下:ITPUB个人空间v0Qe(P,b
alter system set fast_start_mttr_target=0;
4E/m \9? f0 alter system set log_checkpoint_timeout=3600;ITPUB个人空间/h ~ug1J"C)D b5^ je
步骤一:在实验前先观察下当前物理写的值:
&IS2K;?8a+J1[\} ^0 SQL> select * from v$sysstat where name='physical writes non checkpoint';ITPUB个人空间#xJL9x"yAs*X!t]
STATISTIC# NAME                                CLASS      VALUE    STAT_ID
cM+s#@1v{&Q0 ---------- ------------------------------ ---------- ---------- ----------ITPUB个人空间fj,Bj Ck5},}Lxb
       67 physical writes non checkpoint          8       3738 2602029796ITPUB个人空间+p{!\)g,`y[
步骤二:随便开始一个事务ITPUB个人空间u#D'op9I*bam*\
SQL> update jj_10 set name='aa' where id=20;
H.Klg7] wo0 已更新 1 行。
'Ad2Vn/OE}5u@0 步骤三:把步骤二中的表脱机:ITPUB个人空间)r['\\1z/i)vM'Q'Ky m
SQL> alter tablespace jj_ts_1 offline;
3M[l K7g0 表空间已更改。
t3W7y&@&hFbN${0 步骤四:此时再去查看资料视图:
Y8A*{!jK0 SQL> select * from v$sysstat where name='physical writes non checkpoint';
M(hn@$Bn0 STATISTIC# NAME                                CLASS      VALUE    STAT_ID
:[CgH;u IN6E,e4}-~0 ---------- ------------------------------ ---------- ---------- ----------
coz w;@w^0         67 physical writes non checkpoint          8       3759 2602029796ITPUB个人空间Ag saO0D
**比较后发现,检查点无关写从3738增加到3759.ITPUB个人空间O f!s-e"QN
为了观察到通过检查点队列的写,把检查点频率调的高一点:ITPUB个人空间r"H} _+i*E?
alter system set log_checkpoint_timeout=10;
-p-j I_P8e X7w(?b0 步骤一:
+nc5{)?6w0 SQL> select * from v$sysstat where name='physical writes' or name='physical writes non
cu3J"H8Fp(`xd,o UAKH0 checkpoint';
pb$uT u#F%z0 STATISTIC# NAME                                CLASS      VALUE    STAT_ID
x-`*xbq+V7l-y0 ---------- ------------------------------ ---------- ---------- ----------ITPUB个人空间&KUA TG8s"O
        62 physical writes                         8       5822 1190468109ITPUB个人空间{V'[{c I4O
        67 physical writes non checkpoint          8       3829 2602029796
7[ ^CD$X(i2S0 用physical writes减去physical writes non checkpoint所得到的结果,将近似于通过检查点队列的写.
1oA(S'y.KN0| ~0 为什么说近似于呢?因为oracle内部会有很多写,比如说控制文件的写操作,也会被记录进physical writes ITPUB个人空间[:`3?2T`-{-T
资料.ITPUB个人空间Q`aOncNM6oZ(]
步骤二:发布更新命令ITPUB个人空间U0s2O9jK JX
SQL> update jj_10 set name='aa' where id=20;
%tOs m+I~/I.@0 已更新 1 行。
$L:KyAvJf2{'C0 步骤三:观察块是否变的不脏.ITPUB个人空间qU'b&c R4Q_;}s
SQL> select dirty,status from v$bh where file#=7 and block#=406 and status='xcur';ITPUB个人空间 _D8i-Y0K4K5X y j
D STATUSITPUB个人空间%Mn!{Gu2{h
- -------
B]5Ztx0 N xcurITPUB个人空间iKz!U-Q2[
步骤四:在块变的不脏后,马上查看资料视图.
[#y4q;p,fT&{0 SQL> select * from v$sysstat where name='physical writes' or name='physical writes non
v7^ q&H+M-e0 checkpoint';ITPUB个人空间 `b g:j [
STATISTIC# NAME                                CLASS      VALUE    STAT_ID
F)Mr&u(tF|Otj d0 ---------- ------------------------------ ---------- ---------- ----------ITPUB个人空间lCq{.J,}c6W#i
        62 physical writes                         8       5851 1190468109
B ?rJ1G.@!z0         67 physical writes non checkpoint          8       3832 2602029796ITPUB个人空间pJm3Y p/L5J
**可以看到检查点无关写多了3个字节,这3个字节和我们的更新声明没有关系.我们的更新声明更新了几十
,ngWxWOn f0 个字节.这3个字节应该是属于oracle内部的一些写操作,我们的更新声明,所产生的脏块,是通过检查点队ITPUB个人空间 av5T o'`+W Lg
列写出的.physical writes 多了很多.ITPUB个人空间z8Mb+fS ?+F K
ITPUB个人空间c;j rU T8SWa*^F
[ 本帖最后由 晶晶小妹 于 2008-3-3 02:17 编辑 ]

TAG:

NinGoo@Itpub NinGoo 发布于2008-03-03 02:58:47
大半夜的沙发啊
freeka发布于2008-03-03 07:11:12
午夜凌晨大课堂
haorman zuohao_lu 发布于2008-03-03 08:04:06
学习... l#\NH%e
h

up
烟囱的个人空间 烟囱 发布于2008-03-03 08:06:06
收藏
"Q"szH+joracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.net
0gPW$h0^}Kf(E        ].t0P
I_ITPUB个人空间
晶晶2点多了还没有休息啊.
upW0z;? }g.sspace.itpub.net0]{;C:SD"liGL
好文~~~
jolly10的个人空间 jolly10 发布于2008-03-03 08:29:32
简洁明了,真是好文。
DBA 足迹 jimhou 发布于2008-03-03 08:29:50
good
dlplayers发布于2008-03-03 08:48:20
学习了
cyt2005发布于2008-03-03 08:54:23
打开论坛头一篇。。。
SX(qG;U/Fq.u+t;J好勤奋啊
shengang34发布于2008-03-03 09:22:50
谁给个上周专访的链接?咋找不到了?
randylin2006发布于2008-03-03 09:25:37
支持一下
一亩三分西瓜地 BTxigua 发布于2008-03-03 10:51:35
哎,可怜的孩子,你咋不听我的劝告呢。
tanfufa发布于2008-03-03 10:54:18
好文章
八二八空间 linjia828 发布于2008-03-03 11:07:14
呵呵 顶下 细读先
cmsa发布于2008-03-03 11:17:17
慢慢看。。20岁的mm厉害
fikong2005的个人空间 fikong2005 发布于2008-03-03 11:20:33
天道酬勤啊,呵呵!
bartfj的个人空间 bartfj 发布于2008-03-03 11:22:40
几天没来,都已经到九了,
carcase发布于2008-03-03 11:23:29
晶晶妹妹睡不着,NinGoo 你也睡不着???
R3N] V/ds,i8t,l哈哈哈哈哈
晶晶小妹的个人空间 晶晶小妹 发布于2008-03-03 12:38:26

QUOTE:

原帖由 shengang34 于 2008-3-3 09:22 发表 ITPUB个人空间6~9yIs(uK
谁给个上周专访的链接?咋找不到了?
,`:?'W%g u
SE

k~6@]8\W Y
"N0^znX        C:@7kkHspace.itpub.nethttp://tech.it168.com/zt/jinjinchat/index.html
Mr8T1sT8J
m*[q8V
vG"`M$k
好象视频还没做好呢!oracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.net'TN/nWog
^_^
蒙昭良的个人空间 mengzhaoliang 发布于2008-03-03 12:47:43
晶晶,你不会是oracle的讲师吧?
蒙昭良的个人空间 mengzhaoliang 发布于2008-03-03 13:08:51
请问晶晶,
q'fu!q2Goracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.netoracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.netKBXk@?\-S y
"在BH中有一个ckptq项"中的"ckptq"是不是check point 点啊  .  想知道"ckptq"的英文全称
晶晶小妹的个人空间 晶晶小妹 发布于2008-03-03 13:20:41

QUOTE:

原帖由 mengzhaoliang 于 2008-3-3 13:08 发表

a#^k IS5X mJITPUB个人空间
请问晶晶,
U0KfQ"W|Q*V@V5c0NMs
"在BH中有一个ckptq项"中的"ckptq"是不是check point 点啊  .  想知道"ckptq"的英文全称
wt/VDir

u6ugBf5z
;M        Z/]tH onxt `q,是队列 queue的简写,Ckptq 就是check point queue ,即检查点队列的意思。
U0^8K ^)C$SD        U.}

\5HA;Kx?nspace.itpub.net
[ 本帖最后由 晶晶小妹 于 2008-3-3 13:22 编辑 ]
Alienovo的个人空间 Alienovo 发布于2008-03-03 13:31:48
这么快就到九了
likaiabc的个人空间 likaiabc 发布于2008-03-03 13:39:12
半夜不睡觉。时间长了,对皮肤不好哦。
doubao1981发布于2008-03-03 13:42:37
有没有对象啊
呵呵
蒙昭良的个人空间 mengzhaoliang 发布于2008-03-03 14:01:19

QUOTE:

原帖由 晶晶小妹 于 2008-3-3 13:20 发表 oracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.net+]1m+iCp
J,\x8^

Z)v d,t@+vm0@0ZpB
_,F(g;n'T
O


~%VoSH;D'R        |q,是队列 queue的简写,Ckptq 就是check point queue ,即检查点队列的意思。
$fc2O G+D0hbpo

:t,xzr]+sGoracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.netspace.itpub.net0Eh P V0b@X5v
太快了,佩服晶晶.  看你的好贴,刚看到一半,有些你贴出来的信息不知道从哪找,是从控制文件中找的吗?/C@,m T x&{l
space.itpub.net
`s:PQa*tW

我很想一步一步按照你的步骤测试一次.  那样可以明白整个流程.
%Fl3C/gD:vGITPUB个人空间

i4Q#\p]:MYR
不过你写得很好了,先感谢晶晶小妹为我们付出那么大牺牲.
晶晶小妹的个人空间 晶晶小妹 发布于2008-03-03 15:39:40
我帖出来的信息好象都标明出处了吧??ITPUB个人空间:f-rt[]&p
S6H([ D

你不知道哪些贴出来好吗?
freshgirls发布于2008-03-03 16:15:56

QUOTE:

原帖由 晶晶小妹 于 2008-3-3 15:39 发表
R9_x'zI3de)r$l我帖出来的信息好象都标明出处了吧??
TF ~3I)~vx你不知道哪些贴出来好吗?
-~WX'mJu
mKc Jl@B

Y]J-^)cspace.itpub.net
   说说完全检查点和增量检查点的区别把,觉得2者功能重叠
wa0362发布于2008-03-03 16:21:18
我现在比较关心那天访谈的奖品
1d0V8ZN}space.itpub.net~uYcTf
怎么发了email之后连个回信都没有啊...
stronghearted的个人空间 stronghearted 发布于2008-03-03 17:26:18
测试的思路还是挺不错的。
晶晶小妹的个人空间 晶晶小妹 发布于2008-03-03 17:56:41

QUOTE:

原帖由 freshgirls 于 2008-3-3 16:15 发表 ;o7V9Z[G        Y
space.itpub.net'QBDi,W"Kt

9r}6oTE)L+@9o;z+b5k1qn'b~pW
   说说完全检查点和增量检查点的区别把,觉得2者功能重叠
In^!J+u6C*nITPUB个人空间
9kOD _~@
s V:ze
下一篇就是,嘿嘿.
#\.W;E+a:Koracle,db2,sqlserver,sybase,mysql,erp,scm,sap,java,.net因为这一篇东西太多,所以就只讲了增量检查点.一会就发..完全检查点的.i`@1Jt9?N
^_^
我来说两句

(可选)

日历

« 2008-10-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 35097
  • 日志数: 31
  • 图片数: 4
  • 建立时间: 2008-02-15
  • 更新时间: 2008-05-29

RSS订阅

Open Toolbar