导出db2数据库的表结构和数据
?? 对于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 !
?
???? 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.msg select * 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"
???