您的位置:首页 > 其它

参数MEMORY_MAX_TARGET 和MEMORY_TARGET 的修改

2013-10-28 09:59 337 查看
环境: ORACLE11G,

查看TOP 中看到,内存总是用到一半,感觉很莫名,直接 修改 参数MEMORY_MAX_TARGET 和MEMORY_TARGET ,出以下错误:

ORA-00845 MEMORY_TARGET not supported on this system

查询相关错误得到以下内容:

/dev/shm理论

/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。 /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢?

默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。

  tmpfs有以下优势:

  1,动态文件系统的大小。

  2,tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。

  3,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

二、修改/dev/shm大小

[root@dg1 ~]# vi /etc/fstab

LABEL=/ / ext3 defaults 1 1

LABEL=/opt /opt ext3 defaults 1 2

LABEL=/boot /boot ext3 defaults 1 2

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

LABEL=SWAP-sda3 swap swap defaults 0 0

修改为:

tmpfs /dev/shm tmpfs defaults,size=52g 0 0

把内存只能 使用到系统的的一半32G,扩展到,size=52g 。

执行以下命令,使期生效

mount -o remount /dev/shm

再修改ORACLE 参数

SQL> alter system set memory_max_target=52000M scope=spfile;

System altered.

SQL> alter system set memory_target=50000M scope=spfile;

System altered.

SQL> show parameter target;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: