Oracle安装时的系统内核参数如何设定(标准的设定方法,绝无出错)
前言:
Oracle是一个大型的数据库软件,不管是安装还是使用对系统的资源都是巨大的,因此,需要在安装前修改Linux的内核参数,以使得内核能够稳定支持Oracle的安装和后续的运行。其中,内核的修改主要针对的是内存管理这一系列。
其中,具体的为文件io读写参数,内存共享参数,多线程信号量,网络内核参数。
在正式安装Oracle前,也百度了很多资料,其中有一个说的特别好,先查询出内核所支持的最优参数,然后将内核参数写入 /etc/sysctl.conf文件,执行命令sysctl -p 使之生效。
操作步骤:
在正式安装Oracle前,需要查出当前的系统内核在使用的参数,这些参数尤其是关于内存的参数基本都是最优的。
[root@centos11 ~]# sysctl -a |grep shm
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
root@centos11 ~]# sysctl -a |grep fs.aio
fs.aio-max-nr = 65536
fs.aio-nr = 7369
[root@centos11 ~]# sysctl -a |grep fs.file
fs.file-max = 6553600
fs.file-nr = 12512 0 6553600
fs.xfs.filestream_centisecs = 3000
[root@centos11 ~]# sysctl -a |grep sem
kernel.sem = 250 32000 32 128
kernel.sem_next_id = -1
[root@centos11 ~]# sysctl -a |grep net.core.rmem
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
[root@centos11 ~]# sysctl -a |grep net.core.wmem
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
[root@centos11 ~]# sysctl -a |grep net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 60999
将以上所查询出来的内核参数写入 /etc/sysctl.conf文件内,保存文件后,执行命令 sysctl -p 使得这些参数生效即可。我的实验机内容如下:
fs.aio-max-nr = 65536#io读写参数
fs.file-max = 6553600#最大打开文件数
kernel.shmall = 18446744073692774399#共享内存参数
kernel.shmmax = 18446744073692774399#共享内存参数最大值
kernel.shmmni = 4096#共享内存参数最小值
kernel.sem = 250 32000 32 128#
net.ipv4.ip_local_port_range = 32768 60999#本机允许对外的端口映射范围
net.core.rmem_default = 262144#接收套接字缓冲区大小的默认值(以字节为单位)
net.core.rmem_max = 4194304#接收套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_default = 262144#发送套接字缓冲区大小的最大值(以字节为单位)。
net.core.wmem_max = 1048586#用来限制监听(LISTEN)队列最大数据包的数量,超过这个数量就会导致链接超时或者触发重传机制
注(所有参数单位都为字节)
每一个种类机器内核参数都不一定是一样的,比如,IBM,hp服务器,很可能不一样,参数也和机器的配置有关系的(比如内存多少,CPU核心数等等因素有关),查询出来的参数才是正确的参数。