linux修改tmpfs大小并使之生效

来源:互联网 发布:如何编写人工智能系统 编辑:程序博客网 时间:2024/05/29 19:28

导读:昨天晚上在一个项目上迁移oracle 11G数据库,在这之前已经迁移过一次了,但是没有成功,迁移后导致统一身份认证系统不能正常使用。于是在昨天晚上再次进行迁移,这次采用冷备份的方法直接拷贝oracle文件(为了避免再次出现迁移后统一身份认证系统不能使用),操作系统为redhat 6.2 X86_64,数据库版本为oracle 11G R2。

  昨天晚上在一个项目上迁移oracle 11G数据库,在这之前已经迁移过一次了,但是没有成功,迁移后导致统一身份认证系统不能正常使用。于是在昨天晚上再次进行迁移,这次采用冷备份的方法直接拷贝oracle文件(为了避免再次出现迁移后统一身份认证系统不能使用),操作系统为redhat 6.2 X86_64,数据库版本为oracle 11G R2。
  按照原有系统相关配置,配置好oracle所需的环境变量,并将oracle软件、数据文件等全部复制到新环境的相同目录即可(这里就不具体介绍了,有兴趣的朋友可留言交流)。所有准备就绪后,启动数据库进行测试,结果报如下错误:
  ORA-00845: MEMORY_TARGET not supported on this system
  经查是由于/dev/shm(共享内存)空间太小,而数据库所需的内存超过/dev/shm目录大小所致,tmpfs 的值默认情况是为系统内存的一半,那么我们就需要给tmpfs增加空间。

[root@orc09-lx ~]# df –h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
485G 125G 336G 28% /
tmpfs 32G 14G 18G 44% /dev/shm
/dev/sda2 485M 38M 423M 9% /boot
/dev/sda1 200M 256K 200M 1% /boot/efi

  修改/etc/fstab文件如下所示:

/dev/mapper/VolGroup-LogVol01 / ext4 defaults 1 1
UUID=ecd0ec5a-2b15-446c-84c3-c459507f7217 /boot ext4 defaults 1 2
UUID=EB00-F1F6 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/mapper/VolGroup-LogVol00 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=46G 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0

  重新挂载/dev/shm使修改生效:

# mount -o remount /dev/shm

  再次查看空间大小

[root@orc09-lx ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
485G 125G 336G 28% /
tmpfs 46G 14G 33G 31% /dev/shm
/dev/sda2 485M 38M 423M 9% /boot
/dev/sda1 200M 256K 200M 1% /boot/efi

  修改成功后,再次重启数据库,已经没有报错,数据库正常启动。数据库正常启动了是不是就完成了呢?no,不是的,重启服务器后,你会发现tmpfs又变成默认大小了,刚才修改的并没有生效,那么我们如何将它设置为永久生效呢?这里除了修改/etc/fstab文件我们还要修改一个非常重要的文件/etc/rc.d/rc.sysinit。
  1、注释以下内容:

# mount -f /dev/shm >/dev/null 2>&1

  2、在/etc/rc.d/rc.sysinit文件中找到并修改如下内容:

# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
# The ‘no’ applies to all listed filesystem types. See mount(8).
if [ "$READONLY" != "yes" ] ; then
action $”Mounting local filesystems: ” mount -a -ttmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
else
action $”Mounting local filesystems: ” mount -a -n -ttmpfs,nonfs,nfs4,smbfs,ncpfs,cifs,gfs,gfs2 -O no_netdev
fi

  修改完成后,重新启动操作系统,发现已经成功。

0 0