DB2数据库离线和在线全备、增量
备份及恢复的具体操作步骤:
ITPUB个人空间)mc{nmt9U3t 1、离线全备份
-Ff
_L2x J1b0X(|U!`6P6{F0 (1)、首先确保没有用户使用DB2:
ITPUB个人空间g#B_wL^;UAITPUB个人空间;l7S+W7D~acLTD$db2 list applications for db sample
7O&[(Fm0k)N3Oh5^0^1_a9{
y9L(k v$mwy0 (2)、停掉
数据库并重新启动,以便断掉所有连接:
.h
K,L3q%Ot0V!m
`6gY0db2stop force
ITPUB个人空间v&h&k.L|3hSITPUB个人空间D+\*Rf:Ge sdb2start
iW t7uK02I7nm6t;NO/Pm
M0 (3)、执行备份命令:(使用TSM作为备份的介质)
5l1Pr7wGh`$]b0ITPUB个人空间6w&ye^~+Y\,}'ldb2 backup db sample use tsm
ITPUB个人空间1m_~W]~.N)^hC^e8a4e|0 备份成功,将会返回一个时间戳。
uI"dW4Nlk0ITPUB个人空间5f+|'X` hGX (4)、检查备份成功:
ITPUB个人空间8P1p5S#M!b8e7o`4E0E"Vg*qmBZFlN,q0Db2 list history backup all for sample ,可以看到多了这个备份的纪录。
.u*iU-{!h6V)xB/yS0jkP8^St0Db2adutl query命令也可以看到返回值。
ITPUB个人空间8cJ)zf2tk (5)、备注:
ITPUB个人空间HCs-I{ITPUB个人空间^o;KP2h 首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。
ITPUB个人空间K1{Y({#]J;n*M*_t4e` X1A7q.L6F Uda7z*VLh*_0 2、 在线备份:
mc0_,AK[%H0ITPUB个人空间7S.{*@0z1N0X (1)、首先打开一下支持在线备份的数据库配置参数:
ITPUB个人空间W:Rlg U5G`^PW}jnxh&`0db2 update db cfg for sample using userexit on 启用用户出口
!j?
uCDU)i0
NJxg]6R0db2 update db cfg for sample using logretain on 启用归档日志
ITPUB个人空间 ~K9x/}/n:g#f1h#LFp0db2 update db cfg for sample using trackmod on 启用增量备份功能
4p3Om;S/z#I4f2{0ITPUB个人空间 A1T7BY&~K2p (需要各个Node都分别做设置)
^)PGWL(RN0ITPUB个人空间^e0V bn#J 开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。做一下离线全备份,参考上面的命令。
ITPUB个人空间qpSH{
i (2)、在线备份命令如下:
ITPUB个人空间v Md],t
}y7gw y DH
JP"\4i%i0db2 backup db sample online use tsm
s+Br6[2nm'U!Y0ITPUB个人空间4d_^gMTi 备份成功,返回一个时间戳。
7L4n-@A)a%hC1k-}01@Z:s,y"^k'T'b0 (3)、同样可以用db2adutl 和db2 list history察看备份纪录。
2Z6@Ohy;s7HQ03[$d(D]g0L2f]0 3、 在线增量备份
ITPUB个人空间(b.~r ZS?|zGITPUB个人空间g#`l4n2c
y7N9q~-{C (1)、在开启了必须的三个参数的情况下,做增量备份:
ITPUB个人空间/?,Z{'Vj;\e~Z9v8?k}8w0db2 backup db sample online incremental use tsm
8a6n#@6my0 备份成功,返回一个时间戳。
ITPUB个人空间g.Q6hyr `Q rXITPUB个人空间\W.EPL:a5E (2)、同样可以用db2adutl 和db2 list history察看备份纪录。
ITPUB个人空间6}N!m#tA5l^+vITPUB个人空间&TJ[1}l \y (3)、还有一种delta的备份:
zG!PLW3R*X3ioC04p&g Lm5w(dF0db2 backup db sample online
e1l:i3E6i)]8c0incremental delta use tsm
ITPUB个人空间ob6g8D!C(W`${0V
q`Fz5K%r4M]0 这两种备份的区别,类似
Oracle Exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。
%D1i6^N0@F0oS4AH/gT"q
s0 (4)、备注:同样,对每个节点都做这个操作。
ITPUB个人空间VMnu:F s`s E&A(}ITPUB个人空间+f+?#CCSyyN 4、 恢复数据库
ITPUB个人空间-Q{1JY)K6`2tY7uv8Jvq@[a0]0 (1)、手工drop数据库,模拟灾难恢复的情况,执行如下操作:
ITPUB个人空间M![4UUa*xAk-y
j-@$uuITPUB个人空间!k]{0A^4H GJdb2 drop db sample
ITPUB个人空间
b%{_7J7jN
{}9A4~(Dl ~2C0 (2)、恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录文件)。这里的时间戳应该是最新的:
"O7|wA4F6n6rL@00B-BjBi%IG!rx0db2 restore db sample history file use tsm
ITPUB个人空间6SU q;{0x wXtaken at 20030102223107 buffer 100
ITPUB个人空间.[c2N(v5wl:F (3)、使用db2的恢复帮助工具:
ITPUB个人空间-wdbK.mr+f-[ NjITPUB个人空间pw
l;OF&v7Tdb2ckrst -d sample -t 20030101224424 -r database
r'PQ Vfp3Q V!fk1W09fj4?|G+D&e0 命令返回建议的必需的恢复操作命令。
HX(Wg*f9@|0R3AWa`2j_8}0 (4)、按照帮助工具的提示,先做版本恢复,恢复命令如下:
ITPUB个人空间.Z6EO3E;g(tF$PGWITPUB个人空间X%E(UtMC|Odb2 restore db sample incremental use tsm taken at 20030101224424 buffer 100
4^3{1Q;OE.MF*ws {0ITPUB个人空间wa*w"|w\CJ 同样先做主节点的恢复,再做其他节点的恢复操作。
ITPUB个人空间
H-W
~!D.Dv@e|bG,TU\c*?QQ/[\ ]+|0 (5)、这时数据库处于rollforward-pending state的状态,需要做roll forward 操作:
ITPUB个人空间#Q9z+~f8yfe S
f9o9u*?l5k"?+^a B0db2 rollforward db sample to 2003-01-12-13.27.25.000000 on all nodes and stop
ITPUB个人空间;Yv/[L
h,[yv)uITPUB个人空间a0j7ck3f[@ 前滚到同一个时间点。这个操作要在主节点来做。
JR*u3hsW'@g0C,[s_@8~'?05、说明:
:Q9Y5j$v8LNVX0ITPUB个人空间V `8I3mQl I,x)c'} YI0 (1)、恢复操作也有online和offline的,区别等同backup的操作。
+WU@e"w0LP ^0ITPUB个人空间pe,U{2E8Q (2)、按照表空间的备份和恢复类似,加子句TABLESPACE ( tablespace-name 即可。表空间级别的备份/恢复操作要求数据库处于归档日志和启用增量备份模式下。
,j T~.]/v0ly(@0ITPUB个人空间f(B9TvtF a"e (3)、恢复的例子中只做了版本恢复。若还有更新的全备份和增量备份的image,可以依次做恢复(请注意使用db2ckrst的建议恢复次序和次数)之后,最后做roll forward.
ITPUB个人空间.dG7D#B1]n3|Z5sR0Q9h8`6][0 (4)、备注:
ITPUB个人空间;Be"OB(e
\4S%||,l.QTKQ{Y/Y4]{.Q2v?0 同样,对每个节点都做这个操作。