首先查看db2主进程是否存在
ps -ef|grep db2sys
若不存在使用db2start打开数据库
备份介质为冷备数据源,
cd 到介质所在目录下:
cd /home/db2inst1/backup
使用redirect参数来更改目录:
1.>db2 restore db xxx from . replace existing redirect without rolling forward
SQL1277W A redirected restore operation is being performed. Table space
configuration can now be viewed and table spaces that do not use automatic
storage can have their containers reconfigured.
DB20000I The RESTORE DATABASE command completed successfully.
列出xxx数据库容器详细信息:
2.>db2pd -db xxx -tablespaces
Database Partition 0 -- Database xxx -- Active -- Up 0 days 00:00:16 -- Date 2014-05-07-13.06.01.022471
Tablespace Configuration:
Address Id Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe LastConsecPg Name
0x0700000103DED1C0 0 SMS Regular 4096 32 Yes 32 1 1 On 1 0 31 SYSCATSPACE
0x0700000103DF06E0 1 SMS SysTmp 4096 32 Yes 32 1 1 On 1 0 31 TEMPSPACE1
0x0700000103DF3C00 2 SMS Regular 4096 32 Yes 32 1 1 On 1 0 31 USERSPACE1
0x0700000103DF7360 3 SMS Regular 4096 32 Yes 32 1 1 On 1 0 31 SYSTOOLSPACE
0x0700000103DFAAC0 4 SMS UsrTmp 4096 32 Yes 32 1 1 On 1 0 31 SYSTOOLSTMPSPACE
0x0700000103DFE220 5 DMS Large 4096 32 No 32 1 1 Off 1 0 31 CDTS
0x0700000105280080 6 DMS Large 4096 32 No 64 1 1 Off 1 0 31 TSASNCA
0x0700000105281560 7 DMS Large 4096 32 No 64 1 1 Off 1 0 31 TSASNUOW
0x0700000105282A40 8 SMS Regular 8192 32 No 32 2 2 Off 1 0 31 CLOBTBS1
Tablespace Statistics:
Address Id TotalPgs UsablePgs UsedPgs PndFreePgs FreePgs HWM Max HWM State MinRecTime NQuiescers PathsDropped
0x0700000103DED1C0 0 0 0 0 0 0 0 0 0x02001100 1373014041 0 No
0x0700000103DF06E0 1 0 0 0 0 0 0 0 0x02001100 0 0 No
0x0700000103DF3C00 2 0 0 0 0 0 0 0 0x02001100 1398850212 0 No
0x0700000103DF7360 3 0 0 0 0 0 0 0 0x02001100 1373021563 0 No
0x0700000103DFAAC0 4 0 0 0 0 0 0 0 0x02001100 1301089227 0 No
0x0700000103DFE220 5 50000 49952 0 0 0 0 0 0x02001100 1374892759 0 No
0x0700000105280080 6 38400 38368 0 0 0 0 0 0x02001100 1374890249 0 No
0x0700000105281560 7 12800 12768 0 0 0 0 0 0x02001100 1374890249 0 No
0x0700000105282A40 8 0 0 0 0 0 0 0 0x02001100 1398850032 0 No
Tablespace Autoresize Statistics:
Address Id AS AR InitSize IncSize IIP MaxSize LastResize LRF
0x0700000103DED1C0 0 No No 0 0 No 0 None No
0x0700000103DF06E0 1 No No 0 0 No 0 None No
0x0700000103DF3C00 2 No No 0 0 No 0 None No
0x0700000103DF7360 3 No No 0 0 No 0 None No
0x0700000103DFAAC0 4 No No 0 0 No 0 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. SQLSTATE=57017
解决方法:
>db2set
DB2COMM=tcpip
>db2set DB2CODEPAGE=1386
>db2set
DB2COMM=tcpip
DB2CODEPAGE=1386
>db2 terminate
>db2 connect to cnap
Database Connection Information
Database server = DB2/AIX64 9.7.7
SQL authorization ID = DB2INST1
Local database alias = XXX
Ok ,DB2 就算恢复完成了。