Excalibur0 2012-12-31
前提介绍:计算机A、B(A/B在同一局域网),计算机B上装有linux操作系统,linux系统上装有DB2数据库。
目的:计算机A通过FTP连接到B上linux下的DB2数据库,将数据库表结构和数据批量导出。
操作过程:
一、计算机A、B和linux的连接
1.首先要保证这三个机器的ip要在同一网段,这里A和B为局域网中自动获取,所以要先设置linux的ip为自动获取获取设定为和A/B在同一ip段,这里是设置为自动获取的。
修改配置文件:/etc/network/interfaces
将
ifaceeth0inetmanual/static
修改为
ifaceeth0inetdhcp
2.选择虚拟机网络连接为桥接方式,网卡根据情况选择(本地、无线、回环网卡),我这里是无线局域网,所以选择无线网卡。
二、连接并操作DB2数据库
1.远程登录linux(注:现获取linux的ip,这里为192.168.0.112)
ip:192.168.0.112
username:root
password:test
2.登录DB2
(注:DB2与oracle不一样,它没有独立的用户管理系统,必须借用OS用户来提供安全性认证,所以这里需要在创建实例之前先创建LINUX用户和组。
一共创建了3个组,每个组一个用户。其作用和含义分别是:
管理实例的用户db2inst1组名:db2iadm1
受防护用户db2fenc1组名:db2fadm1
数据库管理服务器DAS用户dasusr1组名:dasadm1
其中管理实例的用户db2inst1是最常用的,我们为它设置口令db2,所以这里要切换用户到db2inst1)
cd/opt/ibm/db2/V9.7/bin
su-db2inst1
3.连接数据库:db2connecttodatabaseuserusernameusingpassword
4.导出数据库表结构和数据
导出表结构:db2look-ddbname-e-a-x-iusername-wpassword-otest.sql
导出表数据:建立一个目录db_test;
cd进入该目录;
db2movedbnameexport–uuser–ppassword;
4.导入数据库表结构和数据
导入表结构:db2-tvfdb2look.sql创建表
在目标机建立一个目录test,将导出的数据库表结构和数据信息放到该目录下,cd进入:db2movedbnameimport–uuser–ppassword
或者db2movedbnameload加载数据
(注:import和load各有优点:
1>import方式导入时,无需建表,建立一个数据库即可;load则需要先建立数据库表;
2>import方式只能导入“普通”的表,如果表中存在自增长的IDENTITY列,那么使用db2moveimport时,会出错,这是因为,如果IDENTITY列创建表的时候都是定义成always的话,那么在导入数据的时候该列数据是不能被赋值的,而是应该由系统生成,使用db2move无法导入这样的表。对于这种含有IDENTITY列的表,使用load方式进行数据导入。)