environment:
Red Hat Linux Server
人哪.. 如果閒著沒事幹就會替自己找麻煩= =,今天把準備拿來當production的oracle shutdown下來,再重開。馬上就被賞了個大禮。說是大禮,因為要是今天沒發現... 等到真的上線了才手忙腳亂,也沒時間整理文件囉~ =P
先來說說11g的新變革:
Automatic Memory Management(AMM)是11g的新功能,需要額外的shared memory(/dev/shm)還有一些file descriptors來實現,透過MMAN這支process來管理動態管理SGA與PGA的大小。
比較一下11g跟10g以前的記憶體管理設定參數:
11g | before 10g | |
memory size | MEMORY_TARGET | SGA_TARGET PGA_AGGREGATE_TARGET |
limit | MEMORY_MAX_TARGET | SGA_MAX_TARGET |
(當MEMORY_TARGET或MEMORY_MAX_TARGET其中一個有指定值時,SGA_MAX_TARGET會自動設成大的那個)
嗯... 簡單介紹到這,接著該來講正事: ORA-00845
在startup oracle時,若
- /dev/shm not mounted
- mounted with available size less then MEMORY_TARGET(系統內shared memory(/dev/shm)比設定的MEMORY_TARGET還要小)
就會丟出ORA-00845這個錯誤。同時去檢查alert log,也可以看見相關訊息,而且他也會建議適合的大小給你設定。
Starting ORACLE instance (normal)
WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least 2097152000 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that MEMORY_TARGET can work as expected. Current available is 2071711744 and used is 0 bytes. Ensure that the mount point is /dev/shm for this directory.
memory_target needs larger /dev/shm
要判斷自己是哪種情況可以先下"df -k"這個指令來查看/dev/shm是否有mount,若正常,應該可以看到如下:
[...]$ df –k
檔案系統 1K-區段 已用 可用 已用% 掛載點
tmpfs 3145728 1062256 2083472 34% /dev/shm
若確定有掛載,那就是大小問題,可以調大mountpoint size:
# mount -t tmpfs shmfs -o size=7g /dev/shm
為了讓每次server重開機時,可以自動分配同樣的大小,需要修改/etc/fstab這個檔案,請讓他看起來長的像這樣:
tmpfs /dev/shm tmpfs size=3g 0 0
這樣就一切大功告成!! 祝startup愉快~ =D
Ref:
- [Oracle Doc] Oracle Release Notes > Known issues
- [Oracle Doc] Preinstallation Requirements > Hardware Requirements > Memory Requirements > Automatic Memory Management(AMM)
- (need login) [Metalink] ORA-00845: MEMORY_TARGET not supported on this system - Linux Servers [ID 465048.1]
- [Ask Tom] ORA-00845: …
- [鳥哥] /etc/fstab
Post a Comment