http://www.cnblogs.com/kfarvid/archive/2010/12/15/1906776.html db2的博文
-bash-3.2$ db2 connect to cashman
Database Connection Information
Database server = DB2/AIX64 9.7.0
SQL authorization ID = DB2INST1
Local database alias = CASHMAN
-bash-3.2$ db2look -d cashman -e -o db.sql -i db2inst1 -w '1qaz!QAZ'
-- No userid was specified, db2look tries to use Environment variable USER
-- USER is: DB2INST1
-- Creating DDL for table(s)
-- Output is sent to file: db.sql
-- Binding package automatically ...
-- Bind is successful
-- Binding package automatically ...
-- Bind is successful
1、导出到 一个文件获得sql语句
db2look -d cqyancao -e -o db.sql -i db2user -w psw
数据库名 要出文件名 用户名 密码
示例: db2look -d DEPARTMENT -u walid -e -o db2look.sql
-- 这将生成由用户 WALID 创建的所有表和联合对象的 DDL 语句
-- db2look 输出被发送到名为 db2look.sql 的文件中
-bash-3.2$ cd /home/backup/mydata
-bash-3.2$ db2move cashman export -u db2inst1 -p '1qaz!QAZ'
EXPORT: 9 rows from table "DB2INST1"."T_WARNPARAM"
EXPORT: 0 rows from table "DB2INST1"."TEST"
Disconnecting from database ... successful!
End time: Fri Nov 21 10:41:21 2014
在mydata文件里
-bash-3.2$ ls
EXPORT.out tab20.ixf tab33.ixf tab46.msg tab59.msg
db2move.lst tab20.msg tab33.msg tab47.ixf tab6.ixf
SQL0752N Connecting to a database is not permitted within a logical unit of
work when the CONNECT type 1 setting is in use. SQLSTATE=0A001
解释:
发出 COMMIT 或 ROLLBACK
语句之前,尝试连接另一个数据库或同一个数据库。在 CONNECT 1
类环境内不能处理该请求。
退出执行reset
重新执行就可以了,
[db2inst1@localhost ~]$ db2 connect reset
CREATE DATABASE TCASHMAN
CREATE SCHEMA TCASHMAN AUTHORIZATION TCASHMAN
db2 connect to TCASHMAN
db2 set current schema TCASHMAN
db2 -tvf /home/db2inst1/data/db_714.sql
db2 -tvf D:\cashplay.sql windows 下执行的脚本
其中特别注意,第一,如果不是多个schema,则可以不用第二行。第二,第三行中的参数-tvf,解释如下,
-f 读取输入文件
-t 设置语句终止字符
-v 回送当前命令
如果文件中每个语句是直接以回车结尾,则用-vf即可,加上-t是表示没条语句以“;”结尾。
db2 connect to db2inst1
db2
select * from t_user;
db2导出所有表数据
在数据库所在的服务器上
如aix上 新建一个目录,所有的表的数据将导出在这个目录,然后拷贝这个目录
db2 connect to tcashman
db2move tcashman export -u db2inst1 -p '1qaz!QAZ'
导入所有表的数据
如果db2cmd命令不是内外部命令
进入db2所在的sqllb下的bin目录,双击db2cmd
进入存放导出的db2数据文件的目录
db2 connect to newcash user db2admin using ‘1qaz!QAZ'
db2move newcash import -u db2admin -p 1qaz!QAZ
系统执行导入功能
$ 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,这样比较便于维护和管理。
注意点:
mybigspace可能要根据实际情况设值