export to C:\AIOT_20101222.del of del messages C:\AIOT_20101222.log select * from AIOT
import from C:\AIOT_20101222.del of del messages C:\AIOT_20101222.log insert into aiot
load client from C:\AIOT_20101222.del of DEL messages C:\AIOT_20101222.log insert into bpcogadm.aiot
用于数据移动的文件格式
这个部分简单介绍一下用于DB2数据移动的文件格式,共有四种:
1. ASC
非定界ASCII文件,是一个ASCII字符流。数据流中的行由行定界符分隔,而行中的每一列则通过起始和结束位置来定义。例如:
10 Head Office 160 Corporate New York
15 New England 50 Eastern Boston
20 Mid Atlantic 10 Eastern Washington
38 South Atlantic 30 Eastern Atlanta
42 Great Lakes 100 Midwest Chicago
51 Plains 140 Midwest Dallas
66 Pacific 270 Western San Francisco
84 Mountain 290 Western Denver
2. DEL
定界ASCII文件,也是一个ASCII字符流。数据流中的行由行定界符分隔,行中的列值由列定界符分隔。文件类型修饰符可用于修改这些定界符的默认值。例如:
10,"Head Office",160,"Corporate","New York"
15,"New England",50,"Eastern","Boston"
20,"Mid Atlantic",10,"Eastern","Washington"
38,"South Atlantic",30,"Eastern","Atlanta"
42,"Great Lakes",100,"Midwest","Chicago"
51,"Plains",140,"Midwest","Dallas"
66,"Pacific",270,"Western","San Francisco"
84,"Mountain",290,"Western","Denver"
3. WSF
work sheet format,工作表格式,用于与Lotus系列的软件进行数据交换。
4. PC/IXF
集成交换格式(Integration Exchange Format,IXF)数据交换体系结构的改编版本,由一些列可变长度的记录构成,包括头记录、表记录、表中每列的列描述符记录以及表中每行的一条或多条数据记录。PC/IXF 文件记录由包含了字符数据的字段组成。
使用db2move导出全部数据
db2move是一个集成式的数据移动工具,它支持导出(export)、导入(import)、装入(load)三种操作方式。其实db2move的这三种工作方式分别是通过简单使用db2 export, db2 import, db2 load指令来完成的。
此部分仅仅介绍其export功能,import和load将在稍后的部分介绍。使用db2move导出的数据文件格式是IXF。
建立并进入数据存放目录:
$ mkdir /home/backup/mydata
$ cd /home/backup/mydata
导出指定的数据库中的全部数据:
$ db2move testdb export –u db2inst1 –p thepasswd
说明:
1,这将会把数据库testdb中的全部数据提取到当前目录(/home/backup/mydata)中。每个表的内容都存储在一个.ixf文件中,每 个.ixf文件都有一个与之相对应的.msg文件,.msg文件是描述从表中导出数据时的信息的。另外还有两个文件,db2move.lst用来记 录.ixf文件、.msg文件与表的一一对应关系,EXPORT.out记录的是导出数据时的屏幕输出。
2,有关db2move指令更多的细节,请直接执行该指令,将会打印出其帮助信息。
使用db2 export指令导出数据
与上面提到的db2move的export功能不同,db2 export是一个更加细致的导出工具,它支持三种数据文件格式:DEL, WSF, IXF.
以下示范将数据库testdb中表mytbl的数据导出,存储在目录 /home/backup 下。
建立到数据库的连接:
$ db2
db2 => connect to testdb user db2inst1 using thepasswd
以DEL格式导出:
db2 => export to /home/backup/mytbl.txt of del select * from mytbl
以IXF格式导出:
db2 => export to /home/backup/mytbl.ixf of ixf select * from mytbl
注:若需要记录导出过程中的message,使用:
db2 => export to /home/backup/mytbl.ixf of ixf messages /home/backup/mytbl.msg select * from mytbl
断开连接:
db2 => connect reset
db2 => quit
$
更多有关db2 export的帮助,请:
$ db2 ? export
使用db2move导入(import)数据
以db2inst1用户身份登录到Host 2。
创建数据库mytestdb:
$ db2
db2 => create database mytestdb on ‘/home/db2inst1’ using codeset UTF-8 territory CN
db2 => connect to mytestdb user db2inst1 using thepasswd
创建一个pagesize为16K的bufferpool,名为mybigpool:
db2 => create bufferpool mybigpool immediate size 1000 pagesize 16K
创建一个tablespace使用上面创建的bufferpool,名为mybigspace:
db2 => create regular tablespace mybigspace pagesize 16K managed by system using (‘/home/db2inst1/db2inst1/NODE0000/SQL00004/SQLT0003.0’) extentsize 16 overhead 12.67 prefetchsize 16 transferrate 0.18 bufferpool mybigpool dropped table recovery off
注:
extentsize, overhead, prefetchsize, transferrate这几个参数值与所使用的服务器有关,我这里使用的值是基于普通的、使用SCSI硬盘的PC服务器的。
完成空库的创建:
db2 => commit work
db2 => connect reset
db2 => terminate
导入(import)数据:
使用import方式不需要先建表结构,即,准备好一个空库就行了。这一点与load方式不一样,load方式需要先建立表结构。
我将从Host1上导出的全部数据文件(位于Host1的 /home/backup/mydata下)复制到Host2下某个目录下,假定为 /home/movedata
$ cd /home/movedata
$ db2move mytestdb import –u db2inst1 –p thepasswd
此时屏幕上会显示有关导入数据的信息。
存在的问题:
db2move import方式只能导入“普通”的表,如果表中存在自增长的IDENTITY列,那么使用db2move import时,会出错。这是因为,如果IDENTITY列创建表的时候都是定义成always的话,那么在导入数据的时候该列数据是不能被赋值的,而是应该由系统生成,使用db2move无法导入这样的表。对于这种含有IDENTITY列的表,只能使用db2 import指令来进行导入,相关的参数是IDENTITYIGNORE,IDENTITYMISSING。我将在下一部分给出具体的指令操作。
一句题外话:
如果需要实现唯一主键,可以不必使用IDENTITY列,改而使用sequence,这样比较便于维护和管理。
使用db2 import指令导入数据
import和export是一对存在对应关系的指令,有一点不同的是,import支持四种格式:ASC, DEL, WSF, IXF, 而export只支持三种(见上面相应部分的描述)。
以下示范将数据文件/home/movedata/mytbl.ixf导入到数据库mytestdb中。
$ db2
db2 => connect to mytestdb user db2inst1 using thepasswd
db2 => import from /home/movedata/mytbl.ixf of ixf insert into mytbl
db2 => commit work
db2 => connect reset
db2 => quit
$
在上一部分,我有提到,若表中存在自增长的IDENTITY列,需要使用相应的参数才能导入,比如:
db2 => import from /home/movedata/mytbl2.ixf of ixf modified by identityignore insert into mytbl2
分享到:
相关推荐
DB2 Export 和 Import 命令相关 DB2 数据库管理系统提供了多种数据移动方式,其中包括数据的导入(Import)、导出(Export)和装入(Load)。在本文中,我们将详细介绍 DB2 中的数据移动命令,包括 Export 和 ...
db2 import to c:\dftz.txt of del commitcount 5000 messages c:\dftz.msginsert into dftz 导入表数据从文件中。 15. 执行一个批处理文件 db2 -tf 批处理文件名 执行一个批处理文件中的 SQL 语句。 16. 自动...
- `db2 import to c:\dftz.txt of del commitcount 5000 messages c:\dftz.msg insert into dftz`:从`c:\dftz.txt`导入数据到表`dftz`,每次提交5000条记录,并将导入过程中产生的消息写入`c:\dftz.msg`文件。...
db2 export to file_name.del of del select * from file_name ``` 在这个例子中,`claimrltnp.del`是导出文件,`pams.claimrltnp`是表名。 3. **数据导入(恢复)** 数据导入分为`replace`和`insert`两种方式...
这通常通过 `db2export` 和 `db2import` 命令来实现。 **使用 DB2EXPORT 导出数据** **命令格式:** ```sh $db2export FROM tablename TO filename OF type ``` **示例:** ```sh $db2export FROM mytable TO ...
DB2 EXPORT TO [path(eg..D:/TABLE_NAME.IXF)] OF IXF SELECT [字段(eg.. * or col1,col2,……coln)] FROM TABLE_NAME; ``` 其中,path 是导出文件的路径,TABLE_NAME 是表名称,字段是要导出的字段。 四、DB2 ...
- `db2 "import from btpoper.txt of del modified by coldel | insert into btpoper"`:使用指定的分隔符(如竖线)进行数据导入。 #### 三、数据卸载 数据卸载是指将数据从数据库中导出到外部文件的过程,主要...
DB2提供了多种工具来实现这一目标,如`db2move`、`db2import`、`db2export`和`LOAD`命令。`db2move`用于数据库级别的迁移,而`db2import`和`db2export`则专注于表级别的操作。`LOAD`命令适用于大量数据的快速加载,...
- **导出表数据**: `db2 export to <文件路径> of <格式> select * from <表名>` - **示例**: `db2 export to c:\dftz.txt of del select * from dftz` - **说明**: 将表中的数据导出到文件。 - **导入表数据**: `...
Db2move dbname export -u username -p password 其中,dbname 指定数据库名,-u 指定用户名,-p 指定密码。 例如,以下命令将导出当前数据库的表数据到一个名为 tab4.ixf 的文件中: Db2move mydb export -u ...
除了使用DB2控制中心,还可以通过命令行工具如 `db2import` 和 `db2export` 来执行导入和导出操作。`db2import` 用于从数据文件导入数据到表或数据库,而 `db2export` 则用于从数据库导出数据到文件。这些命令提供了...
- `db2 export to 文件路径 of ixf select * from 表名` 导出数据到IXF(IBM eXchange Format File)格式,更高效且包含元数据。 - `import from 文件路径 of del ...` 从文本文件导入数据到表,支持不同模式...
- **db2 "export to d:\data\tab1.ixf ofixflobs to d:\data\lobfilelobs modified bylobs insepfiles messages d:\data\tab1.msg select * from schema_name.table_name"** - `to d:\data\tab1.ixf` 指定输出文件...
8. **数据导入导出**:`db2 import`和`db2 export`用于从文件批量导入或导出数据。 通过"DB2v9 SQL Reference Vol.1.pdf"和"db2n0e90.pdf"这两份文档,你可以深入理解DB2 V9的SQL语法和命令用法,解决实际操作中...
- `db2 "export to <文件名> of del modified by col del | select * from <表名>"`:从指定表导出数据,并根据指定的列进行修改后导出到文件。 3. **条件导出数据** - `db2 "export to <文件名> of del select ...
- `db2 export to <file_path> of del select * from <table_name>`:将数据导出到指定文件。 **注意事项:** - `<file_path>`应替换为导出文件的完整路径。 - `<table_name>`应替换为实际的表名。 #### 十一、...
db2move orcl import -u db2inst1 -p db2inst1 ``` 至此,整个恢复流程完成,损坏的表得以恢复至新的数据库中,数据的完整性和一致性得到保障。 ### 三、总结 通过“db2look-move”方法,可以高效、安全地解决DB2...
DB2提供了一系列工具,如db2look、db2export、db2import等,它们与db2cat一起构成了强大的数据库管理工具集。这些工具各有侧重,合理利用可以实现对数据库的全方位管理。 总结来说,db2cat是DB2管理中的重要工具,...
30. **导入数据**:`db2 import from myfile of ixf messages msg replace into tb1` 将IXF文件`myfile`的数据导入到`tb1`表,如果存在同名记录,则替换。 31. **导出数据库的所有表数据**:`db2move test export` ...