DB2数据库离线和在线全备、增量
备份及恢复的具体操作步骤:
ITPUB个人空间A%N(dyT5X 1、离线全备份
-TOxC~ V0!FS
~$A8m4^1X,b0 (1)、首先确保没有用户使用DB2:
;Uzi{Bgau'u,p'P0ITPUB个人空间gU/_5[RQ%a$db2 list applications for db sample
&gd Lk B1]AlgA0ITPUB个人空间Y wSW8Z{2~u%~T WG9k (2)、停掉
数据库并重新启动,以便断掉所有连接:
o.` t+|W0N"A(XE7s E T0db2stop force
.^*yo
EL_!r0ITPUB个人空间U"|)mJ'kdb2start
S4fvBH0'wB1Z#[ i#A&k$K#C
QW0 (3)、执行备份命令:(使用TSM作为备份的介质)
N8[GdpDx w N0p8Cf!`%i;Cr0db2 backup db sample use tsm
B/s%yP(G|0SY2WJ1V0 备份成功,将会返回一个时间戳。
{ a:~ya!u4X1s;^0ITPUB个人空间b;_&i5ZB~ (4)、检查备份成功:
3q;Ez5X+ju
M c0].WR-sb6f0Db2 list history backup all for sample ,可以看到多了这个备份的纪录。
ITPUB个人空间A!G)^8R&Vl;ys?0Uu'`/eHS k1v0Db2adutl query命令也可以看到返回值。
,h!u_"cr&Q2v.c0 (5)、备注:
ITPUB个人空间Z2G^/U;zITPUB个人空间0RMr2y"i)ycR 首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。
ITPUB个人空间+U!dkN[Cd;jz
uh!o%Nz,h(X0 2、 在线备份:
ITPUB个人空间
^y0K/@/HP*A%M7i#XITPUB个人空间2N"|)XSz N m3` Q}
T (1)、首先打开一下支持在线备份的数据库配置参数:
ITPUB个人空间#[#f8h?$o6no*p,CqL'I]4G$S0db2 update db cfg for sample using userexit on 启用用户出口
,d.Lk9ngee0ITPUB个人空间
MDL
U:G(h2S+b~:Ndb2 update db cfg for sample using logretain on 启用归档日志
kJ~0|.qz'~5h0Kk$|7V_wf0db2 update db cfg for sample using trackmod on 启用增量备份功能
ITPUB个人空间g5L/v4p[Sy6d6_{*?0 (需要各个Node都分别做设置)
G^R;R,Bf0ITPUB个人空间6t8B)M#Y0w 开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。做一下离线全备份,参考上面的命令。
f0QE3\N0 (2)、在线备份命令如下:
ITPUB个人空间9{s5ZGZC'`6A:Ho;P,m3S0}1|K$M wNQ0db2 backup db sample online use tsm
ITPUB个人空间R4q+O7MxV4T-W
H#I:k w
K)H&jTv|0 备份成功,返回一个时间戳。
ITPUB个人空间~zmd:s2AMf5T7e qITPUB个人空间%?|9?i,T4?%M (3)、同样可以用db2adutl 和db2 list history察看备份纪录。
,mT%Ii,II0ITPUB个人空间{5O!O
D&pZ!W2M 3、 在线增量备份
ITPUB个人空间1s H"L&EB,k;BCX xVuX`8uS0 (1)、在开启了必须的三个参数的情况下,做增量备份:
%hs\vH0l4\)i1cf$M0db2 backup db sample online incremental use tsm
ITPUB个人空间e*H_L8jsAn5J 备份成功,返回一个时间戳。
/]*x\Z:h0ITPUB个人空间 JO~~ iuftr-b (2)、同样可以用db2adutl 和db2 list history察看备份纪录。
ITPUB个人空间aU$q)MkITPUB个人空间W9pges%[3R8~f (3)、还有一种delta的备份:
ITPUB个人空间]3a(pX#Uz6Gw evd|z Q-V0db2 backup db sample online
1b1j1kG$[4o7{]0incremental delta use tsm
ITPUB个人空间*z4TCzljqgom7Ot [7g-P;D0 这两种备份的区别,类似
Oracle Exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。
6rlz4N;KL,tf2j0"Zn%wHG5HO0 (4)、备注:同样,对每个节点都做这个操作。
ITPUB个人空间5m;a:e$o Di i I!IR0Q
gjyg,b+v0 4、 恢复数据库
|!SxxxD/cc0&]P;w9^5F0 (1)、手工drop数据库,模拟灾难恢复的情况,执行如下操作:
[d(yHa[3Z0G4fb/L0ITPUB个人空间3kDW{TAdb2 drop db sample
(sR
JQ*Y0ITPUB个人空间{u-Y]6E`I)~0T (2)、恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录文件)。这里的时间戳应该是最新的:
uk} hQw+\ c4F0@ O8o6}bi2J HE0db2 restore db sample history file use tsm
ITPUB个人空间iwE xH)Itaken at 20030102223107 buffer 100
q!F F5~[!i(tYP?0 (3)、使用db2的恢复帮助工具:
0E4k&Sw8jv0ITPUB个人空间7Um'I4H)qc%s.C@db2ckrst -d sample -t 20030101224424 -r database
ITPUB个人空间m~{/M6@d*ZITPUB个人空间+?*g$I0uZ9UBEu 命令返回建议的必需的恢复操作命令。
ITPUB个人空间?%x*q*VU
Gs
V(h$W4c8R(HC0 (4)、按照帮助工具的提示,先做版本恢复,恢复命令如下:
ou0^V([c$?-M:C0ITPUB个人空间2G1L5K_i+qV&Q-f
Ndb2 restore db sample incremental use tsm taken at 20030101224424 buffer 100
[R0F@6oMNz0i;bKf u7t)~0 同样先做主节点的恢复,再做其他节点的恢复操作。
ITPUB个人空间)L O%h qH3i7u'DJ@X$d.A4?W0 (5)、这时数据库处于rollforward-pending state的状态,需要做roll forward 操作:
:w%G~4N$k$z!U1m0a9En6O7C|p Y-C0db2 rollforward db sample to 2003-01-12-13.27.25.000000 on all nodes and stop
~|T$k0P3\b:z)J0,Ye'~([N2kj[0 前滚到同一个时间点。这个操作要在主节点来做。
}V{,`-w5`S0a;Va;E+F2yI7N05、说明:
2HTOhv M9q7V0ITPUB个人空间yqP1nX
zITPUB个人空间;u"u*M zaJY (1)、恢复操作也有online和offline的,区别等同backup的操作。
"sE PH.I ad#j0'}#_3{+NP#c;cJ0 (2)、按照表空间的备份和恢复类似,加子句TABLESPACE ( tablespace-name 即可。表空间级别的备份/恢复操作要求数据库处于归档日志和启用增量备份模式下。
2q ?LYN0RS0ITPUB个人空间/YxY0jn4yv*x7LB (3)、恢复的例子中只做了版本恢复。若还有更新的全备份和增量备份的image,可以依次做恢复(请注意使用db2ckrst的建议恢复次序和次数)之后,最后做roll forward.
? J4YEz!I)`)W0ITPUB个人空间
E3s JY"gqS0l"C6x%`3R (4)、备注:
x*v4bP0yWw0I,@t$@dd0 同样,对每个节点都做这个操作。