程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> IBM DB2參數調優如何顯神功?

IBM DB2參數調優如何顯神功?

編輯:DB2教程

此文章向大家講述的是IBM DB2參數調優的正確操作技巧,在開始之前,請大家關閉IBM目錄服務器。還要將上下文切換,切換到IBM目錄服務器DB2實例擁有者,一般是ldapdb2用戶。比如:

1、在Unix系統裡,輸入:

su-ldapdb2

2、在Windows系統裡,輸入:

db2cmd

setDB2INSTANCE=ldapdb2

為了調節IBM DB2參數,運行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頁面需要注冊用戶名和密碼。

這個腳本的文件系統擁有者必須是DB2實例擁有者,一般就是ldapdb2用戶。文件系統組應該和實例擁有者相同(一般是dbsysadm)。腳本必須在DB2實例擁有者的上下文中使用。

腳本中的ibmdefaultbp和ldapbp參數控制著DB2的緩沖池。db2_turnings.sh腳本,設置了DB2緩沖池的建議大小。其他一些可選的設置在腳本的注釋裡寫明了。IBM目錄服務器的性能隨著DB2緩沖池的增長而提高。然而在大多數情況下,通過這樣IBM DB2參數調節方式,你可以預見不超過10%的性能提高。

DB2緩沖池是DB2緩存數據表和索引的地方。DB2用戶使用索引來在查詢時迅速找到該獲取哪個表行項。需要更多信息,請參考IBMDirectoryServerTuningGuide。

顯示和驗證當前設置

輸入如下命令來顯示當前的DB2參數調節設置的結果:

  1. db2getdatabaseconfigurationforldapdb2|\  
  2. egrep'DBHEAP|SORTHEAP|MAXLOCKS|MINCOMMIT|UTIL_HEAP_SZ|APPLHEAPSZ'  
  3. db2connecttoldapdb2  
  4. db2"selectbpname,npages,pagesizefromsyscat.bufferpools"  
  5. db2terminate  

如果某個堆配置參數過低,就將出現一些功能性的問題。輸入如下命令來顯示當前的堆參數設置:

  1. db2getdbcfgforldapdb2|grepHEAP 

下面是一個使用了推薦值的多種堆參數的輸出例子顯示:

  1. Databaseheap(4KB)(DBHEAP)=1200  
  2. Utilitiesheapsize(4KB)(UTIL_HEAP_SZ)=5000  
  3. Maxappl.controlheapsize(4KB)(APP_CTL_HEAP_SZ)=128  
  4. Sortlistheap(4KB)(SORTHEAP)=2500  
  5. SQLstatementheap(4KB)(STMTHEAP)=2048  
  6. Defaultapplicationheap(4KB)(APPLHEAPSZ)=2048  
  7. Statisticsheapsize(4KB)(STAT_HEAP_SZ)=4384  

如果一個堆參數小於最小值,輸入如下命令將其增大到最小值:

  1. db2updatedbcfgforldapdb2usingparm_nameparm_value 

這裡parm_name是上文輸出中的第三欄的字樣(無括號),parm_value是最後一欄的值。

如果堆IBM DB2參數設置的過高或者過低,IBM的目錄服務器都會以失效來提示出現了問題。在這種情況下,需要查看諸如 IBMDirectoryServerV4.1(IDS4.1)的cli.error文件或者 IBMTivoliDirectoryServerV5.2(IDSv5.2)的db2cli.log或者其他一些文件。在IDSv4.1系統中,該文件缺省目錄在Solaris的/var/ldap/和AIX的/tmp中。在IDSv5.1和後來系統中,Solaris和AIX的缺省目錄都是/var /ldap。

注意db2look能夠在一條命令下提供關於數據庫及其配置的足夠多的信息。例子如下:

  1. db2look-dldapdb2-uldapdb2-p-ooutput_file 

output_file是存儲結果的文件位置。

關於IBM目錄服務器運行的警告

DB2參數調節使用了db2terminate。如果當該命令發出,IBM目錄服務器slapd或ibmslapd進程在運行,它將阻止服務器的部分功能。所有緩存的搜索看起來反應正常。其他的搜索將會簡單的變為無結果或者出現錯誤信息。恢復功能將會重啟IBM目錄服務器。因此最好是在調節DB2參數時關閉IBM目錄服務器。

關於緩沖池內存使用的警告

如果任何的緩沖池被設置過高,DB2將會因為缺少足夠內存而無法啟動。如果出現該問題將會有一個核心轉儲的文件,但是通常沒有錯誤信息。

在AIX系統裡,系統錯誤日志將會報告一個內存分配失敗。查看這個日志請輸入:

errpt-a|more

使用太大的緩沖池大小來恢復一個被分在系統裡的數據庫將會導致恢復失敗。查看http://publib.boulder.ibm.com /infocenter/tivihelp/v2r1/topic/com.ibm.itame3.doc_5.1 /am51_perftune116.htm#idtrouble來解決這個問題。

如果DB2因為緩沖池過大而無法啟動,請重新調節IBM DB2參數。

關於MINCOMMIT的警告

不要設置MINCOMMIT為1以外的數。最新的db2_tunings.sh腳本正確的設置了該值為1。以前的版本均設置為25。設置為非1的值將會導致更新操作的超時,並且有可能影響更新的速度。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved