ORA-00845: MEMORY_TARGET not supported on this system报错解决
今天因为导入oracle数据文件的时候尴尬了一回。
因为环境是在虚拟机中,然后我启动虚拟机的时候内存是3G,进入到系统中发现oracle的实例没启动
具体如下报错信息
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system
查找资料后发现问题如下,见metalinikID 460506.1
Oracle 11g数据库修改pfile参数后启动数据库报错ora-00845
在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 ~]# mount -o remount,size=7G /dev/shm
[root@rhel6 mydbbackup]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Dec 20 08:29:51 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_rhel6-lv_root / ext4 defaults 1 1
UUID=f742f5bf-7787-4a46-bc06-d751caa48482 /boot ext4 defaults 1 2
/dev/mapper/vg_rhel6-lv_home /home ext4 defaults 1 2
/dev/mapper/vg_rhel6-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
shmfs /dev/shm tmpfs defaults,size=7g 0 0
[root@rhel6 mydbbackup]# df -h | grep shmfs
shmfs 7.0G 941M 6.1G 14% /dev/shm
然后启动数据库:
SQL> startup
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2213776 bytes
Variable Size 1124075632 bytes
Database Buffers 469762048 bytes
Redo Buffers 7360512 bytes
Database mounted.
Database opened.
参考文章:http://www.linuxidc.com/Linux/2012-12/76976.htm