【SGA】RAC DB SGA超過100g的最佳實踐和建議
RAC DB SGA超過100g的最佳實踐和建議
版本說明:
本文件中相關資訊適用於任何平臺
Oracle資料庫企業版11.2.0.3及以上
目的:
本文編寫的目的,提供在RAC每個例項(注意, rac 在整個叢集中採用均勻大小的 SGAs)中使用者設定非常大的SGA(例如100GB)的最佳實踐和建議。此文件是根據 Oracle在全球RAC客戶的經驗進行編譯和維護的。
本文件不能取代Oracle 文件集,而是作為是一個補充。對Oracle文件的閱讀、理解以及參考是必須的,以便為本說明未明確解決的任何問題提供答案。
所有建議都應由您自己的執行小組仔細審閱, 並且只有在經過潛在收益與相關風險評估後才應執行。風險評估只能透過對系統、應用程式和業務環境的詳細瞭解下進行。
由於每個客戶環境都是唯一的, 因此任何 oracle 資料庫實現 (包括 oracle rac 的實現) 的成功都取決於成功的測試環境。oracle 支援已確定 100 gb 作為大的基線, 這將受益於本說明中提供的建議。然而, 這僅僅是一個基線, 小的SGAs(較小的)也受益於這些建議。因此, 本說明中的任何建議都必須使用一個測試環境進行徹底的測試和驗證, 這是在生產環境中實施之前的一個生產環境的副本, 以確保與所提建議沒有負面影響。
範圍:
本文適用於所有新的和現有的RAC的實現。
只適用於RAC資料庫,因為這裡列出的大多數引數僅用於RAC資料庫。
描述:
注意, 本說明中提出的建議是在使用SGA為1TB和2.6TB的資料庫方面經驗的結果。
同時, SGA為100GB和300GB的資料庫也受益於這些建議
初始引數:
a、 設定引數 _lm_sync_timeout為1200
設定這個引數是防止重構時和DRM超時,它是一個靜態引數,支援滾動重啟。
b、 設定引數 _ksmg_granule_size 為134217728
設定此項將減少查詢資料塊的資源所需的時間。它是一個靜態引數, 支援滾動重啟。
c、 設定shared_pool_size 為 總SGA大小的15%或者更大
例如,如果SGA大小為1TB,這個共享池大小應該至少為150GB。這是一個動態引數。
d、 設定引數 _gc_policy_minimum為15000
如果DRM透過引數setting _gc_policy_time=0禁用,這個引數是不需要設定的。_gc_policy_minimum 為動態引數,_gc_policy_time引數是靜態引數,不支援滾動重啟設定。禁用DRM,這個引數可以動態設定,來替代_gc_policy_time,_lm_drm_disable 。
e、 設定引數 _lm_tickets為5000
預設值為1000,為避免在重新配置期間出現問題分配更多的tickets(使用者傳送資訊)。它是一個靜態引數,支援滾動重啟,當增加這個引數值時支援滾動重啟,但是在減少時,需要冷啟動。
f、 設定引數gcs_server_processes為分配的lms程式預設值的兩倍
LMS程式的預設數量取決於伺服器擁有的CPUs(核心)的數量。因此,請參考Oracle資料庫參考指南中初始化引數部分的gcs_server_processes。確認伺服器的lms程式的預設數量,請確保伺服器上的所有資料庫的lms程式總數少於伺服器上的CPUs(核心)總數。可以參考文件558185.1,它是一個靜態引數,支援滾動重啟。
附:gcs_server_processes預設值演算法(參考Oracle11gR2 參考指南)
如果CPUs數為1-3,預設值為1
如果CPUs數為4-15,預設值為2
如果CPUs數大於16,演算法為2+(CPUs/32),如果結果包括分數,忽略。例如,CPUs為20,然後就是2+(20/32),就等於2個GCS程式。如果CLUSTER_DATABASE等於false,值為0。如果ASM,值為1。 引數範圍1-36。
Oracle RAC 多個例項可以設定不同的值。
推薦一下補丁:
11.2.0.3.5 DB PSU或者更高版本,建議解決已知大SGA大小的問題。
在Linux系統中SGA大約4TB, 以下bug
BUG 18780342 - LINUX SUPPORT FOR > 4TB SGA
翻譯自MOS:Best Practices and Recommendations for RAC databases with SGA size over 100GB (Doc ID 1619155.1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2142839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 對SGA和PGA的優化建議優化
- show sga和show parameter sga的區別
- ORACLE RAC 記憶體SGA,PGA配置超過300G的問題Oracle記憶體
- Git最佳實踐建議Git
- 變更oracle 11.2.0.3 rac sga自動管理為sga手工管理Oracle
- 【建議收藏】swoft的最佳實踐
- 使用lock_sga和pre_page_sga引數保證SGA常駐實體記憶體記憶體
- ORACLE RAC SGA引數調整Oracle
- 如何檢視和設定sga和pga的當前記憶體的建議值記憶體
- 【引數】使用lock_sga和pre_page_sga引數保證SGA常駐實體記憶體記憶體
- 一次RAC下的的SGA修改操作
- oracle 92 修改sga過程Oracle
- 變更oracle 11.2.0.3 rac sga手工管理為sga及pga全自動管理Oracle
- oracle SGA配置和管理Oracle
- sga_target與sga_max_size
- SGA_MAX_SIZE與SGA_TARGET
- sga_target與max_sga_size
- 一次RAC下的的SGA修改操作(轉)
- 【轉】SGA_MAX_SIZE與SGA_TARGET
- 查詢SGA和PGA大小
- Sga的結構
- Oracle Rac 修改SGA_TARGET值無變化Oracle
- 【sga】資料庫啟動時的的SGA大小顯示資料庫
- 自動SGA共享記憶體管理,ASMM,MMAN,sga_target,sga_max_size記憶體ASM
- Oracle 在Linux X86上使用超過2G的SGAOracleLinux
- SGA和PGA記憶體管理記憶體
- ORACLE SGA 的分配(轉)Oracle
- 轉:關於SGA_MAX_SIZE與SGA_TARGET的詳解
- 9i 下sga_max_size 和SGA中各記憶體分配項的關係記憶體
- Large SGA On LinuxLinux
- 記憶體_SGA記憶體
- oracle sga相關Oracle
- oracle sga構成Oracle
- Oracle SGA中的Granule(粒度)Oracle
- Oracle HowTo:如何在Linux上擴充套件SGA超過1.7GOracleLinux套件
- oracle 10g中的SGA_MAX_SIZE與SGA_TARGET引數Oracle 10g
- SGA設定過大造成的系統效能問題
- Best Practices and Recommendations for RAC databases with SGA size over 100GBDatabase