IBM DB2參數(shù)調(diào)優(yōu)如何顯神功?
此文章向大家講述的是IBM DB2參數(shù)調(diào)優(yōu)的正確操作技巧,在開始之前,請(qǐng)大家關(guān)閉IBM目錄服務(wù)器。還要將上下文切換,切換到IBM目錄服務(wù)器DB2實(shí)例擁有者,一般是ldapdb2用戶。比如:
1、在Unix系統(tǒng)里,輸入:
su-ldapdb2
2、在Windows系統(tǒng)里,輸入:
db2cmd
setDB2INSTANCE=ldapdb2
為了調(diào)節(jié)IBM DB2參數(shù),運(yùn)行db2-tunings.sh腳本,你可以在這里下載:
http://www3.software.ibm.com/ibmdl/pub/software/tivoli_support/misc/Security/AMeB/_
am5.1/tuning_guide_scripts.tar
或者通過ftp地址:
ftp://ftp.software.ibm.com/software/tivoli_support/misc/Security/AMeB/am5.1/tuning_guide_scripts.tar
Web頁面需要注冊(cè)用戶名和密碼。
這個(gè)腳本的文件系統(tǒng)擁有者必須是DB2實(shí)例擁有者,一般就是ldapdb2用戶。文件系統(tǒng)組應(yīng)該和實(shí)例擁有者相同(一般是dbsysadm)。腳本必須在DB2實(shí)例擁有者的上下文中使用。
腳本中的ibmdefaultbp和ldapbp參數(shù)控制著DB2的緩沖池。db2_turnings.sh腳本,設(shè)置了DB2緩沖池的建議大小。其他一些可選的設(shè)置在腳本的注釋里寫明了。IBM目錄服務(wù)器的性能隨著DB2緩沖池的增長(zhǎng)而提高。然而在大多數(shù)情況下,通過這樣IBM DB2參數(shù)調(diào)節(jié)方式,你可以預(yù)見不超過10%的性能提高。
DB2緩沖池是DB2緩存數(shù)據(jù)表和索引的地方。DB2用戶使用索引來在查詢時(shí)迅速找到該獲取哪個(gè)表行項(xiàng)。需要更多信息,請(qǐng)參考IBMDirectoryServerTuningGuide。
顯示和驗(yàn)證當(dāng)前設(shè)置
輸入如下命令來顯示當(dāng)前的DB2參數(shù)調(diào)節(jié)設(shè)置的結(jié)果:
- db2getdatabaseconfigurationforldapdb2|\
- egrep'DBHEAP|SORTHEAP|MAXLOCKS|MINCOMMIT|UTIL_HEAP_SZ|APPLHEAPSZ'
- db2connecttoldapdb2
- db2"selectbpname,npages,pagesizefromsyscat.bufferpools"
- db2terminate
如果某個(gè)堆配置參數(shù)過低,就將出現(xiàn)一些功能性的問題。輸入如下命令來顯示當(dāng)前的堆參數(shù)設(shè)置:
- db2getdbcfgforldapdb2|grepHEAP
下面是一個(gè)使用了推薦值的多種堆參數(shù)的輸出例子顯示:
- Databaseheap(4KB)(DBHEAP)=1200
- Utilitiesheapsize(4KB)(UTIL_HEAP_SZ)=5000
- Maxappl.controlheapsize(4KB)(APP_CTL_HEAP_SZ)=128
- Sortlistheap(4KB)(SORTHEAP)=2500
- SQLstatementheap(4KB)(STMTHEAP)=2048
- Defaultapplicationheap(4KB)(APPLHEAPSZ)=2048
- Statisticsheapsize(4KB)(STAT_HEAP_SZ)=4384
如果一個(gè)堆參數(shù)小于最小值,輸入如下命令將其增大到最小值:
- db2updatedbcfgforldapdb2usingparm_nameparm_value
這里parm_name是上文輸出中的第三欄的字樣(無括號(hào)),parm_value是最后一欄的值。
如果堆IBM DB2參數(shù)設(shè)置的過高或者過低,IBM的目錄服務(wù)器都會(huì)以失效來提示出現(xiàn)了問題。在這種情況下,需要查看諸如 IBMDirectoryServerV4.1(IDS4.1)的cli.error文件或者 IBMTivoliDirectoryServerV5.2(IDSv5.2)的db2cli.log或者其他一些文件。在IDSv4.1系統(tǒng)中,該文件缺省目錄在Solaris的/var/ldap/和AIX的/tmp中。在IDSv5.1和后來系統(tǒng)中,Solaris和AIX的缺省目錄都是/var /ldap。
注意db2look能夠在一條命令下提供關(guān)于數(shù)據(jù)庫及其配置的足夠多的信息。例子如下:
- db2look-dldapdb2-uldapdb2-p-ooutput_file
output_file是存儲(chǔ)結(jié)果的文件位置。
關(guān)于IBM目錄服務(wù)器運(yùn)行的警告
DB2參數(shù)調(diào)節(jié)使用了db2terminate。如果當(dāng)該命令發(fā)出,IBM目錄服務(wù)器slapd或ibmslapd進(jìn)程在運(yùn)行,它將阻止服務(wù)器的部分功能。所有緩存的搜索看起來反應(yīng)正常。其他的搜索將會(huì)簡(jiǎn)單的變?yōu)闊o結(jié)果或者出現(xiàn)錯(cuò)誤信息?;謴?fù)功能將會(huì)重啟IBM目錄服務(wù)器。因此最好是在調(diào)節(jié)DB2參數(shù)時(shí)關(guān)閉IBM目錄服務(wù)器。
關(guān)于緩沖池內(nèi)存使用的警告
如果任何的緩沖池被設(shè)置過高,DB2將會(huì)因?yàn)槿鄙僮銐騼?nèi)存而無法啟動(dòng)。如果出現(xiàn)該問題將會(huì)有一個(gè)核心轉(zhuǎn)儲(chǔ)的文件,但是通常沒有錯(cuò)誤信息。
在AIX系統(tǒng)里,系統(tǒng)錯(cuò)誤日志將會(huì)報(bào)告一個(gè)內(nèi)存分配失敗。查看這個(gè)日志請(qǐng)輸入:
errpt-a|more
使用太大的緩沖池大小來恢復(fù)一個(gè)被分在系統(tǒng)里的數(shù)據(jù)庫將會(huì)導(dǎo)致恢復(fù)失敗。查看http://publib.boulder.ibm.com /infocenter/tivihelp/v2r1/topic/com.ibm.itame3.doc_5.1 /am51_perftune116.htm#idtrouble來解決這個(gè)問題。
如果DB2因?yàn)榫彌_池過大而無法啟動(dòng),請(qǐng)重新調(diào)節(jié)IBM DB2參數(shù)。
關(guān)于MINCOMMIT的警告
不要設(shè)置MINCOMMIT為1以外的數(shù)。最新的db2_tunings.sh腳本正確的設(shè)置了該值為1。以前的版本均設(shè)置為25。設(shè)置為非1的值將會(huì)導(dǎo)致更新操作的超時(shí),并且有可能影響更新的速度。
【編輯推薦】
- DB2取得當(dāng)前時(shí)間如何正確操作?
- DB2數(shù)據(jù)庫物化視圖之MQT物化查詢表的正確應(yīng)用
- 實(shí)現(xiàn)DB2數(shù)據(jù)庫遷移之導(dǎo)入步驟在Linux下
- DB2數(shù)據(jù)庫遷移的導(dǎo)出步驟在Linux操作系統(tǒng)下
- DB2無限活動(dòng)日志策略,從介紹到實(shí)際的操作技巧