oracle 12.2資料庫引數_cursor_obsolete_threshold導致大量等待事件cursor: mutex X

湖湘文化發表於2018-01-16
oracle 12.2.0.1.0資料庫引數_cursor_obsolete_threshold預設設定不合理導致大量等待事件cursor: mutex X

1、現象

2017年年底某一天,接到電話,某業務系統突然出現異常、基本不可用,該業務系統使用的是oracle 12.2.0.1.0 RAC。 

 

2、處理

檢視告警日誌,發現有部分客戶端連線超時的報錯;

 

檢視等待事件,發現兩個節點上都有大量(七八百)的等待事件:

cursor: mutex X

 

透過和應用維護廠家溝通,決定透過重啟資料庫,優先恢復業務;

 

3、原因

後續查詢原因,經查證、發現是Oracle 12.2版本的引數_cursor_obsolete_threshold預設設定不合理

 

The default value for _cursor_obsolete_threshold is 1024 pre 12.2, but has increased to 8192 in 12.2.

 

Set _cursor_obsolete_threshold=1024 in CDB level: 
example command: 
alter system set "_cursor_obsolete_threshold"=1024 scope=spfile; 
restart the database 

 

 

4、處理

已經按照oracle的建議調整了隱含引數,但這是個靜態引數、要重啟整個CDB才生效、因為叢集環境還有其他業務系統的pdb資料庫在用,所以需要協調一個維護時間視窗來重啟整個CDB

5、建議

新版本的資料庫上線前應該多做壓力測試、功能測試等,並且儘可能最佳化預設引數(最好有oracle原廠的諮詢和建議)


6、獲取

select a.ksppinm name,b.ksppstvl value,a.ksppdesc description 
from x$ksppi a,x$ksppcv b 
where a.indx = b.indx 
and a.ksppinm like '&parameter';
_cursor_obsolete_threshold


select a.ksppinm name,b.ksppstvl value,a.ksppdesc description 
from x$ksppi a,x$ksppcv b 
where a.indx = b.indx 
and a.ksppinm like '_cursor_obsolete_threshold';

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

相關文章