1. db2cmd
2. cd d:\exportdb
3. db2 connect to MCT28 user db2inst1 using password
4. db2look -d MCT28 -l -o 28dbspace.sql -i db2inst1 -w password
5. db2look -d MCT28 -e -c -o 28db.sql -i db2inst1 -w password
6. db2move MCT28 export -u db2inst1 -p password
7. db2 connect reset
8. 在新的要安装数据库的机器上执行,指定数据库目录为D盘:db2 create db EP37MCT on D:
9. Db2 list db directory 查看“local database directory”
10. Db2 connect to EP37MCT user devuser using devuser
11. 查看tablespace物理路径:Db2 list tablespace containers for 1
12. 修改99dbspace.sql, 替换””为” /home/db2inst1/db2inst1/NODE0000/EP37/T0000001/”
13. 注意最后一个” Fst2_tsd\cont1” 改为” Fst2_tsd/cont1”
14. 注意:windows环境下文件路径应为:“D:\dir\”,AIX 下为:“/home/db2inst1”
15. 修改99db.sql, 将”EP37”替换成【NewDatabaseName】
16. 将99db.sql分解为3个文件,分别为:a. 创建表及索引的脚本语句99db.sql b.创建外键约束的语句99dbfky.sql(搜索“-- DDL Statements for foreign keys”) c.创建储存过程的脚本语句99dbproc.sql(搜索“-- DDL statements for User Defined Functions”)。(注意:每个sql必须包含connect to 头和commit结尾)
17. 修改dbproc.sql,替换” CREATE ALIAS "DEVUSER "” 为 “CREATE ALIAS "DB2INST1"”(注意:大小写敏感)
18. 修改db2move.lst, 删除所有包括SYSTOOLS的行,如 !"SYSTOOLS"."AM_BASE_TASKS"!tab1.ixf!tab1.msg!
19. db2 -tvf 99dbspace.sql >/home/db2inst1/backup/99dbspace.log
20. db2 -tvf 99db.sql >/home/db2inst1/backup/99db.log
21. db2move EP37MCT load -lo INSERT >/home/db2inst1/backup/99move.log
22. 查看move.log,搜索“Check message”,发现有未正确导入数据的表
23. windows 远程连接,手工导入24中出错的表。Sql如下
24. IMPORT FROM "D:\W3_Build_Center\db\backup\091211_db_install_EP37MCT\tab134.ixf" OF ixf modified by generatedignore/identityignore INSERT INTO SONEDBA.CORCUSTIDENTITY;
25. db2 -tvf 99dbfky.sql >/home/db2inst1/backup/99dbfky.log
26. 查看99dbfky.log,如果有foreign key 导入错误,重新生成foreign key
27. db2 -tvf 99dbproc.sql >/home/db2inst1/backup/99dbproc.log
注意:在24步时,可能会发生数据导入不进去的情况,这时候,需要检查表是否被挂起,如果挂起需要解挂, 再执行24步.
db2 "select 'db2 set integrity for oatest.'||TABNAME||' immediate checked' from syscat.tables where TABSCHEMA='MYSCHEMA' and STATUS='C'"
此文章为同事所写,我厚颜无耻的记下,忘不要见怪.