新特性:/dev/shm對Oracle 11g的影響

strivechao發表於2019-04-01

/dev/shm對Oracle 11g的影響:


      ORACLE 從11g版本開始,引入了一個自動記憶體管理(Automatic Memory Management)特性,該特性需要更多的共享記憶體(/dev/shm),因此如果決定應用該特性的話, 必須要確保共享記憶體大於ORACLE 中初始化引數MEMORY_MAX_TARGET 和MEMORY_TARGET(特別提示,這兩個引數即自動記憶體管理特性對應的初始化引數)的值。

      如果在初始化引數中設定了MEMORY_MAX_TARGET 和MEMORY_TARGET 兩引數為非0值,並且不符合系統共享記憶體,則ORACLE 資料庫啟動時,就會觸發ORA-00845:MEMORY_TARGET not supported on this system 錯誤。


Oracle 11g的Linux版本在修改了MEMORY_TARGET或者SGA_TARGET後啟動可能會報錯:


SQL> shutdown immediate

Database closed.

SQL> startup

ORA-00845: MEMORY_TARGET not supported on this system


在資料庫的alert日誌中將有下面的報錯:

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 10536091648 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 8589852672 and used is 81920 bytes.

memory_target needs larger /dev/shm

問題很明顯:是因為/dev/shm的可用空間(非shm的總大小)小於了引數檔案中設定的MEMORY_TARGET值。


解決辦法就是增大/dev/shm或是減小MEMORY_TARGET,下面是透過增加/dev/shm來解決:

修改前:

osedb01:~ # cat /etc/fstab | grep shm

shm                  /dev/shm             tmpfs      size=11g               0 0


osedb01:~ # df -h /dev/shm

Filesystem            Size  Used Avail Use% Mounted on

shm                    11G  6.5G   4.5G  59% /dev/shm


MEMORY_TARGET 設定為10G,而/dev/shm可用空間的只有4.5G。


修改/dev/shm大小:

osedb01:~ # cat /etc/fstab | grep shm

shm                  /dev/shm             tmpfs      size=18g               0 0

修改完後,需要重新掛載/dev/shm生效:

osedb01:~ # mount -o remount /dev/shm


osedb01:~ # df -h /dev/shm

Filesystem            Size  Used Avail Use% Mounted on

shm                    18G  6.5G   12G  36% /dev/shm


再次重啟資料庫,正常!!



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25469263/viewspace-2639932/,如需轉載,請註明出處,否則將追究法律責任。

相關文章