OracleRAC -- /etc/sysctl.conf中常见参数设置
例子:
#for oracle 19c rac
####fs setting
fs.aio-max-nr = 1048576 //推荐值,1024*1024,同时拥有的异步IO请求数
fs.file-max = 6815744 //512*processes 最大打开文件数
####kernel setting
kernel.shmall = 1048576 //kernel.shmmax/kernel.shmmni
kernel.shmmax = 4294967295 //服务器内存一半*1024*1024*1024-1(最大70%)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128 //默认配置支持8个数据库实例,若超值,按比例翻倍
kernel.panic_on_oops = 1 //oracle 12.1以后才有,控制内核的行为时遇到错误,0尝试继续,1延迟几秒后警告
kernel.panic = 10 //内核崩溃后10秒重启,缺省为0,表示禁止重新引导
kernel.randomize_va_space = 0 //禁用物理内存地址是否随机分配
#### Net Setting
net.ipv4.ip_local_port_range = 9000 65500 //UDP和TCP连接,本地端口的取值范围
net.core.rmem_default = 262144 //TCP接收缓存的默认值
net.core.rmem_max = 4194304 //TCP接收缓存的最大值
net.core.wmem_default = 262144 //TCP发送缓存的默认值
net.core.wmem_max = 4194304 //TCP发送缓存的最大值
##TCP Cache Setting
net.ipv4.tcp_moderate_rcvbuf = 1 //recvbuffer TCP性能自动调节机制,1为开启,值在下面范围内动态调节
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
####Memory Setting
vm.vfs_cache_pressure = 200 //缺省100,值小表示保留directory和inode cache,值大表示回收
vm.swappiness = 10 //使用swap的权重,值越大,越常用swap,100-值,为物理内存使用超过时开始用swap,oracle设置10>,mysql为1,0为禁用swap
vm.min_free_kbytes = 102400 //配置最小保留内存,建议512MB,物理内存超过128G,按比例翻倍
#vm.nr_hugepages = 0 //略大于SGA,= SGA*1024M/2M
vm.hugetlb_shm_group =502 //解决dbca安装报错ORA-27125: unable to create shared memory segment ,oracle的一个bug
1.kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的 SGA ,可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte 。
内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887
内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367
内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735
内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471
2. kernel.shmall :
该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。
一个共享内存段的最大大小是 16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页)
3 .设置大页
vm.nr_hugepages只能使用ASMM。MOS 401749.1提供的hugepages_settings.sh脚本,直接可以得到建议值。
这个脚本modb也有
4 假设用户数据库为1000G,OLTP类型
SUSAUX、SYSTEM、TEMP、UNDOTBS、USERS表空间初始设置应为多大
Redo日志组建几个,每个大小设置多少
sysaux,system默认自动增长即可,temp和undotbs按照实际情况确认,一般temp至少8g或者32g,根据实际应用情况而定,
UNDOTBS可以根据undo使用情况而定。初期可以设置8G自动增长,设置最大值;后期根据flashback和retention等综合而定。
redo如果单机,建议修改大小为512m,默认大小很小,后期根据db的切换频率做调整,组数也可以适当增加