天地不仁,以万物为刍狗!

自己做的关于db2的重定向恢复的2个例子

上一篇 / 下一篇  2008-02-23 17:08:09 / 个人分类:db2

今天做的关于db2的重定向恢复的2个例子
*x'l)o/BG#i U0
Bc!n8J)Cb8I0
db2的重定向恢复
,od t;gl-j7w7}o W%EI0R0ITPUB个人空间5a g s!c)X5Pf;AR0p
db2的重新定向恢复是一个比较快的数据库迁移方式,它通过类似克隆的方式,在新的环境中建立和当前数据库一致的一个新数据库,这里说的新的环境包括:1.当前实例下;2不同实例下或者别的服务器下,今天抽了点时间做了一个重新定向恢复的例子,现在分享给大家。
*x Cs!P,r2v;Bn0
Y3N%b0Q,lZku0首先,重新定向恢复的大致包括如下4个步骤:
A^p$k \S [5`0(一)        备份数据库BACKUP DATABASE OLDDB TO XXITPUB个人空间'~ h3oljl
(二)        恢复数据库RESTORE DATABASE,这里需要加上重新定向的参数REDIRECT,类似:RESTORE DATABASE OLDDB FROM OLDDBBACKUPDIR TAKEN AT XX [TO F(F代表盘符:即需要将数据库恢复到那个盘符) ] INTO NEWDB REDIRECT [WITHOUT ROLLING FORWARD]ITPUB个人空间 ZG-E ~w"n ]_
(三)        定义新数据库的表空间容器 SET TABLESPACE CONTAINERS 0—tablesapceid USING( FILE/[PATH] “F:\ssss”----容器目录 [4096 ---对于DMS必须设置容器大小])ITPUB个人空间L ^^;n+Cu7{%E
(四)        再次恢复数据库,这时候需要增加一个参数:CONTINUE 类似:RESTORE DATABASE OLDDB CONTINUEITPUB个人空间OP/Q&D M2hZ`h.xn4]

