在之前的文章《使用oracheck进行系统巡检》(http://blog.itpub.net/17203031/)中,笔者发现系统的一些配置问题。注意:我们虽然在安装过程中完全依据文档进行实际安装,但是落实到具体的最佳实践是有一些差距的。
oracheck是融合了最新的Oracle最佳实践配置指导,对检查出的问题也提供了比较详细的说明内容。本篇主要针对发现的几个问题修改进行记录。
1、system core file limit设置
第一个info等级问题图示如下:
Linux、Unix系统在运行过程中,如果进程发生致命错误,是支持系统级别生成core dump文件的。core dump是一种诊断用信息,主要用于进行错误后的故障诊断发现功能。Oracle常常使用的的dump功能,也就是借助这个机制来进行的。
不同的dump文件,依据级别的差异有大小差异。Linux/Unix系统中有专门的参数来限制文件的大小,如果生成的dump文件超过限制,就不会生成出来。从oracheck检查情况看,就是对这个参数的内容有问题。
提示信息中说:这个参数限制了coredumpsize大小,如果设置了0-2GB范围,就有生成dump文件的障碍。
查看coredumpsize方法是使用ulimit –a,查看特定用户的设置大小。
[oracle@CRSimpleLinux orachk]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62217
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
修改方法就是在/etc/security/limits.conf中进行配置,对Oracle用户放开dump限制。
[root@CRSimpleLinux ~]# cat /etc/security/limits.conf
# /etc/security/limits.conf
#@student - maxlogins 4
--安装oracle中官方推荐
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
--新加入内容
oracle soft core unlimited
oracle hard core unlimited
# End of file
我们对于limits.conf文件并不陌生。安装oracle操作系统配置层面,要加入nproc和nofile的配置项目。修改之后,验证oracle用户limit情况。
[oracle@CRSimpleLinux ~]$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
2、shmmax共享内存大小
和windows版本Oracle工作原理不同,Linux/Unix版本Oracle在运行中,后台进程采用的是真正的共享内存机制。参数shmmax就是操作系统层面设置的共享内存最大大小。
kernel.shmmax参数是操作系统层面设置的,在安装Oracle中是有配置。但是从最佳实践看,Oracle推荐是内存大小的一半大小。
修改/etc/sysctl.conf文件,来设置新的取值。最后通过sysctl –p来应用。
[root@CRSimpleLinux ~]# sysctl -p
net.ipv4.ip_forward = 0
kernel.shmall = 2097152
kernel.shmmax = 4088072192
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
3、aio-max-nr大小
参数aio-max-nr负责描述异步IO操作最大的文件描述符个数,检查中发现这个描述符过小。
通过手工修改配置,可以提高个数信息,避免IO瓶颈。
[root@CRSimpleLinux ~]# cat /proc/sys/fs/aio-max-nr
65536
[root@CRSimpleLinux ~]# echo > /proc/sys/fs/aio-max-nr 1048576
[root@CRSimpleLinux ~]# cat /proc/sys/fs/aio-max-nr
1048576
4、RAC环境下UDP Buffer缓冲区大小
UDP协议是Oracle RAC工作的一个重要协议,负责进行private network通信。私有网络质量直接影响RAC整体效率和共享内存情况。
修改依然是在sysctl.conf上进行。提示信息中也给出了不同版本的建议设置取值。另外wmen_max也修改为2097152,属于相似问题。
[root@CRSimpleLinux ~]# sysctl -p
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_default = 262144
net.core.wmem_max = 2097152
5、结论
oracheck在很多方面都给出比官方文档更好地解决方案和建议。比较好的策略是,先按照官方文档的建议将数据库安装完成,之后下载运行最新的oracheck检查包,诊断问题进行调整,这样可以保证系统在最佳状态下运行。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17203031/viewspace-1168548/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17203031/viewspace-1168548/