伺服器增加記憶體後無法重啟資料庫的問題及解決
前幾天生產環境需要做伺服器的擴容,把原本64G的記憶體擴到了128G.然後調整了一些其他的kernel引數,在此基礎上需要調整sga的大小,以便分配更多的快取。
環境是11gR2的RAC環境,這時候rac有一個明顯的優點就顯現出來了,就是沒有downtime。一個例項一個例項的改動,調整kernel,db引數都很方便管理。
所在的每個伺服器只有一個oracle_home,各有兩套rac環境在同一個unix賬戶下。所以我啟停資料庫的時候也是一套環境一套環境的來。反正節點也不多。
我先是按照要求把sga調整了一下,從20G調整到40G,這樣一個伺服器兩套環境就佔用80G,還有68G的空餘。
然後保證另一個節點能夠正常failover之後,開始改動,很多改動完一套環境,倒也沒出什麼問題,
開始第二套環境的時候,按照步驟先啟停,做檢查。
然後準備重啟資料庫的時候,報了下面的錯誤。顯示記憶體問題,還有空間的問題,我檢查了一把空間情況,沒有發現什麼問題。
用free -m檢查記憶體使用情況,空餘記憶體還多著呢。
Connected to an idle instance.
SQL> startup nomount
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
SQL> !oerr ora 27102
檢視metalink(ID 301830.1),說是核心引數的配置不夠。
核心引數的值如下:
Last login: Sun Mar 30 22:42:16 2014 from xxxx
-bash-4.1$ cat /proc/sys/kernel/shmall
16383998
-bash-4.1$ cat /proc/sys/kernel/shmmax
67108855808
shmall應該是shmmax/page_size=67108855808/4096=16383998,這個和當前的設定相等
但是同一個unix賬戶下有兩套環境,需要分配兩套sga。所以shmall就遠遠不夠了,需要同時修改shmmax,一般建議為記憶體的90%左右。
調整後引數值如下:
-bash-4.1$ cat /proc/sys/kernel/shmall
33030178
-bash-4.1$ cat /proc/sys/kernel/shmmax
135291609088
然後需要sysctl給啟用一下。
再重啟資料庫就沒有問題了。
環境是11gR2的RAC環境,這時候rac有一個明顯的優點就顯現出來了,就是沒有downtime。一個例項一個例項的改動,調整kernel,db引數都很方便管理。
所在的每個伺服器只有一個oracle_home,各有兩套rac環境在同一個unix賬戶下。所以我啟停資料庫的時候也是一套環境一套環境的來。反正節點也不多。
我先是按照要求把sga調整了一下,從20G調整到40G,這樣一個伺服器兩套環境就佔用80G,還有68G的空餘。
然後保證另一個節點能夠正常failover之後,開始改動,很多改動完一套環境,倒也沒出什麼問題,
開始第二套環境的時候,按照步驟先啟停,做檢查。
然後準備重啟資料庫的時候,報了下面的錯誤。顯示記憶體問題,還有空間的問題,我檢查了一把空間情況,沒有發現什麼問題。
用free -m檢查記憶體使用情況,空餘記憶體還多著呢。
Connected to an idle instance.
SQL> startup nomount
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORA-27102: out of memory
Linux-x86_64 Error: 28: No space left on device
SQL> !oerr ora 27102
檢視metalink(ID 301830.1),說是核心引數的配置不夠。
核心引數的值如下:
Last login: Sun Mar 30 22:42:16 2014 from xxxx
-bash-4.1$ cat /proc/sys/kernel/shmall
16383998
-bash-4.1$ cat /proc/sys/kernel/shmmax
67108855808
CAUSE
shmall is the total amount of shared memory, in pages, that the system can use at one time.
SOLUTION
Set shmall equal to the sum of all the SGAs on the system, divided by the page size.
來做個演算,shmall應該是shmmax/page_size=67108855808/4096=16383998,這個和當前的設定相等
但是同一個unix賬戶下有兩套環境,需要分配兩套sga。所以shmall就遠遠不夠了,需要同時修改shmmax,一般建議為記憶體的90%左右。
調整後引數值如下:
-bash-4.1$ cat /proc/sys/kernel/shmall
33030178
-bash-4.1$ cat /proc/sys/kernel/shmmax
135291609088
然後需要sysctl給啟用一下。
再重啟資料庫就沒有問題了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1137256/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server資料庫記憶體增加的問題分析SQLServer資料庫記憶體
- 掉電無法啟動資料庫問題解決資料庫
- 記一次資料庫重啟後歸檔急劇增加的問題資料庫
- 資料庫突然當機無法open的問題及解決資料庫
- 資料庫shutdown之後無法啟動的問題資料庫
- dbua後資料庫無法啟動錯誤的解決資料庫
- ajax資料無法更新問題原因及解決
- 10g升級至11g後資料庫無法啟動的問題解決資料庫
- sqlplus無法啟動的問題及解決SQL
- 解決SQL Server資料庫佔用記憶體過多的問題SQLServer資料庫記憶體
- 【虹科乾貨】使用記憶體資料庫解決三個資料庫效能問題記憶體資料庫
- 【案例】利用innodb_force_recovery解決MySQL伺服器crash無法重啟問題MySql伺服器
- 【案例】利用innodb_force_recovery 解決MySQL伺服器crash無法重啟問題MySql伺服器
- 實體記憶體充足卻無法增加SGA記憶體
- 解決ASM無法啟動問題ASM
- discuz資料庫搬家,改密碼後無法訪問解決辦法資料庫密碼
- 解決vscode安裝後無法啟動的問題VSCode
- 解決golang 的記憶體碎片問題Golang記憶體
- handlder引起的記憶體洩漏問題以及解決辦法記憶體
- 歸檔問題導致的資料庫無法啟動資料庫
- 一則資料庫無法重啟的案例分析資料庫
- UIWebView與tableView巢狀的記憶體問題及解決方案UIWebView巢狀記憶體
- 記憶體洩漏引起的 資料庫效能問題記憶體資料庫
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- Oracle日常問題-資料庫無法啟動(案例二)Oracle資料庫
- Windows 下處理資料庫無法啟動問題Windows資料庫
- 記憶體混亂及解決方法和死鎖問題記憶體
- 解決ORACLE無法啟動安裝的問題Oracle
- 關於listener無法啟動的問題解決
- 資料庫伺服器記憶體資源消耗100%問題處理案例資料庫伺服器記憶體
- Android開發中常見的5大記憶體洩漏問題及解決辦法Android記憶體
- 一次資料庫無法登陸的問題及排查資料庫
- 一次資料庫無法登陸的"問題"及排查資料庫
- 解決sqlserver資料庫單一使用者無法刪除的問題SQLServer資料庫
- 解決git記憶體洩露問題Git記憶體洩露
- 為硬體保留記憶體 問題的解決方法記憶體
- .Net記憶體洩露原因及解決辦法記憶體洩露
- JAVA服務例項記憶體高問題排查及解決Java記憶體