对于db2数据库,导入和导出表结构和数据其实很简单,只需要用到db2look和db2move两个命令即可。这两个命令都需要在客户端的命令行处理器中执行,但对于数据库服务器和客户端不在同一机器上的,需要借助catalog命令,来先完成远程数据库加载到本地,然后再进行导出导入操作。
如果是远程操作,则先需要把远程的数据库信息加载到本地,如果是本地则跳过1和2,从3开始,具体如下:
1、 catalog server 端的 node ,命令如下:
db2 catalog tcpip node node_name remote hostname server service_port
db2 uncatalog node node_name (取消节点的编目)
其中 node_name 是由你任意起的一个结点名,结点名不能跟已有的结点名重复(可通过db2 list node directory 查看),hostname也可为IP address,service_port为端口号一般默认为50000。节点目录用于存储远程数据库的所有连通性信息。
2、 catalog 远端 DB2 数据库,命令如下:
db2 catalog db db_name [as alias_name] at node node_name
db2 uncatalog db db_name (取消数据库的编目)
db_name 是指远程数据库的名字, alias_name 是客户端实例名(可以忽略), db2node 是指上面你所指定的节点node !db2 list database directory查看数据库编目
3、 连接数据库,命令如下:
db2 connect to db_name user user_name using password
db_name 是指数据库的名字, user_name 是数据库用户名,password是数据库密码
4、用db2look命令生成表结构的DLL脚本
db2look -d db_name -i user_name -w password -a -e -o d:\script.sql
db_name 是指数据库的名字, user_name 是数据库用户名,password是数据库密码
5、用db2move导出所有表的数据
db2move db_name export -u user_name -p password
db_name 是指数据库的名字,user_name 是数据库用户名,password是数据库密码
6、用export导出指定的表数据
db2 "export to d:\data\tab1.ixf of ixf lobs to d:\data\ lobfile lobs modified by lobsinsepfiles messages d:\data\tab1.msgselect * from schema_name.table_name"
schema_name 是表所属,table_name是表名, lobsinsepfiles 或 lobsinfile 是生成lob文件 前一个是生成每个,后面是生成到一个文件中
7、执行sql脚本
db2 -tvf d:\script.sql -z d:\script.log
8、用db2move导入所有表的数据
db2move db_name import -io replace -u user_name -p password
9、用import导入指定的表数据
db2 "import from d:\data\tab1.ixf of ixf messages d:\data\tab1.msg insert into schema_name.table_name"