伺服器增加記憶體後無法重啟資料庫的問題及解決
前幾天生產環境需要做伺服器的擴容,把原本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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解決vscode安裝後無法啟動的問題VSCode
- 【虹科乾貨】使用記憶體資料庫解決三個資料庫效能問題記憶體資料庫
- discuz資料庫搬家,改密碼後無法訪問解決辦法資料庫密碼
- 解決ASM無法啟動問題ASM
- 解決golang 的記憶體碎片問題Golang記憶體
- 記憶體洩漏引起的 資料庫效能問題記憶體資料庫
- 記憶體混亂及解決方法和死鎖問題記憶體
- Oracle日常問題-資料庫無法啟動(案例二)Oracle資料庫
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- 解決sqlserver資料庫單一使用者無法刪除的問題SQLServer資料庫
- 解決git記憶體洩露問題Git記憶體洩露
- 記一次Razor Pages無法編譯問題及解決編譯
- JAVA服務例項記憶體高問題排查及解決Java記憶體
- 告別記憶體OOM,解決MySQL記憶體增長問題記憶體OOMMySql
- goland中npm無法使用的問題及解決方法GoLandNPM
- IDEA中Lombok無法生效的問題及解決方法IdeaLombok
- iOS開發筆記— 資料庫、Crash、記憶體問題分析iOS筆記資料庫記憶體
- 安裝mysql資料庫及問題解決方法MySql資料庫
- 解決Oracle資料庫遷移後的伺服器負載效能問題JSOracle資料庫伺服器負載JS
- 資料併發操作帶的的問題及解決辦法
- java向excel 寫入海量資料記憶體溢位問題 解決JavaExcel記憶體溢位
- 運維該如何解決 Linux 伺服器重啟後命令無法正常使用的問題?運維Linux伺服器
- 記錄一次無法很好解決的問題
- N1盒子掛載磁碟-解決盒子重啟後無法自動掛載問題
- 解決無法使用VI的問題
- 雲伺服器解決MSSQL 2005 佔用記憶體過大問題伺服器SQL記憶體
- 怎麼解決SOLIDWORKS文件無法正常開啟的問題!Solid
- VMware DHCP Service服務無法啟動問題的解決
- 記一次記憶體溢位問題的排查、分析過程及解決思路記憶體溢位
- derby 資料庫 伺服器模式 無法訪問資料庫伺服器模式
- 記vscode無法啟動解決辦法VSCode
- 解決vps伺服器(centos7)重啟後寶塔皮膚打不開無法啟動伺服器CentOS
- 【伺服器資料恢復案例解讀】伺服器突然崩潰,重啟後無法進入系統故障的資料恢復伺服器資料恢復
- 解決Instruments檢測記憶體洩漏時真機無法定位的問題記憶體
- 解決Linux無法開啟android模擬器問題LinuxAndroid
- 伺服器故障重啟可以解決大部分問題伺服器
- 解決Mysql資料庫插入資料出現問號(?)的解決辦法MySql資料庫
- 應用使用JNDI,資料庫無法連線,導致的程序無法啟動問題處理資料庫
- 解決重灌系統後重新下載eclipse無法開啟之前專案的問題Eclipse