db2導入表結構和表數據


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

DB2用命令窗口連接數據庫

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM