Oracle RAC效能管理(筆記)

舊夢依稀發表於2013-08-26
1、Oracle最佳設計實踐
(1)優化連線管理    確保連線到該資料庫的中間層和程式在連線管理方面是高效的,不會反覆登入、登出。
(2)確保對SQL執行了完美調優    優化執行計劃和資料訪問路徑(ADDM,SQL Tuning Advisor)。
(3)確保應用程式正在使用繫結變數,將分析降至最低    相關引數cursor_sharing。
(4)用包和過程來代替匿名PL/SQL塊和大型SQL語句    包和過程被編譯和儲存在資料庫中,可以在沒有執行時編譯開銷的情況下重複使用。  
(5)使用最新的資料庫表空間管理功能    應使用本地表空間管理和自動段空間管理(ASSM)之類的新功能,簡化資料庫管理。
(6)如果要經常使用一個序列,而且會由多個兵法會話使用,那麼要確保使用比較大的快取序列,預設是20。
(7)在正常業務時間內執行的生產環境中,避免使用資料定義語言(DDL)    使用DDL會增大已分析的SQL語句的無效性,在重新使用之前需要重新編譯它們。DDL還會增大快取緩衝區的無效性,它是效能問題的另一來源。
(8)索引葉塊爭用是單例項環境中緩衝區繁忙等待的唯一最大原因,它在RAC環境中會導致緩衝區快取爭用(gc緩衝區繁忙)。    使用逆向鍵索引或者對錶和索引分割槽都可以降低爭用。
(9)對資料塊爭用進行優化:避免塊中出現擁有太多行的小型表。    可以使用alter table命令的minimize records per block子句來限制每個塊的行數。
2、Oracle RAC特有的最佳設計實踐
(1)不要僅僅為了驗證資料而重複讀取最近修改/插入的記錄。
(2)如果業務需求沒有另行指出,那麼應當考慮使用應用程式分割槽。
(3)考慮將DML操作密集的使用者限制到一個例項中。
(4)將只讀資料分為一組,將他們放在只讀表空間裡。
(5)避免在Oracle RAC環境中執行不必要的審計操作。
(6)減少使用全表掃描,因為全表掃描可能會導致全域性快取服務為大量塊請求提供服務。
(7)如果應用程式進行大量新會話“登入風暴”,那麼應當提高sys.audses$序列的快取值:
alter sequence sys.audses$ cache 10000;
3、工作量分割槽
通過在Oracle RAC環境中實施工作量分割槽可以節省系統資源。在實施工作量分割槽之前,應當考慮以下事項:
(1)Oracle RAC可以處理緩衝區快取爭用,如果系統CPU資源和專用互聯頻寬足夠,就不需要分割槽。
(2)有時,另行提高CPU能力或互聯頻寬可能要比實施工作量分割槽機制容易的多、經濟的多。
(3)除非有證據表明這些爭用對效能產生了影響,並且分割槽工作量會提高效能,否則不要考慮對使用者工作量進行分割槽。
(4)分別在有無工作量分割槽的情況下建立基準統計資訊。如果對比表明在採用分割槽時可以顯著提高效能,那麼可以考慮實施工作量分割槽。
4、可伸縮性與效能
為使一個Oracle RAC系統完全可伸縮,以下所有元件都應該是可伸縮的:
應用程式、網路、資料庫、作業系統、硬體。
5、為Oracle RAC資料庫選擇塊大小
根據資料檔案使用的底層儲存不同,Oracle中的塊大小可以有不同的選擇。
資料檔案使用檔案系統:Oracle的塊大小應該是檔案系統緩衝區大小的整數倍。
資料檔案使用ASM、RAW或OCFS:因為這些儲存系統本身沒有緩衝區,所以可以選擇任意的塊大小,不會對I/O效率產生影響。
Oracle支援在一個資料庫中使用多種塊大小,塊大小在建立表空間時指定,如果在建立任何表空間時沒有顯式指定塊大小,則預設使用引數db_block_size設定的值。
大多數OLTP資料庫使用8KB的塊大小,在設計決策支援系統(DSS)/資料倉儲系統(OLAP)時,應當考慮更大的塊大小。
對於那些大多是隻讀或者使用全表掃描獲取的資料,較大的塊大小是有幫助的。
當行大小較大時,使用較大的塊大小也是有幫助的。比如有LOB型別的欄位的行。
對於較小的行,使用較小的塊大小也是有幫助的,可以減少資料塊爭用。
對於索引,使用較小的塊大小,理論上可以減少索引塊爭用,也是有幫助的。
很多等待事件都表明存在塊級別的爭用,將爭用較多的索引/表移動到塊大小較小的表空間,理論上可以減少爭用。
6、使用自動段空間管理(ASSM)
ASSM在從9i引入的,在以後的版本中是預設的段管理方式。ASSM使用儲存在段空間內的點陣圖來管理該段中的空閒空間。
SQL>create tablespace data_assm
datafile '$ORADATA/data_assm01.dbf' size 100M
extent management local
segment space management auto;
ASSM功能的侷限性:
ASSM不能用於系統表空間。
ASSM僅可用於本地管理的表空間。如果由於某種原因而建立了一個字典管理的表空間,那麼不能使用ASSM子句。
ASSM不能與臨時表空間一起使用。
ASSM不會提供關於空間管理的任何控制,因為引數FREELISTS和FREELIST GROUPS不可用。
7、Oracle RAC等待事件
8、Oracle RAC中的佇列優化
Oracle使用一種排隊機制來確保對共享資源的正確使用。在Oracle RAC中,“全域性佇列服務(GES)”保護並調整對這些共享資源的訪問。
V$RESOURCE_LIMIT包含了佇列的初始分配、current_utilization、max_utilization和limit_value統計值。
9、Oracle AWR報表
10、叢集互聯調優
 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28998293/viewspace-769280/,如需轉載,請註明出處,否則將追究法律責任。

相關文章