zL.j&[jg1vl??0我这边用到了2个例子,其一:在当前实例下把当前的数据库DWZXT重新定向恢复为DWZ;其二:在新的实例下恢复重新定向恢复数据库DWZXT为DWZ
bRO6A,TbWS;i0ITPUB个人空间;M!t ?5HZ9S;Gh Z&[[

k`@,Q[2p4h0第一个例子:当前实例下的重定向恢复ITPUB个人空间-a6Y6v[/F3~0g*jt

E0_Fn{X01.        得到当前实例
y"h Z1~,a%_*fr0
{ lx }.o(h0C:\>db2 get instanceITPUB个人空间7Aom5h(a1\ @

r{m)AI3_] R0Z}0当前数据库管理器实例是:DB2
B6Q a+J6d$S ` X\;_q0
NAK%`1^7Iz02.        查看实例下的数据库
5R d9r1F,u_0
6T6zLP+Z ]&mPP)b+[0C:\>db2 list db directory
N;T)jHg'M0
_\U/E s.JB&]P0系统数据库目录ITPUB个人空间-GMM"oFr?

{iYBBl!N0ITPUB个人空间!aA0bx6FPUgn Ok
数据库 1 条目:
1`w pKk+Ik3Y'P0
&br2Rwr6i$it#K'S(Hb0数据库别名                      = DWZXTITPUB个人空间+y!s)^X]
数据库名称                      = DWZXTITPUB个人空间!c]fL{
数据库驱动器                    = D:\DB2
L|(nR$c5gR0数据库发行版级别                = a.00
3ty.K'ea0注释                            =ITPUB个人空间"Y8xj kF+d:@3E
目录条目类型                    = 间接ITPUB个人空间u7Vif/rnf
目录数据库分区号                = 0ITPUB个人空间 Rfe([-G?;DYXO
备用服务器主机名                =
U)Pl0i|n0备用服务器端口号                =
/w3Pl;M`4X8g0ITPUB个人空间1[tAI&F
3.        连接到数据库,并进行数据库备份,对应第一步骤
dP^*q t-R#b*L0ITPUB个人空间V8sB2J`7`,T&?
C:\>db2 connect to dwzxtITPUB个人空间Fb} e N"W(P-In5I-{

XQf:Ai0   数据库连接信息
,[w j.q7y I0ITPUB个人空间.xJv JiR$K
数据库服务器         = DB2/NT 8.2.0ITPUB个人空间@["]B2GYuB@N
SQL 授权标识         = ADMINIST...
.@C5Vn~U0本地数据库别名       = DWZXT
p~$eZr0ITPUB个人空间cE$GK Lh
ITPUB个人空间s(U;n.F$nu#Nf/d MXF
C:\>db2 force applications allITPUB个人空间:n vX.fN$vNj$s
DB20000I  FORCE APPLICATION 命令成功完成。ITPUB个人空间 e^Z$i AEN y
DB21024I  该命令为异步的,可能不会立即生效。ITPUB个人空间w&S1La}7p!|
ITPUB个人空间9@o Dk q+X
ITPUB个人空间@?S XT~X
C:\>db2 backup database dwzxt to e:\dbres
*X YK3N H2OG0
/XTyH ]{m%{0备份成功。此备份映像的时间戳记是:20080223144514ITPUB个人空间8]3o[Y R]
ITPUB个人空间'k-b*^9uH#x
4.        恢复数据库,对应第二步骤
s!q}E Q;r+O0
6KC#{#u_Z lp/y#D3@0C:\>db2 restore database dwzxt from e:\dbres  taken at 20080223144514 into dwz r
+y4Nk C^FuQV0edirect without rolling forward
y0U1t3{$?Hz1@v dF'V V0SQL1277N  复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为
\8f7y^)^t,z B0ITPUB个人空间-`F"n T {@(DvV
“必须定义存储器”。ITPUB个人空间8K[2Zrc7?icz%X
DB20000I  RESTORE DATABASE 命令成功完成。ITPUB个人空间"E:|y XN
ITPUB个人空间'Df Hh#hIw(d
5.        查看新数据库需要定义的表空间容器,并生成容器目录[文件](在当前命令行编辑器中)ITPUB个人空间+~i~ @` @Q3jY
C:\>db2 list tablespacesITPUB个人空间L{T5z@-f
ITPUB个人空间#Ov7x)q`-sU
           当前数据库的表空间ITPUB个人空间9DBrH oR/W
ITPUB个人空间3nN&^&U${$wr
表空间标识                        = 0
*R{} Q!`7c5KVa0名称                              = SYSCATSPACEITPUB个人空间.s-tQ(M[ t9sQ0[8Q
类型                              = 系统管理空间ITPUB个人空间"W.I&Q(NMf5X4z/dn
内容                              = 任何数据
W2[6M@ aP0状态                              = 0x2001100ITPUB个人空间Mx!_5f7t`/L
   详细解释:ITPUB个人空间G4WF!m R%_6yv*a
     复原暂挂ITPUB个人空间5GA0@eXV"h
     必须定义存储器ITPUB个人空间f yORzZ.V
     可以定义存储器ITPUB个人空间^Z]'s b.Bq3y H @5P

O,wX;ju;]f7V0A;H0表空间标识                        = 1ITPUB个人空间?!~ x/ym)Ij3a
名称                              = TEMPSPACE1
'@K0cg;nj_$U0类型                              = 系统管理空间ITPUB个人空间Qc4x @h \Q
内容                              = 系统临时数据
YyN/[5R'b0状态                              = 0x2001100
3Ac9F"t["Z&Su-t0   详细解释:ITPUB个人空间7A~(IsZ6L!j
     复原暂挂
!r"q-e#Xn0     必须定义存储器
PL%s4|4J8g/W6Q9}b0     可以定义存储器ITPUB个人空间M?*n1TV)c An
ITPUB个人空间+T zHvnG@
表空间标识                        = 2ITPUB个人空间.@qr"F4aC2j/k
名称                              = USERSPACE1ITPUB个人空间s/?*z(qL$Nw1cFu
类型                              = 系统管理空间
a Yb0n`0内容                              = 任何数据
ZNT(qb'X3G0状态                              = 0x2001100ITPUB个人空间RX8o$E8J?v
   详细解释:ITPUB个人空间],h5fpn&m}dJj
     复原暂挂
s:L^1?G0B0     必须定义存储器ITPUB个人空间!Z x-s!R{1zl
     可以定义存储器ITPUB个人空间 UOH8sM
ITPUB个人空间%yT,e}&RZ
表空间标识                        = 3
v0Q0`6t#P,S0名称                              = USERTMPSP
.] \_U]4u/A,p9v0类型                              = 系统管理空间ITPUB个人空间5} UAV:gt#S
内容                              = 用户临时数据ITPUB个人空间'LXt ~1lK|_
状态                              = 0x2001100ITPUB个人空间AfW8rM2I.W/k0[Y
   详细解释:
x-Q)_6L!}&^!uQ6w O8g&p0     复原暂挂
I B8x7t-}7d4U(hO0     必须定义存储器
h*J\%b4Q j$s{DPG0     可以定义存储器
&m-GZ0A5|:m2ZK5J"oKD0由以上可以看出我们需要定义4个系统管理表空间的容器:0:SYSCATSPACE、1:TEMPSPACE1、2:USERSPACE1、3:USERTMPSP,最终建好如下目录:ITPUB个人空间^9]fx\*\
C:\>dir E:\dwzx
0f5N mLFI b6^0驱动器 E 中的卷没有标签。ITPUB个人空间 h:hiB!a!R({SIz
卷的序列号是 0E00-006F
4W3m&M4Y0hy"xs/F2l$K0
7TaY.Sufj8b0E:\dwzx 的目录ITPUB个人空间N/O f/E[8J.FH
ITPUB个人空间0N&v_ q(H
2008-02-23  14:48    <DIR>          .
5{:VOgi:Q'}a02008-02-23  14:48    <DIR>          ..
*P$YHk0J;G(Vxme02008-02-23  14:49    <DIR>          SYSCTBS
/O/e$]!Ue5\ _-}02008-02-23  14:49    <DIR>          SYSTMPTBS1ITPUB个人空间] R1gBK/MK
2008-02-23  14:50    <DIR>          USERTMPTBSITPUB个人空间p.ts&Y-C"Zz3R(j
2008-02-23  14:50    <DIR>          USERTBS1
2s{ _oz:?9\c0               0 个文件              0 字节ITPUB个人空间)k@vnM w-u1X
ITPUB个人空间X8`4sj*W1oxL
6.        定义新数据库的表空间容器,对应步骤3ITPUB个人空间 t}4s;zE?Bc5D^.h
ITPUB个人空间4H-YGf?2o q }
C:\>db2 set tablespace containers for 0 using (path "E:\dwzx\SYSCTBS")
6Ow+a`H Z0DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。
A0l bW M nC7x0w0ITPUB个人空间5\)a:e%Fa~
C:\>db2 set tablespace containers for 1 using (path "E:\dwzx\SYSTMPTBS1")
.h8p q2{wE;j!^:^;c@W0DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。
5h-L+U#Z}u TZ0
L\`d*|@6h f/v0C:\>db2 set tablespace containers for 2 using (path "E:\dwzx\USERTBS1")
lTt'A3V\(r"u|0DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。ITPUB个人空间@2V;Q*@+n0dS4C

,C1lId endH0C:\>db2 set tablespace containers for 3 using (path "E:\dwzx\USERTMPTBS")ITPUB个人空间zOM$PN F@OT
DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。ITPUB个人空间N\ n"C&g G'J
ITPUB个人空间i.p5V2a-e$f2RaX,a
C:\>db2 list tablespaces
V1T ~O^ Xd0ITPUB个人空间7JO)hBY7]5F}
           当前数据库的表空间
'aB(|#M'~)Sy*[0
Te'Tc9Oj[+J8h(f-u0表空间标识                        = 0ITPUB个人空间-op.k'Ava
名称                              = SYSCATSPACEITPUB个人空间 Cz(Q+mzr
类型                              = 系统管理空间ITPUB个人空间1G\(xha
内容                              = 任何数据
$G?c SBT m0状态                              = 0x2000100ITPUB个人空间 eKn+[^lVm a
   详细解释:
Bm{TGL0     复原暂挂
5e0t;Je$g-|2h0     可以定义存储器ITPUB个人空间hf \9F(_Q"}P
ITPUB个人空间3Jv6T(H/k"f cA Dku
表空间标识                        = 1
Z(ui1RV R&t5E V P0名称                              = TEMPSPACE1
%dk n R8l/yE0类型                              = 系统管理空间
j Szm2G ^ x2r\0内容                              = 系统临时数据ITPUB个人空间 [6cNq o'U*ZG+^#Qd{
状态                              = 0x2000100
b#]@+h*T7B0   详细解释:
vM2ig[0     复原暂挂ITPUB个人空间,I_3?3R7eO
     可以定义存储器
(aj| RD%VKH\(RG0ITPUB个人空间 ts5\ UQ$^
表空间标识                        = 2
U6e4|`@ B|i0名称                              = USERSPACE1
8_q-JRu0类型                              = 系统管理空间ITPUB个人空间3L Sh(eM!S0K5{
内容                              = 任何数据ITPUB个人空间~*`tO.x,B\r.D+K r
状态                              = 0x2000100ITPUB个人空间B+j;FC~
   详细解释:
cbc){Xc@6n0     复原暂挂
B z8YR\m0     可以定义存储器ITPUB个人空间8tm'n4N+P9B.d

G,\q@&T3cU m3r0表空间标识                        = 3
6hn9F%]9A6G.J,q8y0名称                              = USERTMPSP
Dv4RYNzR&_"C$D5m0类型                              = 系统管理空间
u!xQ;{`3?0}+x6RN+A0内容                              = 用户临时数据
8zu,x&Sf0状态                              = 0x2000100ITPUB个人空间1J5N9Ha@(y
   详细解释:ITPUB个人空间ge7T KG4g/KGW
     复原暂挂ITPUB个人空间/t.Q*ui1Owv2H
     可以定义存储器ITPUB个人空间Gl H%W7x,PHn9h

;ER _Yc s07.        再次恢复数据库,对应步骤4ITPUB个人空间mB2c3bn5o
ITPUB个人空间8Ko k%|AY;O){
C:\>db2 restore database dwzxt continueITPUB个人空间W*k3VJN9i"ip.Z@
DB20000I  RESTORE DATABASE 命令成功完成。ITPUB个人空间7XDiuF,E

^7M"{){'mAhxR0Ok,搞定下来看一下连接会不会出问题
Ta'Sm$^D0UO0C:\>db2 list db directory
"CVc+? e!h0
\(C4e/G;h+lw}M^0系统数据库目录
l"le,l;|_ XA$g*vo"k0ITPUB个人空间_i5`+UId7i]:J:M
目录中的条目数 = 2ITPUB个人空间J b^,YW+`
ITPUB个人空间u/[[;^/t4G#I
数据库 1 条目:
'i Q'ijw'Cj&ZiU0ITPUB个人空间#@+_'q5yp:yi
数据库别名                      = DWZ
,B T n&Eb3\BQ|{0数据库名称                      = DWZ
qv NUeZ{0数据库驱动器                    = C:\DB2ITPUB个人空间{O.TB$]
数据库发行版级别                = a.00ITPUB个人空间k+tA)E]&Z6o/a c
注释                            =ITPUB个人空间pP([l9H4T T
目录条目类型                    = 间接ITPUB个人空间jFj2GSs^
目录数据库分区号                = 0
2kHJ]0e,KX.z0备用服务器主机名                =ITPUB个人空间,Hj1Fu(wrkX*?
备用服务器端口号                =ITPUB个人空间v Q J,v9AC&E |#v E?
ITPUB个人空间C%c^,bzse i
数据库 2 条目:ITPUB个人空间]o v y'lV
ITPUB个人空间g1o"M B6C5NO
数据库别名                      = DWZXT
Sp4t&UZ"c0数据库名称                      = DWZXTITPUB个人空间e,eHj;W0E+X0\
数据库驱动器                    = D:\DB2ITPUB个人空间 H7C'~? K @\Q0R^%k$Z
数据库发行版级别                = a.00
4vWA)L.V5Y0注释                            =ITPUB个人空间5Z3alE}"_ n+n$[_
目录条目类型                    = 间接ITPUB个人空间Cb1O-mr!Q/RZ(e
目录数据库分区号                = 0ITPUB个人空间I3S0w5o _7X
备用服务器主机名                =
1i0fdMcM!L7gvH0备用服务器端口号                =
r8HUr3e;Zlq4j[0ITPUB个人空间iI[h"S
ITPUB个人空间!FU3y(Mki L D
C:\>db2 connect to dwz
*s f)XN'j+V0ITPUB个人空间 s {J"@+q)?bv
   数据库连接信息ITPUB个人空间 H~r}/v X9u6f

@.p;u"Wgu0_0数据库服务器         = DB2/NT 8.2.0ITPUB个人空间MtCBr |H y'Fg
SQL 授权标识         = ADMINIST...ITPUB个人空间ga aLQ1L*KtF&tO d
本地数据库别名       = DWZITPUB个人空间Wl,fzz9K

{![A3GC3t([0ITPUB个人空间 y/P_l,M&X.dO
C:\>db2 terminateITPUB个人空间2o%V,vk _x1u {O
DB20000I  TERMINATE 命令成功完成。
S)Ud,PW#K du0ITPUB个人空间K7R(A zf y"@$G~9l
C:\>db2 connect to dwzxtITPUB个人空间*vvV:_5` M

+v-H5_dXN0   数据库连接信息ITPUB个人空间E]|LPsC

#s9g2``#x_]_5A0数据库服务器         = DB2/NT 8.2.0ITPUB个人空间%S[#g/m"{*x7Od
SQL 授权标识         = ADMINIST...ITPUB个人空间 @)Rd?!pw0~ U
本地数据库别名       = DWZXT
C#IZ3m1W7W.J0ITPUB个人空间7I e#bey
ITPUB个人空间"Z6nO0[,H3R
C:\>db2 terminate
ol4O9ti,Y7j0DB20000I  TERMINATE 命令成功完成。ITPUB个人空间-I vb U"H#W

Kh7wF `Y0F0那么搞定第一个例子ITPUB个人空间K7A0BZz
ITPUB个人空间?,b+]B6WwQ+\V
第二个例子:不同实例下重新定向的恢复ITPUB个人空间"A u4g0v1?IX
这个例子中新建了DB2实例myinst,在myinst实现重新定向的恢复,恢复的数据库名也为dwz,为了不混淆我们把这个数据库存储到F盘上,这个例子跳过对数据库的备份(第一步)ITPUB个人空间2DDTF;\!R
1.        新建实例myinst,并设置系统当前实例为myinst
jf RO/UXJ-P1]0ITPUB个人空间Zr7p_1qpt#S}l+d
C:\>db2 get instanceITPUB个人空间;TgkT$eA V?

3b;ty a8G%_ C @G0当前数据库管理器实例是:DB2ITPUB个人空间:e;sq#x}}nxa.C

3s,C*O E3i0ITPUB个人空间p4APu@t
C:\>db2icrt myinstITPUB个人空间le D@.b9t
DB20000I  DB2ICRT 命令成功完成。
P,Z7D] ~+aw0
,Rq2x2Tp:e4]G0C:\>set db2instance=myinst
U+H w!JH5v0ITPUB个人空间]} UK?pR)R
C:\>db2 get instance
Od J0W JPNz0
Q2oQ1J3PPs:Y4VG;D0当前数据库管理器实例是:MYINST
z)vL){[O$Je#g0ITPUB个人空间} Q'n~8{ q%U
2.        恢复数据库,对应第二步ITPUB个人空间 [j6nRFF
ITPUB个人空间%N$r0m)s,q+om\ \
C:\>db2 restore database dwzxt from e:\dbres taken at 20080223144514 to f into d
E0waU w(l E,?7^Q?0wz redirect without rolling forward
*goY~ i6?7fx0SQL1277N  复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为
t vxe:P0
:wNg#}y0“必须定义存储器”。
\ |oi_Tj~/Q0DB20000I  RESTORE DATABASE 命令成功完成。
7aN(KiQN(z0
${J VSxY&a+Rw03.        生成容器目录,此步骤手动完成,最终定义的容器目录如下:F:\MYINST\NODE0000\SQL00001\SYSCTBS;F:\MYINST\NODE0000\SQL00001\SYSTMPTBS1;F:\MYINST\NODE0000\SQL00001\USERTBS1;F:\MYINST\NODE0000\SQL00001\USERTMPTBSITPUB个人空间#hT\N1?#SKYb
4.        定义新数据库的表空间容器,对应步骤3ITPUB个人空间],x X5^{.U:N)J
ITPUB个人空间`FFJQ6\Pa_
C:\>db2 set tablespace containers for 0 using (path "F:\MYINST\NODE0000\SQL00001ITPUB个人空间N2v&C6j6oC
\SYSCTBS")ITPUB个人空间a\)Is CB
DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。ITPUB个人空间3bpX3jy:u"u p

!}X(H&CJ)PL*a0C:\>db2 set tablespace containers for 1 using (path "F:\MYINST\NODE0000\SQL00001
1@MX'D Y l0\SYSTMPTBS1")
/^-Q8m ynr,^0DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。
,}] QJ Ahx%W0
Au,f(i+~0C:\>db2 set tablespace containers for 2 using (path "F:\MYINST\NODE0000\SQL00001
B$i)C&N@`A0\USERTBS1")ITPUB个人空间5DUL E o6A&~X
DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。
;G2~4_\7]B0
)r*hz \-w,D w0C:\>db2 set tablespace containers for 3 using (path "F:\MYINST\NODE0000\SQL00001ITPUB个人空间&R4DC2b8H&y
\USERTMPTBS")
y[6X ~Z2?-{0DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。
!Z1R'M}\vn J0
e#Xwh2sx7jqN05.        再次恢复数据库,对应步骤4ITPUB个人空间 z3r8HAiR~

&_l.E&o"z0C:\>db2 restore database dwzxt continueITPUB个人空间S5\S'V!\ y7g0W k/SZ
DB20000I  RESTORE DATABASE 命令成功完成。
.h[Q`%R z0
l d/lF7O(@6J)Dv0
'Mf8Ee3AjHR0ITPUB个人空间'z1`PL8a*y
那么第二个例子也ok!ITPUB个人空间fA+~ D{&kaL
ITPUB个人空间3_ v1FP(kzO/K~?

W}Du.{)b*](I0这边做的几个例子比较简单,对于数据库的再现备份、多分区数据库等几个角度都没有涉及到,不过相信基本上的步骤也就如上总结的4个步骤,无非多注意一些地方,比如日志的处理,比如恢复时间的选择等等。
b|8ToZ#u]xJ0ITPUB个人空间5z'z(e;_Dq?
ITPUB个人空间6]l4gH3w;qDvh
ITPUB个人空间:P%P:xsiVw
                                                    2008-02-23
HN(V,gh,jkF^t5T0                                                    Z.X.T(myfriend2010)ITPUB个人空间-pp,J`0Ou YJ

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-11-24  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 12228
  • 日志数: 273
  • 图片数: 1
  • 文件数: 2
  • 建立时间: 2007-12-01
  • 更新时间: 2008-11-19

RSS订阅

Open Toolbar