dev shm与oracle,/dev/shm目录下产生大量的ora_$ORACLE_SID_的二进制文件 解决方案

2014.11.18

下午在检查一个新上线的生产库的时候,发现了一个问题:

9edd6e855fc672f353ed7e5e8f827e7f.png

为什么/u01 使用了41G,明明这个目录下面只有oracle的安装软件和system.sysaux表空间,大小加起来也就几个G,而且使用du -sh /u01 显示确实只有8.3G。

同时 这里显示/dev/shm使用了30G,我就纳闷呢!找原因。

去到/dev下面 再du -sh 一下,显示shm 有三十多个G,同时去到看到大量的ora_ORACLE_SID_开头的文件,文件大小加起来刚开30G左右。

第一次看到,一头雾水,还以为是数据库里面的那个参数位置指定错了

于是查看归档路径,查一些可以查看的参数路径,结果一无所获。

为什么这下数据库产生的文件会跑到/dev/shm 下面呢。

网上找到了一篇相关了博客,截取一点解释:1)什么是/dev/shm

它就是所谓的tmpfs,从名字可以看出是一个临时的文件系统,有人说跟ramdisk(虚拟磁盘),但不一样。使用/dev/shm的好处就是读取数据相当快,因为典型的 tmpfs 文件系统会

完全驻留在 RAM 中,读写几乎可以是瞬间的。同时,要注意的是,在/dev/shm中的文件在系统重启后会被清除掉。

tmpfs默认大小一般为物理内存的一半,当然可以修改tmpfs的大小。一般在fstab上可以看到

tmpfs /dev/shm tmpfs defaults 0 0

如果要将tmpfs的大小修改为4G,可以对上面的做适当的修改即可,如:

tmpfs /dev/shm tmpfs defaults,size=4096M 0 0

(2)/dev/shm对oracle 11g的影响

ORACLE 从11g版本开始,引入了一个自动内存管理(Automatic Memory Management)特性,该特性需要更多的共享内存(/dev/shm),因此如果决定应用该特性的话,

必须要确保共享内存大于ORACLE 中初始化参数MEMORY_MAX_TARGET 和MEMORY_TARGET(特别提示,这两个参数即自动内存管理特性对应的初始化参数)的值。

Oracle在metalink的文档:Doc ID:Note:460506.1中进行了说明。解决这个问题只有两个方法,一种是修改初始化参数,使得初始化参数中SGA的设置小于/dev/shm的大小,

另一种方法就是调整/dev/shm的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值