Oracle ORA-27090故障分析


背景

客戶RAC 11.2.0.4環境在巡檢時,發現大量ORA-27090日志報錯,整體應用暫時沒有表現出異常,但是錯誤一直刷日志,需要分析具體報錯原因。
具體報錯如下:

問題分析

官方解析

通過查找ora-27090官方說明,大意是不能預定系統的異步IO資源,看起來像是某個參數設置過小導致。MOS官方對此也有相應專屬文章介紹此類ORA報錯。

[oracle@dbrac1 ~]$ oerr ora 27090
27090, 00000, "Unable to reserve kernel resources for asynchronous disk I/O"
// *Cause:  The system call to reserve kernel resources for asynchronous I/O
//          has failed.
// *Action: Check errno

ORA-27090 - Unable to Reserve Kernel Resources for Asynchronous Disk I/O (Doc ID 579108.1)
上述文章中主要說明是fs.aio-max-nr= 3145728設置過小導致,推薦值3145728。但本系統已經設置為3145728,不可能是此參數引起,需要驗證是否其他原因導致。

日志分析

節點2日志分析

通過報錯信息,得知此ora-27090在RAC節點2報有異常,再次梳理節點2日志,查找初次報錯的時間點,為11月3日早上2點0分7秒(在ckpt trc文件中,具體時間為2020-11-03 02:00:07.819),具體報錯內容為保存控制文件快照時,找不到本地文件,報ora-27037,ora-27090。

節點2 ora-27037異常原因

需要注意,保存控制文件的名字為snapcf_c5crm1.f,這就比較奇怪,在節點2保存為什么是snapcf_c5crm1.f這個名字,按理應該和rman配置中一致,查看具體rman配置,snapcf_c5crm2.f

節點1日志分析

對於節點2報錯信息,需要結合節點1日志一起分析,節點1日志,11月3日早上2點0分7秒(ora trc中報錯時間 2020-11-03 02:00:07.795)左右也有類似報錯信息,報錯信息ora-00245,ora-27090,報錯意思大概是備份控制文件控制信息失敗。

節點1定時任務

節點1日志只所以會備份控制文件,是因為在凌晨2點有清理歸檔日志腳本運行,所以有觸發備份控制文件操作。

清理日志腳本內也出現備份控制文件失敗報錯,ora-00245,ora-27090,再次驗證節點2報錯又清理歸檔日志腳本引起。

清理日志腳本輸出日志,時間點為(2020-11-03 02:00:07.997)

問題時間列表

下面梳理下本次報錯的時間線。

節點一 節點二
2020-11-03 02:00:00 清理日志腳本啟動
2020-11-03 02:00:07.795 節點1日志出現備份控制文件失敗信息ora-00245,ora-27090
2020-11-03 02:00:07.819 節點2日志出現備份控制文件失敗信息ora-27037,ora-27090
2020-11-03 02:00:07.997 節點1清理歸檔日志腳本輸出日志出現備份控制文件失敗信息ora-00245,ora-27090
2020-11-03 02:00:11之后 節點2日志陸續出現ora-27090報錯信息

總結

針對本此故障的處理,采用重啟節點2實例的方式解決,之后MOS也有相關說明,可以把控制文件快照位置放在共享ASM磁盤組中,即可屏蔽此錯誤。但是目前還存在幾個問題沒有特別明白:
1、在節點1執行的備份控制文件操作,為何被發到節點2執行
2、在節點2執行也可,為何備份還是按照節點1設置的rman保留路徑
3、為何此報錯在節點2切換在線日志之后,5分鍾后會重復提示
關於以上幾個問題,還需查找相關MOS 資料。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM