DB2导出表结构、表数据小结
2010/12/5
一、 DB2命令行导出数据库全库表结构
1 Win+R进入到DB2安装目录的BIN目录下,执行命令:DB2CMD,进入到DB2 CLP窗口。
命令:DB2CMD
2 创建一个data文件夹
命令:MKDIR data
说明:将数据库全表结构的SQL语句导出到data目录下
3 进入到data目录
命令:CD data
4 导出数据库全表结构
命令:DB2LOOK –D DATABASE_NAME –E –A – I USER_NAME –W PASSWORD –O DB_DLL.sql
说明: DATABASE_NAME —数据库名称
USER_NAME —登录数据库用户名
PASSWORD —登录数据库用户密码
DB_DLL.sql —数据库全表SQL脚本文件
db2数据库sql语句二、 DB2命令行导出数据库全库数据
1 执行命令,导出数据
命令:DB2MOVE DATABASE_NAME EXPORT –u USER_NAME –p PASSWORD
说明: DATABASE_NAME —数据库名称
USER_NAME —登录数据库用户名
PASSWORD —登录数据库用户密码
DB_DLL.sql —数据库全表SQL脚本文件
提示: -u,-p必须是小写
三、 DB2命令行导出数据库单个表数据
1 执行命令,导出单表数据
命令:DB2 EXPORT TO [path(eg..D:/TABLE_NAME.IXF)] OF IXF SELECT [字段(eg.. * or col1,col2,……coln)] FROM TABLE_NAME;
说明:导出文件格式A:DEL (delimited ASCII format);B:WSF (work sheet format);C:IXF (integrated exchange format, PC version)
四、 DB2命令行导入表数据
1 执行命令导入表数据
命令:DB2 IMPORT FORM [path(eg..D:/TABLE_NAME.IXF)] OF IXF INSERT INTO TABLE_NAME;
DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF INSERT INTO TABLE_NAME;
DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF REPLACE INTO TABLE_NAME;
//当装载数据前,先删除已存在的记录
DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF RESTART INTO TABLE_NAME;
//当装载失败时,重新执行,并极力导出结果和错误信息
DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF RESTART INTO TABLE_NAME;
//在存在自增长字段的数据导入
DB2 LOAD FROM [path(eg..D:/TABLE_NAME.IXF)] OF IXF MODIFIED BY IDENTIEYIGORN INSERT TO TABLE_NAME;
解除装入数据时,发生的检查挂起:
SET INTEGRITY FOR TABLE1 CHECK IMMEDIATE UNCHECKED;
说明:命令只对数据通过约束检查的表有效,如果执行还不能解除,有必要检查数据的完整性,是否不符合约束条件,并试图重新整理数据,再执行装入操作.
db2 相关命令(db2look 和 move)以及相关SQL操作
关键字: db2look move
1、 导出到 一个文件获得sql语句
db2look -d cqyancao -e -o db.sql -i db2user -w psw
数据库名 要出文件名 用户名 密码
db2look -d cqyancao -e -o db.sql -i db2user -w psw
数据库名 要出文件名 用户名 密码
示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例: db2look -d DEPARTMENT -z myscm1 -e -o db2look.sql
-- 这将为模式名为 MYSCM1 的所有表生成 DDL 语句
-- 还将生成 $USER 创建的所有联合对象的 DDL。
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例: db2look -d DEPARTMENT -u walid -m -o db2look.sql
-- 这将生成 UPDATE 语句以捕获关于用户 WALID 创建的表/别名的统计信息
-
- db2look 输出被发送到名为 db2look.sql 的文件中
示例: db2look -d DEPARTMENT -u walid -e -wrapper W1 -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表的 DDL 语句
-- 还将生成适用于包装器 W1 的用户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例: db2look -d DEPARTMENT -u walid -e -server S1 -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表的 DDL 语句
-- 还将生成适用于服务器 S1 的用户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例: db2look -d DEPARTMENT -u walid -e -wrapper W1 -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表的 DDL 语句
-- 还将生成适用于包装器 W1 的用户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中
示例: db2look -d DEPARTMENT -u walid -e -server S1 -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表的 DDL 语句
-- 还将生成适用于服务器 S1 的用户 WALID 所创建所有联合对象的 DDL
-- db2look 输出被发送到名为 db2look.sql 的文件中
2.使用db2move命令导出数据库
从另一数据库中导出初始化数据,首先进入导出的目录,如:D:\db,
命令为:db2move dbname export –u username –p password。注:dbname 为原数据库名,username为用户名 password为密码。
恢复命令D:\db> db2move dbname import -u username -p password
3、使用db2move导出导入单表
导出 db2move dbname export -tn yc_news -u db2user -p password
导入 db2move dbname import -u db2user -p password
4、其它相关
db2取前十条记录
例如:
db2 => select * from tableName fetch first 10 rows only
从另一数据库中导出初始化数据,首先进入导出的目录,如:D:\db,
命令为:db2move dbname export –u username –p password。注:dbname 为原数据库名,username为用户名 password为密码。
恢复命令D:\db> db2move dbname import -u username -p password
3、使用db2move导出导入单表
导出 db2move dbname export -tn yc_news -u db2user -p password
导入 db2move dbname import -u db2user -p password
4、其它相关
db2取前十条记录
例如:
db2 => select * from tableName fetch first 10 rows only
db2修改字段长度
db2 alter fig alter cvalue set datatype varchar(255)
例如:
db2 => alter table news alter AUTHOR set data type varchar(250)
db2 => describe table news
db2增加字段方法
alter table table_name
add column column_name datatype
重要参数详解:
0b2w Q4W_G_y0-d DBname : 指定 数据库名
I;\_A_^_C$O:a0-e : 生成 数据库对象的 DDL 语句ITPUB个人空间_G$o
K5e6u_C_y h#k-v
-l : 生成 用户定义的 表空间、数据库分区组、Buffer Pools
-@ r:n!l'n0i_f"o.P0
0b2w Q4W_G_y0-d DBname : 指定 数据库名
I;\_A_^_C$O:a0-e : 生成 数据库对象的 DDL 语句ITPUB个人空间_G$o
K5e6u_C_y h#k-v
-l : 生成 用户定义的 表空间、数据库分区组、Buffer Pools
-@ r:n!l'n0i_f"o.P0
的 DDL 语句ITPUB个人空间n&B_Q {_R$l
-u Creator : 指定 创建者ID 的对象
_H ~,e.O_l_|_O_B0-a : 指定不限制 创建者
.U_`0B8g_Q_d G_C_H0-z schema : 指定 Schema
0VD V7e_w_`0-t Tname1 Tname2 ... TnameN : 指定 特定的 表
_W_c$~2o ~_r+}-x0-v Vname1 Vname2 ... VnameN : 指定 特定的 View
)S_S_f_i_d_y8a_n i0-tw Tname : 指定 表名字的匹配格式,日志表'LOG%'ITPUB个人空间1H!]0]%m
|_f8J_B_w2X1A
-o OutputFile : 指定输出结果文件名
#n_T_Q/s2f#X_w#K0-m : 生成 复制 统计信息表的 UPDATE 语句。ITPUB个人空间)x_f_J7S_e_n_?
-x : 生成 用户权限 相关DDL
#g_q9Uj_f_D,x_\4T_H_m0-xd : 生成 系统权限 相关DDL
9?*d![_F&U2i_o
M0-xs :XML模式存储库(XSR)对象(XML模式、DTD和外部实体)ITPUB个人空间_j_B_`0ka:yR&c-{z+[_j_^
-xdir dirname :XSR对象的放置位置
-u Creator : 指定 创建者ID 的对象
_H ~,e.O_l_|_O_B0-a : 指定不限制 创建者
.U_`0B8g_Q_d G_C_H0-z schema : 指定 Schema
0VD V7e_w_`0-t Tname1 Tname2 ... TnameN : 指定 特定的 表
_W_c$~2o ~_r+}-x0-v Vname1 Vname2 ... VnameN : 指定 特定的 View
)S_S_f_i_d_y8a_n i0-tw Tname : 指定 表名字的匹配格式,日志表'LOG%'ITPUB个人空间1H!]0]%m
|_f8J_B_w2X1A
-o OutputFile : 指定输出结果文件名
#n_T_Q/s2f#X_w#K0-m : 生成 复制 统计信息表的 UPDATE 语句。ITPUB个人空间)x_f_J7S_e_n_?
-x : 生成 用户权限 相关DDL
#g_q9Uj_f_D,x_\4T_H_m0-xd : 生成 系统权限 相关DDL
9?*d![_F&U2i_o
M0-xs :XML模式存储库(XSR)对象(XML模式、DTD和外部实体)ITPUB个人空间_j_B_`0ka:yR&c-{z+[_j_^
-xdir dirname :XSR对象的放置位置
Db2look –d dwdb –e –z dwrun –t buffer_ngboss3_voice_20120411 cdr_call_20120411| dw_call_20120411 dw_call_dt_20120411 st_call_dm| st_calltime_dm
导入
db2 -tvf xxx.sql
db2move详解
db2move 命令
db2move <database-name> <action> [<option> <value>]
首先,您必须指定数据库名(想要移动的表所在的数据库)和要执行的操作(export 和 import 或 load)。然后指定一个选项来定义操作的范围。例如,可以将一个操作限制在特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内。指定表、表空间或表的创建者的一个子集只对 export 操作有效。如果指定多个值,就必须使用逗号将其分隔开;在值列表项之间不允许有空格。可以指定的项最多为 10 个。
db2move <database-name> <action> [<option> <value>]
首先,您必须指定数据库名(想要移动的表所在的数据库)和要执行的操作(export 和 import 或 load)。然后指定一个选项来定义操作的范围。例如,可以将一个操作限制在特定的表(-tn)、表空间(-ts)、表创建者(-tc)或模式名(-sn)范围内。指定表、表空间或表的创建者的一个子集只对 export 操作有效。如果指定多个值,就必须使用逗号将其分隔开;在值列表项之间不允许有空格。可以指定的项最多为 10 个。
另外,也可以指定 -tf 选项,此时要使用一个文件名作为参数,其中列出了要导出的表名;在该文件中,每行只能列出一个完整的表名。您还可以指定以下内容:
-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
-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 和密码登录到远程系统上。
-u userid
指定一个用户 ID,该工具可以使用这个用户 ID 登录到远程系统上。
-p password
指定对该用户进行认证的密码;该工具需要使用一个有效的用户 ID 和密码登录到远程系统上。
db2move是DB2数据转移命令,用于不同操作系统之间(如linux和windows)的数据转移.
可以先用db2move export将数据导出,然后在另一个DB2里用db2move import或db2move load导入数据.
导出方法:
建立一个空文件夹,进入该文件夹使用
db2move Mydatabase export 导出数据.
可以先用db2move export将数据导出,然后在另一个DB2里用db2move import或db2move load导入数据.
导出方法:
建立一个空文件夹,进入该文件夹使用
db2move Mydatabase export 导出数据.
导入方法:
进入导出的文件夹,输入命令db2move Newdb load
实际操作中,使用load的时候可能会发生破坏表完整性约束的情况,需要执行set integrity for <tablename>
immediate checked消除表check pending的状态。
不过有些不理想的地方,db2move时系统虽然会自动建表,但是也仅限于表,表上的视图和索引还需要自行创建)
所以需要在导完数据后,用脚本创建索引和视图,以及授权等操作。这样可以防止破坏表的完整性。
进入导出的文件夹,输入命令db2move Newdb load
实际操作中,使用load的时候可能会发生破坏表完整性约束的情况,需要执行set integrity for <tablename>
immediate checked消除表check pending的状态。
不过有些不理想的地方,db2move时系统虽然会自动建表,但是也仅限于表,表上的视图和索引还需要自行创建)
所以需要在导完数据后,用脚本创建索引和视图,以及授权等操作。这样可以防止破坏表的完整性。
|12.7 db2move
|db2move 工具现在有两个附加选项 --aw 和 --sn。此工具的完整文档如下:
|数据库移动工具
| |
|此工具用来在工作站上的 DB2 数据库之间移动大量的表。该工具查询系统目录表以获取特定数据库并编译所有用户表的列表。然后,它以 |PC/IXF 格式导出这些表。可将 PC/IXF 文件导入或装入同一系统上的另一本地 |DB2 数据库,也可将这些文件传送至另一工作站平台并将其导入或装入该平台上的 DB2 数据库。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论