一、迁移表结构和视图及索引
1、首先连接要备份的db2数据库服务器
2、连接服务器后执行导出表结构命令:db2look -d dbname -z schema -e -o db2.sql --dbname是要备份的DB2数据库名,schema是要备份的DB2数据库实例名,根据自己的需求改成自己要备份的数据库名和实例名,db2.sql是生成的一个sql文件,名称可以自己随意取,但要是.sql后缀
3、修改db2.sql文件内容,将里面的数据库名和实例名改成自己要迁移到的DB2数据库名和实例名,并在之后的导入操作中根据报错提示更改或者删除一些其它内容
4、将修改后的db2.sql文件上传到要迁移的数据库服务器上
5、执行导入表结构命令:db2 -tvf db2.sql
二、迁移表数据
1、在要备份的DB2数据库服务器新建一个db2目录,目录名称可以自己随意取
2、进入新建db2目录执行导出表数据语句:db2move dbname export -sn schema -u db2user -p db2passwd --dbname是要备份或者迁移的数据库名,schema要备份或者迁移的实例名,根据自己的需求做更改
3、修改生成的db2move.lst文件里的schema名字 --修改成要迁移到的新的DB2数据库实例名
4、禁用新导入所有表的外键约束:ALTER TABLE 表名称 ALTER FOREIGN KEY 约束名称 NOT ENFORCED
相关字典表:SYSIBM.SYSTABCONST
如:select * from SYSIBM.SYSTABCONST where TBCREATOR='DVP_BAK' AND CONSTRAINTYP='F';
5、将修改后的db2目录及目录下的文件打包发送到新环境服务器上后解压
--压缩命令 tar -cf db2.tar db2
--解压命令 tar -xf db2.tar
6、导入表数据:db2move db2name import -u db2user -p db2passwd
--db2name是新的数据库名,db2user、db2passwd是新的数据库用户和密码,根据自己的需求做改动
7、启用新导入所有表的外键约束:ALTER TABLE 表名称 ALTER FOREIGN KEY 约束名称 ENFORCED
--如果上述方案不能满足你的需求可以查看下面这些参数
db2look [-h]
-d: 数据库名称:这必须指定
-e: 抽取复制数据库所需要的 DDL 文件
-xs: 导出 XSR 对象并生成包含 DDL 语句的脚本
-xdir: 路径名:将用来放置 XSR 对象的目录
-u: 创建程序标识:如果 -u 和 -a 都未指定,则将使用 $USER
-z: 模式名:如果同时指定了 -z 和 -a,则将忽略 -z
-t: 生成指定表的统计信息
-tw: 为名称与表名的模式条件(通配符)相匹配的表生成 DDL
-h: 更详细的帮助消息
-o: 将输出重定向到给定的文件名
-a: 为所有创建程序生成统计信息
-m: 在模拟方式下运行 db2look 实用程序
-c: 不要生成模拟的 COMMIT 语句
-r: 不要生成模拟的 RUNSTATS 语句
-l: 生成数据库布局:数据库分区组、缓冲池和表空间。
-x: 生成排除对象的原始定义程序的“授权”语句 DDL
-xd: 生成包括对象的原始定义程序的“授权”语句 DDL
-f: 抽取配置参数和环境变量
-td: 将 x 指定为语句定界符(缺省定界符为分号(;))
-i: 登录到数据库驻留的服务器时所使用的用户标识
-w: 登录到数据库驻留的服务器时所使用的密码
-noview: 不要生成 CREATE VIEW ddl 语句
-wrapper: 为适用于此包装器的联合对象生成 DDL
-server: 为适用于此服务器的联合对象生成 DDL
-nofed: 不要生成 Federated DDL
-fd: 为 opt_buffpage 和 opt_sortheap 以及其他配置和环境参数生成 db2fopt 语句。
-v: 只为视图生成 DDL,当指定了 -t 时将忽略此选项
-dp: 在 CREATE 语句之前生成 DROP 语句
-ct: 按对象创建时间生成 DDL 语句
db2move 命令
db2move [ ]
首先,您必须指定数据库名(想要移动的表所在的数据库)和要执行的操作(export 和 import 或 load)。然后指定一个选项来定义操作的范围。例如,可以将一个操作限制在特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内。指定表、表空间或表的创建者的一个子集只对 export 操作有效。如果指定多个值,就必须使用逗号将其分隔开;在值列表项之间不允许有空格。可以指定的项最多为 10 个。
另外,也可以指定 -tf 选项,此时要使用一个文件名作为参数,其中列出了要导出的表名;在该文件中,每行只能列出一个完整的表名。您还可以指定以下内容:
-tn -表名,导出单一表
-tf - 文件名,文件中每行记录一个完整的表名
-ts -表空间名称,用于导出某个表空间下的所有数据
-tc -表创建者,导出某用户创建的所有数据
-sn -模式名,用于导出某个模式下的所有数据
-io import-option
指定 DB2 的 import 工具可以运行的一种模式。有效的选项有:CREATE、 INSERT、 INSERT_UPDATE、 REPLACE 和 REPLACE_CREATE。缺省值为 REPLACE_CREATE。有关这些模式的更多内容,请参阅 DB2 的产品文档,可以从 DB2 技术支持获得这些文档。
-lo load-option
指定 DB2 的 load 工具可以运行的一种模式。有效的选项有:INSERT 和 REPLACE。缺省值为 INSERT。有关这些模式的更多内容,请参阅 DB2 的产品文档,可以从 DB2 技术支持获得这些文档。
-l lobpaths
指定要创建或查找的 LOB 文件的位置。必须指定一个或多个绝对路径名。如果指定了多个绝对路径,就必须使用逗号将其分隔开;值之间不允许有空格。缺省值是当前目录。
-u userid
指定一个用户 ID,该工具可以使用这个用户 ID 登录到远程系统上。
-p password
指定对该用户进行认证的密码;该工具需要使用一个有效的用户 ID 和密码登录到远程系统上。




