12C ORA-27106 錯誤處理過程,12cora-27106
前兩天客戶Exadata 12c環境因為記憶體配置報錯,以下為處理過程。
節點重新啟動的時候報錯,但是其他節點卻啟動正常。報錯內容:
ORA-27106 System pages not available toallocate memory
alert內容:
Supported system pagesize(s):
Fri Apr 10 18:07:43 2015
PAGESIZE AVAILABLE_PAGES EXPECTED_PAGES ALLOCATED_PAGES ERROR(s)
Fri Apr 10 18:07:43 2015
2048K 3079 8194 3076 ORA-27125
判斷有可能是hugePage的分派不足導致。
檢查了參數檔案中修改的內容。發現設定了use_large_pages。參數值有三個代表的含義如下:
TRUE表示如果系統配置好了HugePage,則會使用,如果沒有,SGA也可以使用通常頁大小的記憶體,也就是說SGA可以運行在混合模式下。
FALSE表示,執行個體不會使用HugePage。
ONLY表示只使用Huge。
故障節點上use_large_pages值為ONLY。所以出現了上面沒有足夠的HugePage而報錯的情況。
知道的問題的根源,解決起來就容易了。兩種解決方案。
1、 修改作業系統參數vm.nr_hugepages將值擴大。
2、 修改資料庫參數use_large_pages為TRUE。
經過溝通,使用者方沒有特別要求資料庫參數的值,所以將其修改為TRUE後,事情結束。
這時候有同學要問了,為什麼其他節點的資料庫正常開啟呢?
其實是因為這樣,這套叢集中一共有兩個資料庫。第二個資料庫是後來建立的,use_large_pages的值為預設值TRUE。
故障節點重啟後第二個資料庫的執行個體先行啟動,使用了大部分的HugePage,導致剩餘的數量不夠第一個資料庫執行個體啟動,因此報錯。