DB2数据恢复一例 SQL0928N(二)

2014-11-24 17:18:19 · 作者: · 浏览: 1
None No

0x0700000103DFE220 5 No No 0 0 No 0 None No

0x0700000105280080 6 No No 0 0 No 0 None No

0x0700000105281560 7 No No 0 0 No 0 None No

0x0700000105282A40 8 No No 0 0 No 0 None No



Containers:

Address TspId ContainNum Type TotalPgs UseablePgs PathID StripeSet Container

0x0700000103CFFA40 0 0 Path 0 0 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/SQLT0000.0

0x0700000103CFFC80 1 0 Path 0 0 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/SQLT0001.0

0x0700000103DF50E0 2 0 Path 0 0 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/SQLT0002.0

0x0700000103DF8840 3 0 Path 0 0 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/SYSTOOLSPACE

0x0700000103DFBFA0 4 0 Path 0 0 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/SYSTOOLSTMPSPACE

0x0700000103DFF700 5 0 File 50000 49952 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/CDTABLESPACE.DAT

0x0700000103DFF940 6 0 File 38400 38368 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/TSASNCA

0x0700000103DFFB80 7 0 File 12800 12768 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/TSASNUOW

0x0700000103DFFDC0 8 0 Path 0 0 - 0 /db2sys/db2inst1/XXX/NODE0000/SQL00003/XXXCLOB



在/db2sys目录下新建xxx数据库容器存储路径:

cd /db2sys/db2inst1

mkdir xxx

3.更改容器及文件的存储路径:


db2 "set tablespace containers for 0 using (Path '/db2sys/db2inst1/xxx/NODE0000/SQL00001/SQLT0000.0')"

db2 "set tablespace containers for 1 using (Path '/db2sys/db2inst1/xxx/NODE0000/SQL00001/SQLT0001.0')"

db2 "set tablespace containers for 2 using (Path '/db2sys/db2inst1/xxx/NODE0000/SQL00001/SQLT0002.0')"

db2 "set tablespace containers for 3 using (Path '/db2sys/db2inst1/xxx/NODE0000/SQL00001/SYSTOOLSPACE')"

db2 "set tablespace containers for 4 using (Path '/db2sys/db2inst1/xxx/NODE0000/SQL00001/SYSTOOLSTMPSPACE')"

db2 "set tablespace containers for 5 using (File '/db2sys/db2inst1/xxx/NODE0000/SQL00001/CDTABLESPACE.DAT' 50000)"

db2 "set tablespace containers for 6 using (File '/db2sys/db2inst1/xxx/NODE0000/SQL00001/TSASNCA' 38400)"

db2 "set tablespace containers for 7 using (File '/db2sys/db2inst1/xxx/NODE0000/SQL00001/TSASNUOW' 12800)"

db2 "set tablespace containers for 8 using (Path '/db2sys/db2inst1/xxx/NODE0000/SQL00001/xxxCLOB')"



ps:其中遇到一个SQL0298N的报错:

SQL0298N Bad container path. SQLSTATE=428B2

容器类型和容器名指定均正确。查到最后查不出办法,最后使用一个比较笨拙的办法;

解决方法:

删除xxx数据库


>db2 drop db xxx

重新使用db2 restore 恢复并添加to参数:

>db2 restore db xxx from . on /db2sys/db2inst1/xxx replace existing redirect without rolling forward

在重复上面更改容器和数据文件路径的命令就OK了。

路径更改完毕之后,restore continue:

>db2 restore db xxx continue

DB20000I The RESTORE DATABASE command completed successfully.



更改归档路径

>db2 update db cfg for xxx using LOGARCHMETH1 disk:/db2sys/db2log/xxx



重启数据库使参数生效:

>db2 stop

>db2 start



Ps:其中db2 connect 的时候遇到SQL0332N


>db2 connect to xxx

SQL0332N Character conversion from the source code page "1386" to the target

code page "819" is not supported.