程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 12CORA-27106錯誤處理過程

12CORA-27106錯誤處理過程

編輯:Oracle教程

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,導致剩余的數量不夠第一個數據庫實例啟動,因此報錯。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved