db2 多节点备份和恢复过程

提要 通过举例详细说明了恢复 DB2 分区 数据库增量 备份映象文件的具体实现步骤。 ITPUB个人空间{(kQ/6Oy(o:?
正文 对于 DB2 分区数据库来说,其非增量备份映象的恢复操作是可以通过仅发出两条恢复命令来完成的,即先恢复编目分区的备份,再恢复其它分区的备份。但如果要恢复分区数据库的增量备份映象,由于要对恢复的增量备份映象的时间戳记使用 db2ckrst 这一检测增量备份映象恢复顺序的实用程序进行检测,以获取恢复操作的命令序列,而各分区的增量备份映象的时间戳记又不可能完全相同,因此对于编目分区外的其它分区,不可能再通过一条命令来恢复这些分区的增量备份映象了,而必须针对每个分区,分别使用 db2ckrst 获取恢复命令的操作序列,并根据所取得的命令分分区进行恢复操作。 ITPUB个人空间$E`*U#v8TvTv2z#G

%r*V"z3AJS2i?0这里就以一个具有 4 个节点的分区数据库 SAMPLE 为例,说明对于 DB2 分区数据库增量备份进行恢复操作的具体步骤。 ITPUB个人空间2YRt3G#a,`

/JaCE-e8~!}[W0一. DB2 分区数据库的增量备份操作: ITPUB个人空间o/D9@u_

K0^ R*K5h/iF01. 检查并修改数据库参数设置:
&^6E|rX*a0 ITPUB个人空间To EZo
数据库可进行增量备份的一个必要条件是要启用 TRACKMOD 这一数据库参数。仅当 TRACKMOD 被设为 ON 时才可执行对数据库进行增量备份的操作。为检测该参数当前的状态,可使用:
3h+bu-ZK0 ITPUB个人空间(q u3STU!o
db2_all "db2 get db cfg for sample" |grep "TRACKMOD" --(Unix 平台) ITPUB个人空间.G_Nh/b)V�W#M
db2_all "db2 get db cfg for sample" |find /i "TRACKMOD" --(Windows 平台)
*iv$b�^g+N0
gG&jVge0该命令将返回所有分区上 TRACKMOD 的设置。如果输出显示不是所有分区上的设置都为 ON 这一打开状态,可用下述命令修改此设置为打开状态(假设要修改的分区号为 3):
U${h:TH(f:y${0 ITPUB个人空间 lkF!yUF1w Kc+^
db2_all "<<+3< db2 update db cfg for sample using trackmod on" ITPUB个人空间9^S8/[p!q,K-f] f

9xN1k&T+oF7qw0如果整个数据库的 TRACKMODE 参数均未打开,可使用如下命令对所有分区进行修改:
V K8~F U2_0
_(V l A+p-ZP0db2_all "db2 update db cfg for sample using trackmod on" ITPUB个人空间`~b7kHE~(sG'S
ITPUB个人空间3q R[|;El

uVU1X_(W t7@02. 对分区数据库的脱机全备份操作: ITPUB个人空间3u$`*cB)rz$E&v
ITPUB个人空间 O?-sa,r-w }ew v#|
当修改了参数的设置后,首先需要对分区数据库进行一次完整的脱机全备份操作,后续的增量备份映象都是建立在这一备份映象的基础之上的。备份的命令为(这里未使用分区并行操作的备份方式): ITPUB个人空间3g7^wi.q0}_n ^:}

&r } m#JDBT0db2_all "db2 backup db sample"
|dggSS0 ITPUB个人空间1F["~2t NW&D
备份操作将在各个分区上被执行,备份结束后,在放置备份映象的路径下(此处为当前路径)使用命令 ls,可查看到上述命令产生的,分别对应于四个分区的备份映象文件,如:
)c0cS[ A'l O0 ITPUB个人空间+Z&uz*Q;I-A:PK2K
SAMPLE.0.db2v8eee.NODE0000.CATN0000.20040429142824.001
)k+Ycqb9E,c0SAMPLE.0.db2v8eee.NODE0001.CATN0000.20040429142843.001 ITPUB个人空间0^ elnyv(vP)I
SAMPLE.0.db2v8eee.NODE0002.CATN0000.20040429142857.001
Y&ix,Cn S#ls0SAMPLE.0.db2v8eee.NODE0003.CATN0000.20040429142912.001
Y d3~$AF[l0
0xk}�s-N_z0从上述文件名中包含的时间戳记可以看到,各分区上完成备份操作的时间是不同的。 ITPUB个人空间!x k'ob~
ITPUB个人空间+D~g H of
3. 对分区数据库的增量备份操作:
U g9H"Tr'_Qwr0 ITPUB个人空间t _!P3kr)k
在完成了分区数据库的一次全备份操作的前提下,用户可根据数据库的使用情况,考虑对分区数据库进行多次增量备份操作(这里仅以一次非并行方式的增量备份为例进行说明),其命令为: ITPUB个人空间3| _ `C#r ?

UoE i4_ @TR}0db2_all "db2 backup db sample incremental" ITPUB个人空间2q-c:]k,z#?$v5[3Ae)IF

$f F5iI*a#e"d3x0命令执行完成后可得到类似如下的,相应于各个分区的四个增量备份映象文件:
IZ!Gw|0 ITPUB个人空间 `ovuu
SAMPLE.0.db2v8eee.NODE0000.CATN0000.20040429143406.001 ITPUB个人空间X9}s%Fl;/!k
SAMPLE.0.db2v8eee.NODE0001.CATN0000.20040429143419.001 ITPUB个人空间I;^^/?/
SAMPLE.0.db2v8eee.NODE0002.CATN0000.20040429143433.001 ITPUB个人空间$F:F%KJ(w7j�c&zGM
SAMPLE.0.db2v8eee.NODE0003.CATN0000.20040429143447.001 ITPUB个人空间:{;Fp8aAA

.R5| r/W0到此步骤为止,就完成了对 DB2 分区数据库的增量备份操作,下面将介绍如何在必要时恢复这些增量备份映象。 ITPUB个人空间Z%s/q;a4{

a D ]�Qm H0 ITPUB个人空间`"rE^4F8E%q9C;g
二. DB2 分区数据库增量备份的恢复操作: ITPUB个人空间 PjR G7h5[*r3I ]z

5o4D0R3IkM6EL&m/G|0用户创建的增量备份映象,会因备份操作的时间点的不同,而产生多套备份映象。为了恢复某个时间点的分区数据库增量备份映象,用户必须保证在一次恢复操作中使用的各分区的增量备份映象均为同一次备份操作所产生的。 ITPUB个人空间 w)TSQ6I'_^4Fw%t

[ W*ipD O0由于分区数据库的所有编目表都放置在编目分区中,DB2 在备份或恢复时要求独占该分区,因此在对其它分区进行恢复操作之前,应首先完成该分区的增量备份的恢复操作,然后再依次对其它节点进行恢复。这里假设我们要恢复上述步骤 3. 中产生的一套增量备份映象文件。
:Q%I%YR2^D e0 ITPUB个人空间d,U[ll-?eW!J
1. 在编目分区上进行增量备份的恢复步骤: ITPUB个人空间:p u)x7d.e

O4vv T4y8bq-`9Dj01)获取编目分区号: ITPUB个人空间oU8g~:_xs(F

"^7C,[s vm0用户可利用如下命令确定分区数据库中哪个分区为编目分区,以便首先完成该分区的恢复操作: ITPUB个人空间4@~NcO�L0r4k5k)c

A?E2?1Dr"Z*N/e0db2 list db directory
`k�aV t1xz!q0
3h,Mo(BI Mg0Database 7 entry: ITPUB个人空间9A'Z,b'ad&f-S+H f(ho
ITPUB个人空间�u!cC$X.~lIrb)k7a
Database alias = SAMPLE
9H'D{e9Q}R`6`0Database name = SAMPLE ITPUB个人空间_9L5e$P~z
Local database directory = /home/public/db2v8eee ITPUB个人空间Dnb,R|r7v%I/b,`
Comment =
4@ k0y"@x6`0Directory entry type = Indirect ITPUB个人空间 e2Awx%m,X
Catalog database partition number = 0
vN{%|9tB+~7p ko]0
$xVe6i(^7Wwa0从命令输出的最后一行“ Catalog database partition number(目录数据库分区号)”中可知编目分区号为 0。
+p8` yN4HY0
w;SQ w!@SzQ W02)获取恢复操作的命令序列:
V7d"rgE)UR W*/f0
&F8Y(Y` I9uO-q]0与单分区增量备份的恢复步骤相同,用户首先需要使用 db2ckrst 检测增量备份映象恢复操作的命令序列。从步骤 3 中的增量备份文件的文件名: ITPUB个人空间~h+` y$n ma} _

dl*U-j/i&JP0SAMPLE.0.db2v8eee.NODE0000.CATN0000.20040429143406.001
;/Y,t!tP7|0ITPUB个人空间I$^Cu NP

?(]&kHy f0中可知,编目分区为 0 的增量备份的时间戳为:20040429143406,则使用 db2ckrst 的命令为: ITPUB个人空间"r f,L,ckw /

^|WE}Hx7d'W0db2_all "<<+0< db2ckrst -d sample -t 20040429143406"
w|J"`GCZE0 ITPUB个人空间7h3D(Df&`fr;/ Pp
命令执行后,在屏幕上会有类似的如下输出: ITPUB个人空间$k:KPw/I/n.C5RB
ITPUB个人空间R[di J
Suggested restore order of images using timestamp 20040429143406 for
%Ozn�I/_)j#E+NV0database sample.
CZ A#c#vn0==================================================== ITPUB个人空间/jE9WL-N3B7g^"n
restore db sample incremental taken at 20040429143406
&iFx;@BL+h0restore db sample incremental taken at 20040429142824
FT /r-DmsC C�P`R0restore db sample incremental taken at 20040429143406 ITPUB个人空间0p,J+py#W /Nx
==================================================== ITPUB个人空间b:S$zZq`!W
ITPUB个人空间])wc%},R;X
3)恢复增量备份映象:
ap/k@]|~0
sA2`&p/3_M0按照上述给出的命令完成 0 号编目分区的增量备份映象的恢复操作:
op,E I X"y(k2y0
5v7HDMz9_:m�zv0db2_all "<<+0< db2 restore db sample incremental taken at 20040429143406" ITPUB个人空间B;pJc)S@/tK
db2_all "<<+0< db2 restore db sample incremental taken at 20040429142824"
z[�IE1f"g0db2_all "<<+0< db2 restore db sample incremental taken at 20040429143406"
,sx(n^/Tu|"D_0
)uwF5d#C eU02. 在除编目分区外的其它分区上进行增量备份的恢复步骤:
J8gU(x`9[0 ITPUB个人空间Xx%^ gNC/C'/:D
在完成了编目分区的恢复操作后,便可以类似编目分区恢复操作的顺序对其它分区依次进行增量备份的恢复操作了,需要注意的是,如上面已经提到的,由于是对增量备份进行恢复,所有无法对其它分区进行并行的恢复操作。这里以分区 3 为例加以说明: ITPUB个人空间i lP,W3t JF

{j8v�k&LqON2A)Z1o01)获取恢复操作的命令序列:
8["Ov!p9D0
od$E w6c03 号分区的增量备份映象文件名为:
7y`VT7O p'J.t@0
!E$P3lJu/{LJ,x0SAMPLE.0.db2v8eee.NODE0003.CATN0000.20040429143447.001 ITPUB个人空间$~R!Ee(v*D&}

G/??/t;w,y-? Q0利用 db2ckrst 取得恢复操作的命令序列的命令为: ITPUB个人空间P#Q AA!Id/A

:s sS2u)h0db2_all "<<+3< db2ckrst -d sample -t 20040429143447"
C0o u+K or&K;q0 ITPUB个人空间6k,^q+HU1QA
其输出为: ITPUB个人空间? ?o/E+u lEclt4_ fB
ITPUB个人空间;b4a{n1f9d+rQ
Suggested restore order of images using timestamp 20040429143447 for
] `7?p-I}M0database sample. ITPUB个人空间Z?(P:N;P�b$kb}/]5W
===================================================== ITPUB个人空间:n(s({;j2lHV(O
restore db sample incremental taken at 20040429143447 ITPUB个人空间yY:hiCu
restore db sample incremental taken at 20040429142912 ITPUB个人空间(A"^/h*T�Ps*P
restore db sample incremental taken at 20040429143447
+Ty�v4OKT0===================================================== ITPUB个人空间"_'e#Eu [j

]YDQ4{02)恢复增量备份映象:
t!H2FT&rY3F ?k0 ITPUB个人空间MF%OMhz
依次执行上述输出中步骤中所取得的输出序列,便可完成该分区的恢复操作:
$} o#AK aX9c `1Jj0
g�];m/y+I0db2_all "<<+3< restore db sample incremental taken at 20040429143447" ITPUB个人空间5KYe3H8c//
db2_all "<<+3< restore db sample incremental taken at 20040429142912" ITPUB个人空间0`w#Fe{jG
db2_all "<<+3< restore db sample incremental taken at 20040429143447" ITPUB个人空间hx4~&VGH
ITPUB个人空间;Z1kR!I ycN"x
对于其它分区增量备份的恢复,只需依次重复上述步骤进行恢复即可,当最终完成了该分区数据库的增量备份的恢复操作后,分区数据库中的数据将重新处于完整的,保证了一致点的正常状态,以供用户连接使用。

你可能感兴趣的:(Oracle/DB2,db2,数据库,database,c,平台,windows)