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可能要根據實際情況設值