db2_command

wangzhensheng發表於2008-03-25
db2_command[@more@]

檢視db2配置
db2 get dbm cfg

設定svcename引數
db2 update dbm cfg using svcename "db2cDB2"

建立資料庫
create db DB_NAME on '/u01/db2/db_name' using codeset IBM-437 territory US catalog tablespace managed by database using (file '/u01/db2/db_name/cata.dat' 25000) user tablespace managed by database using (file '/u01/db2/db_name/user.dat' 25000) temporary tablespace managed by database using (file '/u01/db2/db_name/temp.dat' 25000)

刪除資料庫
connect reset
# 如果得到 SQL1032N 訊息指出未發出啟動資料庫管理器命令,則輸入 terminate 結束
drop database samp2

更新該資料庫的應用程式記憶體堆大小
update db config for DB_NAME using applheapsz 256


WINDOWS 的客戶端在按好以後 在CLP 環境下 直接CATALOG 伺服器的資料 先編目一個節點 在編目一下資料庫就可以了
DB2 CATALOG TCPIP NODE NODENAME REMOTE IP SERVER 50000
DB2 CATALOG DB DBNAME AT NODE NODENAME
DB2 TERMINATE

db2 connect to db_name user xxx using ***
SQL0332N 沒有從原始碼頁“819”至目的碼頁“1386”的轉換,原因碼是“1”SQLSTATE=57017
SQL0332N Character conversion from the source code page "1114" to the target
code page "UNKNOWN" is not supported. SQLSTATE=57017

原因:連線的資料庫使用的內碼表設定(819)與本地客戶端設定的內碼表(1386)不同 之間無法進行雙向轉換,即無法將GBK 編碼的字元轉換為ISO-8859-1字元,解決方法:

dos> db2set DB2CODEPAGE=819
dos> db2 terminate
dos> db2 connect to db_name user xxx using ***
連線成功。如果資料庫是UTF-8 encoded,本地客戶端的內碼表是1386,則可以正常連線,不存在此問題。

對於本地的內碼表似乎只能設定一個值
,因此如果需要同時連線多個具有不同內碼表的資料庫,就會比較麻煩,無法做到真正的同時連線,只能每次使用上面的命令切換。

建立模式
create schema schema_name autorization user
create schema PORTALDB authorization db2inst2
設定當前模式
SET CURRENT SCHEMA = PORTALDB
or
SET SCHEMA=PORTALDB
or
SET CURRENT SCHEMA portaldb

顯示當前模式
select CURRENT schema from sysibm.sysdummy1
create table PORTALDB.a (name char(3))
insert into PORTALDB.a values('aaa')

select * from PORTALDB.a
drop table PORTALDB.a

describe select * from syscat.schemata
select SCHEMANAME,OWNER from syscat.schemata
select tabname, tableid from syscat.tables where tabschema='PORTALDB' and type='T'

db2資料庫停止

su - db2inst1

db2 force application all

db2stop

啟動

su - db2inst1

db2start

=========================================

db2命令介紹:
相比圖形介面而言,使用命令列的命令可以節省很多記憶體資源。但是寫的時候語法需要熟悉。
db2start:啟動當前的DB2資料庫管理例項。
db2stop:停止當前的資料庫管理例項。
注:啟動和關閉的是資料庫管理例項,而不是單個的資料庫,而restart database:並不是重新啟動資料庫,是平衡非正常結束而不一致狀態的資料庫,結束後,連線仍然存在。
db2look:能為表,索引,檢視和諸如此類需要產生統計資訊和資料定義語言(DDL)的物件產生需要的語句,以便重建資料庫物件和/或更新統計資訊。DB2CLP下直接db2look,可看到選項。 db2move:db2移動資料的一個工具,可以在兩個不同的db2資料庫間移動資料,這兩個DB2資料庫可以在不同的伺服器上,尤其是大量資料的表需要轉移的情況下,非常方便。 DB2CLP下直接db2move,可看到選項。

以下命令在“db2=>;”下鍵入“? Command”可以看到使用。
catalog:編目資料庫或節點
uncatalog:刪除已經編目的資料庫或節點
這一對命令其實就實現了客戶機配置輔助程式編目資料庫的功能。
update:功能是更新資料庫/資料庫管理器配置引數,
更新命令列處理器設定和監控器的開關等。
connect:連線到一個資料庫。
注:習慣顯式的關閉連線。
attach:建立一個到例項的連線,執行例項級別的管理。
list:顯示一些資料庫物件或者設定的相關資訊
get:獲取一些資料庫引數的設定和狀態
runstats:執行統計,更新系統目錄表中的資訊。
backup:備份資料庫
1、防止意外資料丟失或系統意外
2、重定向恢復實現整個資料庫的遷移
3、AIX下的備份需要指定with n buffers 和 buffer size
restore:還原資料庫
注:作業系統相同才可進行備份和恢復
force application:強行關閉應用程式或者連線
匯入匯出資料:
檔案格式:
DEL:界定的ASCII檔案,行分隔符和列分隔符將資料分開。常用
ASC:定長的ASCII檔案,行按照行分割符分開,列定長。
PC/IXF:只能用來在db2之間導資料,根據型別數字值被打包成十進位制或者二進位制,字元被儲存為ASCII,只儲存變數已經使用了的長度,檔案中包括表的定義和表的資料。
WSF:工作表方式匯入匯出,不建議使用。

