博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
db2move 导入导出数据库
阅读量:5846 次
发布时间:2019-06-18

本文共 2093 字,大约阅读时间需要 6 分钟。

在进行数据迁移时,使用DB2MOVE导入导出数据是比较方便的。

(一)使用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 password

说明:

1,这将会把数据库testdb中的全部数据提取到当前目录(/home/backup/mydata)中。每个表的内容都存储在一个.ixf文件中,每个.ixf文件都有一个与之相对应的.msg文件,.msg文件是描述从表中导出数据时的信息的。另外还有两个文件,db2move.lst用来记录.ixf文件、.msg文件与表的一一对应关系,EXPORT.out记录的是导出数据时的屏幕输出。
2,有关db2move指令更多的细节,请直接执行该指令,将会打印出其帮助信息。

(二)使用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,这样比较便于维护和管理。

(三)db2move 装载数据

db2move mytestdb  load

如果发现有表导入失败,需要手工处理。

注意点:

mybigspace可能要根据实际情况设值

导入的时候把数据库的一些表结构中的约束等等都去掉,导完之后再加上.

转载地址:http://tkwjx.baihongyu.com/

你可能感兴趣的文章
P2P的远程协助系统技术分析[转]
查看>>
在.NET开发中的单元测试工具之(1)——NUnit
查看>>
windows2008支持多用户同时登录
查看>>
UEditor 1.2.5 for java 自定义配置
查看>>
从Redis的数据丢失说起
查看>>
理解对象(通过关联数组和基本包装类型)
查看>>
linux查看系统版本(32位/64位)的方法
查看>>
Highcharts中Legend动态显示点值
查看>>
MySQL数据库主从同步(单台2实例)
查看>>
HashMap和HashTable简介和区别
查看>>
java json 库之 jackson
查看>>
【图像缩放】最邻近插值
查看>>
阿里数据中台七年演化史——行在口述干货
查看>>
10.Java异常问题
查看>>
利用Git Webhooks实现jekyll博客自动化部署
查看>>
Fescar undoExecutor介绍
查看>>
Linux命令操作大全
查看>>
从周五开始香港主机特别慢,香港主机用户有同感吗?
查看>>
Ember.js 3.9.0-beta.3 发布,JavaScript Web 应用开发框架
查看>>
python标准库00 学习准备
查看>>