DB2数据库离线和在线全备、增量
备份及恢复的具体操作步骤:
ITPUB个人空间d
T-MfTR 1、离线全备份
ITPUB个人空间ca5X p0R3z:ecyUJg1q/?8t E!VO0 (1)、首先确保没有用户使用DB2:
ITPUB个人空间?0B+x|J4u D],u'g!cITPUB个人空间Wf/N2B
K)c|K$db2 list applications for db sample
4s s:h @x)ZAP0sfLiA'QY&^
cy0 (2)、停掉
数据库并重新启动,以便断掉所有连接:
ITPUB个人空间1\h.Z?O,cughIb8XSs*|%h*`;Am0db2stop force
C(wIS~+?0ITPUB个人空间~^K/`*n%U@db2start
ITPUB个人空间FN`.t%\yy b9z)Xo*XSu0 (3)、执行备份命令:(使用TSM作为备份的介质)
ITPUB个人空间%H9d8o0Fv-cpuITPUB个人空间5B(~%CmY~;[(_adb2 backup db sample use tsm
ITPUB个人空间+[ K/opa+Vjc wITPUB个人空间rP1BZ/AC 备份成功,将会返回一个时间戳。
ITPUB个人空间xl.].G5Y*j7DJITPUB个人空间FVh/yU#r ClL&_ (4)、检查备份成功:
zQ,L#y)@ G0ITPUB个人空间)`Yc6Y-@F(W;Hda
Qd3\Db2 list history backup all for sample ,可以看到多了这个备份的纪录。
ITPUB个人空间2U Xu*gd5[+JITPUB个人空间3E4\!t'EW*HY6TDb2adutl query命令也可以看到返回值。
ITPUB个人空间 [,n:X
a4O;C/P.p (5)、备注:
:iB9P)PoH7W0ITPUB个人空间'vHO*L6p!\ 首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。
Pkl8e#C0)YAz0nxCou,Z0 2、 在线备份:
ITPUB个人空间Q&xCrs$w*|&AITPUB个人空间!},CBC
~3U (1)、首先打开一下支持在线备份的数据库配置参数:
4ti{x'CR'H1b
m0ITPUB个人空间J!v-H)d!e$noYMdb2 update db cfg for sample using userexit on 启用用户出口
ITPUB个人空间0N ['W!uVY&iQnITPUB个人空间tZ.D+CdsQ/Rdb2 update db cfg for sample using logretain on 启用归档日志
%Z&h:zvg0,c9az6R(st0db2 update db cfg for sample using trackmod on 启用增量备份功能
ITPUB个人空间v7}?:l:F#K)naf3h`;f`"h)cX3z(i0 (需要各个Node都分别做设置)
]IZ`m"PJ&[0ITPUB个人空间Z%N+mX8[/X"^
~2v 开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。做一下离线全备份,参考上面的命令。
ITPUB个人空间u`ys#SJ5H (2)、在线备份命令如下:
ITPUB个人空间%cD7jJ9eV}ITPUB个人空间J.O&U M
S9e(GHdb2 backup db sample online use tsm
/R
Z)D?)zO&J`k;Z0._MV3?+cy/i0 备份成功,返回一个时间戳。
H_\R [G u etN#{0ITPUB个人空间"jf6|kH)]B (3)、同样可以用db2adutl 和db2 list history察看备份纪录。
ITPUB个人空间8dyj;`
I%^`,|1]Azyy#l:R:MC\%r0 3、 在线增量备份
ITPUB个人空间Rdl5poV8k
PE"ktITPUB个人空间6i(I\H
m (1)、在开启了必须的三个参数的情况下,做增量备份:
ITPUB个人空间5cUq~!|,ha6b s^MQuD(p0db2 backup db sample online incremental use tsm
ITPUB个人空间5h2e9E4Ur8{LU 备份成功,返回一个时间戳。
c8rg8q}@z0ITPUB个人空间OE4~x8N%e (2)、同样可以用db2adutl 和db2 list history察看备份纪录。
ITPUB个人空间{H\~?;i;Z#A`ITPUB个人空间*N2^UVxN6g%T"E (3)、还有一种delta的备份:
ITPUB个人空间d2x&Q
Q~(M2Z)n&RTAW(B
e0db2 backup db sample online
N#zN
\RH Zw0incremental delta use tsm
7yZ j"^%VX0ITPUB个人空间a!KbEf'Ypc 这两种备份的区别,类似
Oracle Exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。
,[M }y7~0ITPUB个人空间D M-{&?B~#fY (4)、备注:同样,对每个节点都做这个操作。
ITPUB个人空间(O`:].QK W hk!d%yITPUB个人空间H,[h;K3{[[ 4、 恢复数据库
ITPUB个人空间N%dl-~+C$?c}U-OWITPUB个人空间
F
Z-X0oNk (1)、手工drop数据库,模拟灾难恢复的情况,执行如下操作:
ITPUB个人空间CKUo;kB#z/`b&y#EM5`Q*{r1L0db2 drop db sample
ITPUB个人空间1S(F \-Pg4a!H]9fITPUB个人空间}8fM8[z*g6jIN6` (2)、恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录文件)。这里的时间戳应该是最新的:
ITPUB个人空间K6r5i"A[)p
^HY'NITPUB个人空间)}'Ft3AE(k3KKdb2 restore db sample history file use tsm
ITPUB个人空间bQY8V4d%`!k*o4a6Wtaken at 20030102223107 buffer 100
Fa'\^
C0 (3)、使用db2的恢复帮助工具:
}"Xb*|,o7{!wF0ITPUB个人空间'Zk{K
~db2ckrst -d sample -t 20030101224424 -r database
ITPUB个人空间#X
pd}7U7X!M8Ri]FZ;aHp*Z0 命令返回建议的必需的恢复操作命令。
c-N.]s
q0.O8j"X&hP.U&]c0 (4)、按照帮助工具的提示,先做版本恢复,恢复命令如下:
ITPUB个人空间~]#i@4U
?/C1@ NhCH%u)Q;rn2o
^0db2 restore db sample incremental use tsm taken at 20030101224424 buffer 100
!|7J;b+~
U4I0ITPUB个人空间 _:K#ztT:y!g2zS 同样先做主节点的恢复,再做其他节点的恢复操作。
5V5f.yu9xit0oIDd/w
}l0 (5)、这时数据库处于rollforward-pending state的状态,需要做roll forward 操作:
ITPUB个人空间WK${/[e,lwX8Gjxf3m9Xgh0db2 rollforward db sample to 2003-01-12-13.27.25.000000 on all nodes and stop
u$\S,Z,Bce0GM,L0Kru5y)g)Uh!\0 前滚到同一个时间点。这个操作要在主节点来做。
ITPUB个人空间-L n h;[NVs$Ge5p$kITPUB个人空间twupd9P5、说明:
ITPUB个人空间Ptw[_0X4YITPUB个人空间 y8F.Tw'ZD+HITPUB个人空间[ j%As!Ks+d7h (1)、恢复操作也有online和offline的,区别等同backup的操作。
*m3l_d'n,ZX(n.?0m0E:Vj|y C9~j-]0 (2)、按照表空间的备份和恢复类似,加子句TABLESPACE ( tablespace-name 即可。表空间级别的备份/恢复操作要求数据库处于归档日志和启用增量备份模式下。
J0d'y"ig0ITPUB个人空间:m
j `v\ (3)、恢复的例子中只做了版本恢复。若还有更新的全备份和增量备份的image,可以依次做恢复(请注意使用db2ckrst的建议恢复次序和次数)之后,最后做roll forward.
-q rL2QnBM&Bl0ITPUB个人空间%[;N2j-U%Qy5M (4)、备注:
ITPUB个人空间EW"H~AJ.NSo7D
Z"S `6M-V@0 同样,对每个节点都做这个操作。