export:匯出資料,支援IXF,DEL或WSF
import:匯入資料,可以向表或者檢視中匯入資料,支援上面提到的4中檔案。
注:當一個表中的主鍵被其他表引用為外來鍵時,匯入資料只能選APPEND,不能選替換。
load:匯入資料,功能和import基本相同。支援以上說的4種格式。Load最大的缺點是變化沒有記錄日誌,不能前滾恢復。
Load的工作步驟:
1、載入階段:
把資料載入到表中
收集並儲存索引
2、建立階段
建立載入階段收集的索引
3、刪除階段
把違反唯一鍵或主鍵約束的記錄放到例外表中
刪除違反主鍵和唯一鍵約束的記錄
注:自動生成列資料匯入問題。
Load完畢之後:
Load程式可以將表或者表所在的表空間處於掛起狀態。
1、載入掛起:在載入階段發生錯誤,表空間處於此狀態
解決方法:
A:糾正錯誤後重新載入,將replace或者insert換成restart。將從失敗處重新開始裝載操作。
B:如果前面呼叫用了replace,則再使用replace做load。
C:用terminate選項終止load操作。
D:DBA撤消並重新建立表空間
E:從一個備份中恢復表空間(歸檔日誌下才可以)。
2、刪除掛起:在刪除階段發生錯誤,將一直處於刪除掛起狀態。
3、備份掛起:這種策略是強迫使用者對目標表所在的資料庫或者表空間做一個備份。如果load是使用了copy no選項,並且開啟了歸檔日誌,load完後將處於該狀態。做一個備份就可以消除該狀態。
4、檢查掛起的表:當表上存在主鍵和唯一鍵之外的約束時,load完後表將處於該狀態。包括以下情況:
外來鍵約束—用來強制執行內容的完整性。
檢查約束—使用者定義的約束,檢查合法性。
操作中引用了summary表,並且表設定的為refresh immediate。
可以使用如下命令解除該狀態:
SET CONSTRAINTS FOR TABNAME IMMEDIATE CHECKED FOR EXCEPTION IN EXP_TABLE
load和import的不同:
1、load的目標表必須存在,而import不需要
2、load並不建立索引,只是在原來索引的基礎上追加資料
3、最大區別在於效能區別,import每次插入一條,每行都要進行一次限制檢查,日誌用來記錄變化,而load插入則快的多,每次讀取資料構造頁,然後直接輸入到資料庫。插入完頁後,索引將重新建立,違反主鍵和唯一鍵限制的記錄將被刪除並儲存到另一個擴充套件表中。
注:load技巧使用:大資料量刪除。
load from a.del of del replace into table

========================================


  1. 啟動例項(db2inst1):
  db2start
  2. 停止例項(db2inst1):
  db2stop
  3. 列出所有例項(db2inst1)
  db2ilist
  5.列出當前例項:
  db2 get instance
  4. 察看示例配置檔案:
  db2 get dbm cfg|more
  5. 更新資料庫管理器引數資訊:
  db2 update dbm cfg using para_name para_value
  6. 建立資料庫:
  db2 create db test
  7. 察看資料庫配置引數資訊
  db2 get db cfg for test|more
  8. 更新資料庫引數配置資訊
  db2 update db cfg for test using para_name para_value
  10.刪除資料庫:
  db2 drop db test
  11.連線資料庫
  db2 connect to test
  11.列出所有表空間的詳細資訊。
  db2 list tablespaces show detail
  12.列出容器的資訊
  db2 list tablespace containers for tbs_id show detail
  13.建立表:
  db2 ceate table tb1(id integer not null,name char(10))
  14.列出所有表
  db2 list tables
  12.插入資料:
  db2 insert into tb1 values(1,’sam’);
  db2 insert into tb2 values(2,’smitty’);
  13.查詢資料:
  db2 select * from tb1
  14.資料:
  db2 delete from tb1 where id=1
  15.建立索引:
  db2 create index idx1 on tb1(id);
  16.建立檢視:
  db2 create view view1 as select id from tb1
  17.查詢檢視:
  db2 select * from view1
  18.節點編目
  db2 catalog tcp node node_name remote server_ip server server_port
  19.察看埠號
  db2 get dbm cfg|grep SVCENAME
  20.測試節點的附接
  db2 attach to node_name
  21.察看本地節點
  db2 list node direcotry
  22.節點反編目
  db2 uncatalog node node_name
  23.資料庫編目
  db2 catalog db db_name as db_alias at node node_name
  24.察看資料庫的編目
  db2 list db directory
  25.連線資料庫
  db2 connect to db_alias user user_name using user_password
  26.資料庫反編目
  db2 uncatalog db db_alias
  27.匯出資料
  db2 export to myfile of ixf messages msg select * from tb1
  28.匯入資料
  db2 import from myfile of ixf messages msg replace into tb1
  29.匯出資料庫的所有表資料
  db2move test export
  30.生成資料庫的定義
  db2look -d db_alias -a -e -m -l -x -f -o db2look.sql
  31.建立資料庫
  db2 create db test1
  32.生成定義
  db2 -tvf db2look.sql
  33.匯入資料庫所有的資料
  db2move db_alias import
  34.重組檢查
  db2 reorgchk
  35.重組表tb1
  db2 reorg table tb1
  36.更新統計資訊
  db2 runstats on table tb1
  37.備份資料庫test
  db2 backup db test
  38.恢復資料庫test
  db2 restore db test


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8806316/viewspace-1001420/,如需轉載,請註明出處,否則將追究法律責任。