因为经验不足,所以不能一阵见血的搞定,oracle调整内存的时候,发现系统内存跟/dev/shm 有关。
我理解的是,oracle能够使用的最大内存跟/dev/shm的大小有关,oracle11g中memory_target<=/dev/shm,当时调整的时候,我吧memory_targert调整到比/dev/shm 大的时候,启动oracle的就报错,当时没有记下报错信息,但是大致的就是,memory_target过大,我的内存是64G,给memory_target=40G,去查看/dev/shm 只有26G。于是我又把memory_target调到26G,就可以启动。
查看tmpfs的情况
[oracle@Cargo-Oracledb ~]$ df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-root
16600432 8565604 7177948 55% /
/dev/sda1 194442 12981 171422 8% /boot
tmpfs 67108864 36599052 30509812 55% /dev/shm
/dev/mapper/VolGroup01-lv1
123854820 67743484 49819880 58% /u01
/dev/mapper/VolGroup01-lv2
82467504 36799700 41478620 48% /u01/app/oracle/oralogs
默认系统就会加载/dev/shm,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样.象虚拟磁盘一样,tmpfs可以使用您的RAM,但它也可以使用您的交换分区来存储.而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了. tmpfs有以下优势:
1.tmpfs 的另一个主要的好处是它闪电般的速度.因为典型的tmpfs文件系统会完全驻留在RAM 中,读写几乎可以是瞬间的.
2.tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的.所以有必要做一些脚本做诸如加载,绑定的操作.通常使用/dev/shm作共享内(shm_open,shm_unlink)。 /dev/shm是个临时文档系统(tmpfs),能够从/etc/fstab中mount。因此,支持标准的参数例如"size",能够用来增加或减少在/dev/shm上的tmpfs大小.(默认的,他的大小是系统RAM的一半)
df -l可以看出/dev/shm的大小是系统物理内存的一半.
(建议最好在自己电脑里面做,我也是的,成功了才在服务器上做) 调整/dev/shm的大小
1)查看大小
[root@hxl shm]# df -h /dev/shm
Filesystem Size Used Avail Use% Mounted on
none 505M 0 505M 0% /dev/shm
2)修改大小
vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=4096M 0 0
3)重新挂载
umount /dev/shm
mount /dev/shm
4)查看修改后的大小
df -h /dev/shm
5,这是我自己注意到的一点,当挂载/dev/shm的时候,出现一个现象,就是每挂一次,df -l 就会多一条记录。
[oracle@Cargo-Oracledb ~]$ df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-root
16600432 8565604 7177948 55% /
/dev/sda1 194442 12981 171422 8% /boot
tmpfs 67108864 36599052 30509812 55% /dev/shm
/dev/mapper/VolGroup01-lv1
123854820 67743484 49819880 58% /u01
/dev/mapper/VolGroup01-lv2
82467504 36799700 41478620 48% /u01/app/oracle/oralogs
tmpfs 67108864 36599052 30509812 55% /dev/shm
tmpfs 67108864 36599052 30509812 55% /dev/shm
tmpfs 67108864 36599052 30509812 55% /dev/shm
我这里出现了4条。但是df -h /dev/shm的时候,就只有一条。 [oracle@Cargo-Oracledb ~]$ df -h /dev/shm Filesystem Size Used Avail Use% Mounted on tmpfs 64G 35G 30G 55% /dev/shm