技术开发 频道

VMware下RedHat安装Oracle 9i RAC全攻略

    6.修改linux内核参数以及其他相应配置

[root @linux1 /root]# vi /etc/sysctl.conf

    在该文件末尾添加如下内容:
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    kernel.shmall = 2097152
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    这里,对每个参数值做个简要的解释和说明。

    (1)shmmax:该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。
    (2)shmmni:这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。
    (3)shmall:该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。
    (4)sem:该参数表示设置的信号量。
    (5)file-max:该参数表示文件句柄的最大数量。文件句柄设置表示在linux系统中可以打开的文件数量。

    修改好内核以后,执行下面的命令使新的配置生效。

[root @linux1 /root]# /sbin/sysctl -p

    通常,出于性能上的考虑,还需要进行如下的设定,以便改进Oracle用户的有关 nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)。方法如下:

[root @linux1 /root]# vi /etc/security/limits.conf

    在该文件里添加如下内容:

    oracle soft nofile 65536
    oracle hard nofile 65536
    oracle soft nproc 16384
    oracle hard nproc 16384

    7.配置 hangcheck-timer 内核模块

    Oracle9202以前,都是使用watchdog来检查系统是否挂起。从9202以后,oracle使用hangcheck-timer模块。hangcheck-timer模块被加载到内核中,能够定时检查系统是否挂起。有个可配置的参数用来表示多少时间以后系统没响应就认为是挂起。该模块在AS3中是自带的。

    使用如下命令检查该模块是否存在:

[root @linux1 /root]# find /lib/modules -name "hangcheck-timer.o"

    使用相应的参数加载该模块:

[root @linux1 /root]# /sbin/insmod hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

    这里解释一下两个参数的含义:

    hangcheck_tick:该参数定义了模块启动的间隔时段。其默认值为 60 秒。 Oracle建议将其设置为 30 秒。
    hangcheck_margin:该参数定义了多少时间以后系统没响应就认为是挂起。以秒为单位。其默认值为 180秒。Oracle 建议将其设置为 180 秒。

    检查该模块是否被成功加载:

[root @linux1 /root]# grep Hangcheck /var/log/messages

    为了在linux重启以后,自动加载该模块,可以将加载模块的命令添加到/etc/modules.conf中

[root @linux1 /root]# echo "options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180" >> /etc/modules.conf
0
相关文章