ITPub博客

首页 > 数据库 > Oracle > 安装oracle数据库时,设置linux内核参数的意义

安装oracle数据库时,设置linux内核参数的意义

原创 Oracle 作者:okzhixiang 时间:2007-09-17 19:44:57 0 删除 编辑

一般我们在redhat上装oracle的时候都需要修改os的参数

例如:

sem
shmmax
shmmni
shmall
file-max

[@more@]

设置 SHMMAX

SHMMAX 参数定义共享内存段的最大尺寸(以字节为单位)。 Oracle SGA 包含共享内存,而不正确地设置 SHMMAX 可能会限制 SGA 的大小。在设置 SHMMAX 时,切记 SGA 的大小应该适合于一个共享内存段。 SHMMAX 设置不足可能会导致以下问题:

ORA-27123:unable to attach to shared memory segment

您可以通过执行以下命令来确定 SHMMAX 的值:

# cat /proc/sys/kernel/shmmax

设置 SHMMNI 我们现在来看 SHMMNI 参数。这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。这一数值已经足够,通常不需要更改。 您可以通过执行以下命令来确定 SHMMNI 的值:
# cat /proc/sys/kernel/shmmni
4096

设置 SHMALL 最后,我们来看 SHMALL 共享内存内核参数。该参数控制着系统一次可以使用的共享内存总量(以页为单位)。简言之,该参数的值始终应该至少为:
ceil(SHMMAX/PAGE_SIZE)
SHMALL
的默认大小为 2097152 ,可以使用以下命令进行查询:
# cat /proc/sys/kernel/shmall
2097152
SHMALL
的默认设置对于我们的 Oracle9 i RAC 安装来说应该足够使用。 注意: 在 i386 平台上 Red Hat Linux 的页面大小 为 4096 字节。但是,您可以使用 bigpages ,它支持配置更大的内存页面尺寸。

设置信号 既然我们已经配置了共享内存设置,现在就该考虑配置我们的 信号 了。对信号的最佳描述是,它是用于在共享资源(如共享内存)的进程(或进程中的线程)之间提供同步的计数器。在系统 V 中支持信号集,其中每一项都是信号计数。当应用程序请求信号时,它使用集合来完成此工作。 要确定所有的信号限制,可使用以下命令:

# ipcs -ls

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
您还可以使用以下命令:
# cat /proc/sys/kernel/sem
250 32000 32 128

设置文件句柄 在配置我们的 Red Hat Linux 服务器时,确保文件句柄的最大数量足够大是非常关键的。文件句柄设置表示您在 Linux 系统中可以打开的文件数量。 使用以下命令来确定整个系统中文件句柄的最大数量:
# cat /proc/sys/fs/file-max
32768

Oracle 建议将整个系统的文件句柄值至少设置为 65536 通过直接更改 /proc 文件系统,您可以不必重新启动机器而改变文件句柄最大数量的默认设置。我使用的方法是将以下命令置于 /etc/rc.local 启动文件中:
# echo "65536" > /proc/sys/fs/file-max
您还可以使用 sysctl 命令来更改 SHMMAX 的值:
# sysctl -w fs.file-max=65536
最后,您可以通过将该内核参数插入到 /etc/sysctl.conf 启动文件中,使这种更改永久有效:
# echo "fs.file-max=65536" >> /etc/sysctl.conf

设置文件句柄 在配置我们的 Red Hat Linux 服务器时,确保文件句柄的最大数量足够大是非常关键的。文件句柄设置表示您在 Linux 系统中可以打开的文件数量。 使用以下命令来确定整个系统中文件句柄的最大数量:
# cat /proc/sys/fs/file-max
32768
Oracle
建议将整个系统的文件句柄值至少设置为 65536 通过直接更改 /proc 文件系统,您可以不必重新启动机器而改变文件句柄最大数量的默认设置。我使用的方法是将以下命令置于 /etc/rc.local 启动文件中:
# echo "65536" > /proc/sys/fs/file-max

net.ipv4.ip_local_port_range = 1024 65000
设置当本地系统向外发起tcp或udp连接请求时使用的端口范围。设置值为两个整数,缺省为“1024 4999”。

net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7185924/viewspace-969782/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    15
  • 访问量
    81693