camyd
作者camyd·2012-06-14 14:04
数据库管理员·中储粮

DB2 export和import

字数 1941阅读 1433评论 1赞 0
DB2 在线导出

   1. 导出表结构、视图、存储过程、触发器、函数、序列等,不包含Blob等二进制对象导出到指定的文件中

   在DB2控制台中执行命令如下:

db2look -d tb33 -e -a -x -i tb33 -w tb33 -o TB33.SQL 

  参数说明:

  -d: 指定数据库名称

  -e:抽取复制数据库所需要的 DDL 文件

  -a: 为所有创建程序生成统计信息

  -x: 生成排除对象的原始定义程序的“授权”语句 DDL

  -i:登录到数据库驻留的服务器时所使用的用户标识

  -w: 登录到数据库驻留的服务器时所使用的密码

  -o: 将输出重定向到给定的文件名


   2. 导出表数据

      导出表数据分两步执行:生成导出命令脚本文件;执行导出命令脚本文件。

   1. 生成导出命令脚本文件:

   通过DB2Manager工具执行下面的语句生成导出表数据命令,其中 type=’t’ 表示仅导出表数据;

--导出表数据语句
select 'export to H:db2TB33'|| rtrim(tabname) || '.ixf of ixf select * from ' || rtrim(tabname) || ';' from syscat.tables where tabschema = 'TB33' and type='T'

命令执行说明:

   将生成schema为 TB33 数据库中所有表数据的导出命令; 这个导出命令指定将每一张表的表数据保存为 表名.ixf的文件; 保存路径为 H:db2TB33下;将执行后生成的导出命令保存为一个export.txt 的文件。

   2. 执行导出命令脚本文件:

再通过 DB2的控制台执行命令为  :

db2 –tvf export.txt。

参数说明:

-t 设置语句终止字符

-v 在控制台上显示执行内容

-f 读取输入文件

脚本成功执行后,将在目录为 H:db2TB33下生成 表名.ixf 表数据信息。






DB2在线导入

注意:在导入前一定要确定表空间的名称及页大小的一致,及schema的一致。

   1. 导入表结构、视图、存储过程、触发器、函数、序列等,不包含Blob等二进制对象导出到指定的文件中

      在DB2控制台中执行如下命令:

--登陆DB2
db2 connect to tb33_s

--指定schema

db2 set current schEmA tb33 

--导入TB33.sql 为DB2的导出文件
db2 -tvf TB33.SQL

-t 设置语句终止字符

-v 在控制台上显示执行内容

-f 读取输入文件 

   2. 导入表数据

      导入表数据分两步执行:生成导入命令脚本文件;执行导入命令脚本文件。

   1. 生成导入命令脚本文件:

    通过DB2Manager工具执行下面的语句生成导入表数据命令,其中 type=’t’ 表示仅导出表数据;

--导入表数据语句
select 'import from H:DB2TB33'||rtrim(tabname)||'.ixf of ixf insert into'||' '||rtrim(tabname)|| ';' from syscat.tables where tabschema = 'TB33' and type='T'

命令执行说明:

    将生成schema为 TB33 数据库表数据的导入命令;将路径为 H:db2TB33下的所有表结构文件导入;

将执行后生成的导出命令保存为一个import.txt 的文件。 

   2. 执行导入命令脚本:

再通过 DB2的控制台执行命令为

db2 –tvf import.txt

-t 设置语句终止字符

-v 在控制台上显示执行内容

-f 读取输入文件

脚本成功执行后,在DB2Manager中对数据表查询,将看到导入的数据。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论1 条评论

uc804uc804数据库运维工程师企业
2012-08-16 15:06
飘过
Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广