1。創建數據庫 例如:db2 create database [數據庫名稱]using codeset GBK territory zh_CN
2。數據庫參數
db2 update database cfg for db_name using applheapsz 256 指定每一單個代理程序可用的應用程序堆的大小(以頁爲單位)。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING APP_CTL_HEAP_SZ 256;確定應用程序堆的最大大小(以 4 KB 頁爲單位)。爲在代表 MPP 或 SMP 系統中節點上相同應用程序的運行的代理程序間共享信息時需要使用堆。如果應用程序複雜將運行或者 MPP 配置有大量節點,則應增加此堆的大小。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING APPGROUP_MEM_SZ 11595;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING CATALOGCACHE_SZ 260;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING CHNGPGS_THRESH 60;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING DBHEAP 600;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOCKLIST 50;指定分配給鎖列表的存儲器空間數量。鎖列表包括並行連接到數據庫的所有應用程序保留的鎖
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGBUFSZ 98;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGFILSIZ 2500;指定分配給用於數據恢復的日誌文件的磁盤存儲空間的數量(以頁爲單位)。該參數定義每一主日誌文件和輔助日誌文件的大小。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGPRIMARY 3;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING LOGSECOND 4;指定可用於數據庫恢復的輔助日誌文件的數量。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING MAXAPPLS 250;指定可在同一時間連接到數據庫的應用程序(本地和遠程)的最大數量。
UPDATE DATABASE CONFIGURATION FOR DBNAME USING MAXLOCKS 57;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING MINCOMMIT 1;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING NUM_IOCLEANERS 1;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING NUM_IOSERVERS 2;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING PCKCACHESZ 915;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING SOFTMAX 120;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING SORTHEAP 214;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING STMTHEAP 2048;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING DFT_DEGREE 1;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING DFT_PREFETCH_SZ 32;
UPDATE DATABASE CONFIGURATION FOR DBNAME USING UTIL_HEAP_SZ 78735;
UPDATE DATABASE MANAGER CONFIGURATION USING SHEAPTHRES 25797;
UPDATE DATABASE MANAGER CONFIGURATION USING INTRA_PARALLEL OFF;
UPDATE DATABASE MANAGER CONFIGURATION USING MAX_QUERYDEGREE 1;
UPDATE DATABASE MANAGER CONFIGURATION USING MAXAGENTS 400;
UPDATE DATABASE MANAGER CONFIGURATION USING NUM_POOLAGENTS 400;
UPDATE DATABASE MANAGER CONFIGURATION USING NUM_INITAGENTS 0;
UPDATE DATABASE MANAGER CONFIGURATION USING FCM_NUM_BUFFERS 4096;
UPDATE DATABASE MANAGER CONFIGURATION USING PRIV_MEM_THRESH 32767;
3.可以使用db2set -all 察看系統中設置的所有配置文件註冊表變量。
4。db2 -tvf *.sql -z view.txt 可以執行腳本文件,即輸出到view.txt察看。
5. db2 管理方面的命令
list db directory 列出系統數據庫目錄
二。數據庫操作的常用技巧
1. 查看本地節點目錄
命令窗口中輸入:db2 list node directory
2. 編目一個TCP/IP節點
命令窗口:db2 catalog tcpip node <node_name> remote <hostname|ip_address> server <svcname|port_number> ostype <OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
3. 取消節點編目
db2 uncatalog node <node_name>
4. 查看系統數據庫目錄
db2 list database directory
5. 查看本地數據庫目錄
db2 list database directory on <盤符>
在本地數據庫目錄中有而系統數據庫目錄中沒有的數據庫不能訪問,可以在控制中心中選中<數據庫>右鍵單擊選擇添加,然後輸入需要添加的數據庫名稱或者點擊刷新按鈕選擇數據庫,加入數據庫後即可以訪問。
6. 編目數據庫
db2 catalog database <db_name> as <db_alias> at node <node_name>
7. 取消數據庫編目
db2 uncatalog database <db_name>
8. 測試遠程數據庫的連接
db2 connect to <db_alias> user <user_id> using <password>
9. 任何用戶均可通過設置Current Schema專用寄存器爲特定的數據庫連接設置默認模式,初始默認值爲當前會話用戶的權限ID。
set schema = <schema name>
可以由用戶交互式的使用,也可在應用程序中使用,如果用Dynamicrules Bind選項綁定包,這個語句就沒有作用。此語句不在事務控制之下。
10. 代碼頁的設置
在創建數據庫時設置字符集
create database <db_name> using codeset <codeset> territory <territiry>
例:
create database dbtest using codeset IBM-437 territory US
也可以設置整個數據庫的代碼頁,在win2000/NT/xp中,在我的電腦-->屬性-->高級-->環境變量中添加變量DB2CODEPAGE = <codepage>,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM DB2命令窗口輸入 db2set DB2CODEPAGE=1386,設置後需要重新啓動DB2生效。
11. DB2低版本數據到高版本的遷移
先將低版本數據備份使用恢復功能導入高版本數據庫,然後在命令窗口輸入 db2 migrate database <db_name>。
12. 表名或模式中含有引號時訪問表
命令窗口:db2 select * from "tabschema"."tabname"
命令行處理器:db2=> select * from "tabschema"."tabname"
13. 導出數據庫的表結構生成DDL文件
命令窗口:db2look -d <db_name> -e -c -o <file_name>
14. 執行腳本文件
命令窗口:db2 -tvf <file_name>
15. 代碼頁的轉換
16. 獲取當前DB2的版本
select * from sysibm.sysversions
17. DB2表的字段的修改限制?
只能修改VARCHAR2類型的並且只能增加不能減少
alter table <tb_name> alter column <col_name> set data type varchar(SIZE)
18. 如何查看錶的結構?
describe table <tb_name>
or
describe select * from <schema>.<tb_name>
19. 如何快速清除一個大表?
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE
20. 如何查看數據庫的存儲過程?
SELECT * FROM SYSCAT.PROCEDURES
21. 如何查看錶的約束?
SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = <tb_name>
22. 如何查看錶的引用完整約束?
SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = <tb_name>
23. 如何知道BUFFERPOOLS狀況?
select * from SYSCAT.BUFFERPOOLS
24. 如何在命令行下查看修改實例和數據庫配置參數?
查看實例配置參數: db2 get dbm cfg
修改實例配置參數: db2 update dbm cfg using 參數名 新值
查看數據庫配置參數: db2 get db cfg for <db_name>
修改數據庫配置參數: db2 update db cfg for <db_name> using 參數名 新值
25. 如何修改緩衝區?
增加緩衝區: create bufferpool <buf_name> size <number of pages> [pagesize 4096] {[not] EXTENDED STORAGE}
修改緩衝區: alter bufferpool <buf_name> size <number of pages> {[not] EXTENDED STORAGE}
刪除緩衝區: drop bufferpool <buf_name>
如果緩衝區大小設置爲 -1 表示緩衝池的頁面數目由數據庫配置參數buffpage決定。
注意: 數據庫配置參數buffpage僅對緩衝區大小設置爲 -1 的緩衝池起作用。
26. 多個字段時如何不通過使用select子句使用in/not in
select * from tabschema.tabname where (colA, colB, colC) [not] in (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), ...(valueAn, valueBn, valueCn))
27. 查看當前連接到數據庫的應用
db2 list application [show detail]
28. 如何確認DB2數據庫的一致性
db2dart <db_name> /DB
/DB表示檢查整個數據庫的一致性
29. 測試SQL語句的性能
db2batch -d <db_name> -f <file_name> [-a userid/passwd] [-r <outfile_name>]
-r 選項表示將查詢結果輸出到一個文件中。
30. 導出某個表的數據
export to <Derectry><filme>
如:導出用戶表
export to c:user.ixf of ixf select * from user
31. 導入數據
import from
如:導入用戶表。導入時可以直接建立新表。如果有該表存在也可以用INSERT 插入,或者用UPDATE更新
import from c:user.ixf of ixf [Create/Insert into / update] tablename