《Oracle8 優(yōu)化技術(shù)》摘錄 (第二章 內(nèi)存/CPU)
===============
第二章 內(nèi)存/CPU
===============
內(nèi)存/CPU規(guī)則#1 為了更好地防范介質(zhì)故障,一般應在 ARCHIVELOG 模式下運行 Oracle8 數(shù)據(jù)
庫。這使用戶能在數(shù)據(jù)庫打開和運行時完成數(shù)據(jù)庫的一致性備份。
內(nèi)存/CPU規(guī)則#2 DBAs 要定期查看跟蹤文件,尤其是警報日志,并做些清除操作,只有當有人
用手工方式編輯跟蹤文件并且刪除該文件內(nèi)容時,警報跟蹤文件才暫停增大。
內(nèi)存/CPU規(guī)則#3 檢查實例警報日志文件中是否存在有關(guān)在線重演日志組的錯誤信息。確定數(shù)據(jù)
庫是否有足夠的重演日志文件是最容易的方法,假如 Oracle 因為沒有清除完而不能重用重
演日志,那么可能需要更多的重演日志。
內(nèi)存/CPU規(guī)則#4 在 Oracle 首次安裝時,需要設置好共享池的大小,以確保共享池中有足夠大
的空間以便使 Oracle 能在共享池中很好地調(diào)整高速緩存。
內(nèi)存/CPU規(guī)則#5 在多處理器的計算機上,初始化參數(shù)文件項 LOG_SIMULTANEOUS_COPIES 應被
設置為 CPU 數(shù)的兩倍,這將有助于減少潛在的 redo copy latch 爭用。
內(nèi)存/CPU規(guī)則#6 當使用 MTS 時,為了 SHARED_POOL_SIZE,每個用戶存在一個 1K 的額外需求,
該額外空間用于存放關(guān)于用戶進程、調(diào)度程序和服務器之間連接的信息。
內(nèi)存/CPU規(guī)則#7 評估在繁忙期間用戶對 CPU 提出的需求。
內(nèi)存/CPU規(guī)則#8 評估用戶在非繁忙時間(晚上和周末)對 CPU 的需求。
內(nèi)存/CPU規(guī)則#9 評估支持用戶進程與系統(tǒng)服務對 CPU 時間的需求之間的平衡。
小結(jié)和說明
..........
. 定期檢查實例警告文件,以便了解 Oracle 產(chǎn)生的任何錯誤。
. 監(jiān)視庫高速緩存的成功率,如果這個成功率很低的話(少于80%),則應當考慮調(diào)整初始化參數(shù)
文件中的 SHARED_POOL_SIZE 參數(shù)。
. 通過查看 V$LATCH 字典視圖,監(jiān)視重演日志緩高速緩存中失敗(misses)對成功(gets)的比例,
如果misses多于gets的1%,則結(jié)果將導致重演(redo latches)的沖突(拷貝latch和/或配置
latch,這取決于所使用系統(tǒng)的CPU數(shù)量)。
. 如果有超過25%的排序請求需要磁盤空間(利用V$SYSSTAT),則應考慮增加初始化參數(shù)文件參
數(shù)SORT_AREA_SIZE。
. 如果可能的話,最好保持數(shù)據(jù)庫一天24小時開機,每次數(shù)據(jù)庫重新啟動時,庫高速緩存和字典
高速緩存必須被裝入,在裝入這些高速緩存當中,miss率將巨增。如果數(shù)據(jù)庫沒有一直打開,
定義一些 SQL 語句在數(shù)據(jù)庫啟動后強制裝載這些高速緩存。
下面前四點指出了初始化參數(shù)文件的五個關(guān)鍵項,按建議調(diào)整這些項,有助于 CPU 的調(diào)整運行。
. 分配盡可能多的實存給共享池和數(shù)據(jù)庫緩沖區(qū)(初始化參數(shù)文件中的SHARED_POOL_SIZE項和
DB_BLOCK_BUFFERS項)以便允許在內(nèi)存中運作盡可能多的工作,與在磁盤工作相比,在內(nèi)存
中工作使用的CPU較少。
. 將初始化參數(shù)文件項 SEQUENCE_CACHE_ENTRIES 設為高值(缺省值為10,可設為1,000)。
. 分配大于缺省值的內(nèi)存以便執(zhí)行排序操作(初始化參數(shù)文件中的 SORT_AREA_SIZE項),不請求
I/O的內(nèi)存排序使用較少的CPU。
. 在多CPU的機器上,增大初始化參數(shù)文件項LOG_SIMULTANEOUS_COPIES的值,以便允許每個CPU的
進程把項拷貝到重演日志緩沖區(qū)中。
. 為了釋放占用的CPU,盡一切可能使I/O最小化。
. 通過合理分配工作日白天和夜間的負載來使得CPU工作能力最大化。
. 在考慮 CPU 升級前,開始著手對 CPU 進行有條理的估計。
. 在空閑時間執(zhí)行報告工作。