DB2如何建立表空間 如何建立資料庫 如何建立緩衝池
如果你是在一個專案的角度,要建立表空間、建立緩衝池、建立資料庫,到最終完成專案連線DB2成功的話,請看完這篇文章
對於開發近三年左右的程式設計師,我們總會碰到DB2資料庫的專案(做銀行、政府、國企等專案尤其如此),我是搞java的,我相信大部分3年左右java開發經驗的程式設計師在第一次單獨面對一個DB2的開發專案都會有點痛苦(這個痛苦和公司有直接原因,如果公司事先對你做了DB2的培訓,那這個文章你完全不用理會看了)
在我們拿到一個專案的原始碼,當專案經理讓你把它在DB2上跑起來的時候,我們首先做的就是的DB2軟體安裝上,然後建立資料庫和表空間還有緩衝池(要建緩衝池的原因是因為大的專案你不建的話,導致專案執行起來後總是會報表空間不足的錯誤)。既然心裡的估算好了,我們就會去網上搜索怎麼去建立的文章了,但是網上我搜索了N多都是些零零碎碎的,說的很單一。 這經過好幾天的痛苦掙扎整理後,我把我專案中建立DB2相關資料庫物件的指令碼全部貼出來
作業系統環境: windows(linux的方法我下面也會貼出來)
1、首先在windows安裝完DB2以後,開啟DB2的命令列,然後依次執行下面程式碼.(下面有一句話指令碼會提示你一個類似異常的資訊,不予以理會,繼續執行下面別的程式碼)
db2 "CREATE DB TestDB using codeset UTF-8 territory us" db2 "UPDATE DB CFG FOR TestDB USING applheapsz 4096" db2 "UPDATE DB CFG FOR TestDB USING app_ctl_heap_sz 1024" db2 "UPDATE DB CFG FOR TestDB USING stmtheap 8192" db2 "UPDATE DB CFG FOR TestDB USING dbheap 2400" db2 "UPDATE DB CFG FOR TestDB USING locklist 1000" db2 "UPDATE DB CFG FOR TestDB USING logfilsiz 1000" db2 "UPDATE DB CFG FOR TestDB USING logprimary 12" db2 "UPDATE DB CFG FOR TestDB USING logsecond 20" db2 "UPDATE DB CFG FOR TestDB USING logbufsz 32" db2 "UPDATE DB CFG FOR TestDB USING avg_appls 5" db2 "UPDATE DB CFG FOR TestDB USING locktimeout 30" db2 CONNECT TO TestDB db2 "CREATE BUFFERPOOL icmsbuffer SIZE 1000 PAGESIZE 32K" db2 "CREATE TABLESPACE icmsspace PAGESIZE 32K MANAGED BY SYSTEM USING ('D:\db2admin\sqlt0003.0') BUFFERPOOL icmsbuffer"(根據實際情況確定是否是D盤下的db2admin\sqlt0003.0目錄,如果沒有,請先建立) db2 "CREATE SYSTEM TEMPORARY TABLESPACE ICMSBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('D:\db2admin\sqlt0004.0') BUFFERPOOL ICMSBUFFER"(根據實際情況確定是否是D盤下的db2admin\ sqlt0004.0目錄,如果沒有,請先建立) db2 "DISCONNECT icms" db2 "TERMINATE"
2、建立完成之後資料庫這一塊你就完全搞定了,下面就是你專案總如何去連線的問題了 。 (如果你專案連線DB2不成功,你可以google,或者給我留言)
下面說在linux下的建立方法:其實指令碼一樣
資料庫是從 DB2 命令介面建立的。在啟動命令介面之前,必須符合以下條件:
1、DB2必須是活動的。
2、對於 AIX、Linux和 Solaris, DB2 例項擁有者標識(例如 db2inst1)必須是 db2admin組的一部分。db2admin組是在 DB2通用資料庫安裝過程中建立的。
3、修改修改環境變數,能夠正確執行db2的命令
4、根據實際環境修改標紅色的路徑,比如:/home/icms/
5、因在執行的過程中指令碼出錯,後續回滾將會非常非常,建議一個個指令碼執行。
db2 "CREATE DB icms using codeset UTF-8 territory us"
db2 "UPDATE DB CFG FOR icms USING applheapsz 4096"
db2 "UPDATE DB CFG FOR icms USING app_ctl_heap_sz 1024"
db2 "UPDATE DB CFG FOR icms USING stmtheap 8192"
db2 "UPDATE DB CFG FOR icms USING dbheap 2400"
db2 "UPDATE DB CFG FOR icms USING locklist 1000"
db2 "UPDATE DB CFG FOR icms USING logfilsiz 1000"
db2 "UPDATE DB CFG FOR icms USING logprimary 12"
db2 "UPDATE DB CFG FOR icms USING logsecond 20"
db2 "UPDATE DB CFG FOR icms USING logbufsz 32"
db2 "UPDATE DB CFG FOR icms USING avg_appls 5"
db2 "UPDATE DB CFG FOR icms USING locktimeout 30"
db2 CONNECT TO icms
db2 "CREATE BUFFERPOOL icmsbuffer SIZE 1000 PAGESIZE 32K"
db2 "CREATE TABLESPACE icmsspace PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/icms/sqlt0003.0') BUFFERPOOL icmsbuffer"
db2 "CREATE SYSTEM TEMPORARY TABLESPACE ICMSBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('/home/icms/sqlt0004') BUFFERPOOL ICMSBUFFER"
db2 "DISCONNECT icms"
db2 "TERMINATE"