ORA-00845: MEMORY_TARGET not supported on this system
问题描述:11g r2 修改了 memory_target 大小由原来的 0.8g 调到了 1.5g,startup报错。
SQL> startup;
ORA-00845: MEMORY_TARGET not supported on this system
分析:
[root@11g ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 40G 24G 15G 62% /
/dev/sda1 142M 40M 94M 30% /boot
/dev/sda3 9.5G 4.4G 4.7G 49% /tmp
tmpfs 2.0G 253M 1.8G 13% /dev/shm
/dev/shm 特点:
1.速度飞快
2.动态分配:写入更多的数据,/dev/shm占用更多的内存;删除/dev/shm中的数据,那么就减少占用内存。不用这样利于内存的充分使用
3.系统重启后、重新挂载/dev/shm后,/dev/shm中的数据都会消失
4.dev/shm默认值是内存的一半,有时根据需要会增大/dev/shm。
/dev/shm不是立即占用内存,而是采用需要才占用内存的方法。
在上面的例子中,/dev/shm设置的值是2G,我们看到已用写入了253m的数据,也就是占用了253m的内存。
ORA-00845 报错原因:
Oracle中设置memory_target中的值超过了/dev/shm的大小。
解决流程:
1. 编辑 /etc/fstab 文件,修改/dev/shm大小
由
tmpfs /dev/shm tmpfs defaults 0 0
改为
tmpfs /dev/shm tmpfs defaults,size=2000M 0 0
2. 先 umount /dev/shm 再 mount /dev/shm
3. df -h 查看是否生效
4. startup Oracle数据库。
SQL> startup;
ORACLE instance started.
Total System Global Area 1670221824 bytes
Fixed Size 2253824 bytes
Variable Size 1056967680 bytes
Database Buffers 603979776 bytes
Redo Buffers 7020544 bytes
Database mounted.
Database opened.