操作系統版本:CentOS 5.4
數據庫版本:11.2.0.2
現象
Oracle 11g數據庫修改pfile參數後啓動數據庫報錯ora-00845
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
查找資料後發現問題如下,見metalinikID 460506.1
在oracle 11g中新增的內存自動管理的參數MEMORY_TARGET,它能自動調整SGA和PGA,這個特性需要用到/dev/shm共享文件系統,而且要求/dev/shm必須大於MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就會報錯
解決方案
1.初始化參數MEMORY_TARGET或MEMORY_MAX_TARGET不能大於共享內存(/dev/shm),爲了解決這個問題,可以增大/dev/shm
如:
# mount -t tmpfs shmfs -o size=7g /dev/shm
2.爲了確保操作系統重啓之後能生效,需要修改/etc/fstab文件
shmfs /dev/shm tmpfs size=7g 0
3.如果/dev/shm沒有掛載也會報上面的錯,所認需要確保已經掛載
oracle@aaaprod-db ~]$ df -h
……
tmpfs 16G 8.9G 7.2G 56% /dev/shm
……
下面爲一次操作的記錄
[root@aaaprod-db ~]# cat /etc/fstab | grep tmpfs
tmpfs /dev/shm tmpfs defaults,size=8g 0 0
[root@aaaprod-db ~]#
[root@aaaprod-db ~]# mount -o remount,size=16G /dev/shm
[root@aaaprod-db ~]#
[root@aaaprod-db ~]# cat /etc/fstab | grep tmpfs
tmpfs /dev/shm tmpfs defaults,size=8g 0 0
[root@aaaprod-db ~]# vi /etc/fstab
/dev/rootvg/LogVol02 / ext3 defaults 1 1
/dev/rootvg/LogVol01 /tmp ext3 defaults 1 2
/dev/rootvg/lvol0 /ebao ext3 defaults 1 2
/dev/rootvg/lvol1 /backup ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=16g 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/rootvg/LogVol00 swap swap defaults 0 0
"/etc/fstab" 10L, 769C written
[root@aaaprod-db ~]# df -h|grep shm
tmpfs 16G 0 16G 0% /dev/shm
SQL> startup
ORACLE instance started.
Total System Global Area 9420095488 bytes
Fixed Size 2236248 bytes
Variable Size 2315255976 bytes
Database Buffers 7046430720 bytes
Redo Buffers 56172544 bytes
Database mounted.
Database opened.
SQL> exit