Linux下安装oracle数据库内核参数说明
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,在安装数据库时需要配置以下内核参数:fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax =
千家信息网最后更新 2025年02月01日Linux下安装oracle数据库内核参数说明
在安装数据库时需要配置以下内核参数:
fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 4294967295kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576
引用自:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1187
信号量和共享内存是两组截然不同的操作系统资源。信号量是Oracle用于进程间通信的系统资源,它们占用相对较小的内存空间,而共享内存用于包含SGA并且可以占用大部分物理内存。
aio-max-nr:所有活动异步 I/O 上下文中可允许的最多事件数。默认值为 65536;file-max:当前内核可以打开的最大的文件句柄数;shmmax:以字节为单位规定内核可允许的最大共享内存段。64位默认值为 68719476736;32位默认值为 4294967295。注:但内核支持的值比这个值要多得多,oracle中最小配置为536870912,64位最大值为物理内存-1字节,32位最大值为小于4GB-1个字节的值或4294967295,推荐设置为物理内存大小的1/2;shmall:以字节为单位规定一次在该系统中可以使用的共享内存总量。64位默认值为4294967296;32位默认值为 268435456。oracle推荐的最小值为:2097152,在内存较小时可以使用小于2097152的值,内存较大时(超过8G)需要通过以下公式进行计划:公式1:memtotal/pagesize。公式2:(SHMMAX/getpagesize()*(SHMMNI/16))。shmmni:系统范围内最大共享内存段数量。在 64 位和 32 位架构机器中的默认值都是 4096sem:即semaphores缩写。共有四个值与之对应,oracle建议的值为kernel.sem = 250 32000 100 128 ,分别对应:SEMMSL | maximum number of semaphores in a semphore set | 250 |定义每个Oracle数据库的最大信号量数。|取值范围1 - 65536SEMMNS | maximum number of semphores in the system | 32000 |定义系统上的最大信号量。 |取值范围1 - 2147483647 SEMOPM | maximum number of operations per semop(P) call | 100 |定义每个semop调用的最大操作数。 |取值范围100SEMMNI | maximum number of semaphore sets in system | 128 |定义整个系统中信号量集的最大数量 |取值范围1 - 32768规则:SEMMNI*SEMMSL>=SEMMNS,SEMMNS=系统中每个实例process+10之和+2*max(process)
操作系统与sysctl中kernel.sem参数的对应关系
$ ipcs -ls------ Semaphore Limits --------max number of arrays = 128 // SEMMNImax semaphores per array = 250 // SEMMSLmax semaphores system wide = 32000 // SEMMNSmax ops per semop call = 100 // SEMOPsemaphore max value = 32767
与信号量相关的问题:
问题1:
SQL> startup nomountORA-27154: post/wait create failedORA-27300: OS system dependent operation:semget failed with status: 28ORA-27301: OS failure message: No space left on deviceORA-27302: failure occurred at: sskgpcreates[root@prodb linux]# ipcs -s------ Semaphore Arrays --------key semid owner perms nsems 0x00000000 0 root 600 1 0x00000000 65537 root 600 1 0x9a31ff94 1507331 oracle 640 154 本例中154>max number of arrays = 128需要调整SEMMNI值为200及以上。
问题2:
Getting ORA-600 [OSDEP_INTERNAL] errors while starting up the database:ORA-00600: internal error code, arguments: [OSDEP_INTERNAL],[], [], [], [], [], [], []ORA-27302: failure occurred at: skgpwreset1ORA-27303: additional information: invalid shared ctxORA-27146: post/wait initialization failedORA-27300: OS system dependent operation:semget failed with status: 28ORA-27301: OS failure message: No space left on deviceORA-27302: failure occurred at: sskgpsemspersemmns值太小,修改为:kernel.sem = 256 32768 100 228
信号量的删除
信号量或共享内存错误主要出现在实例启动时(特别是'startup nomount'阶段)。这是Oracle尝试获取实例的信号量和共享内存的唯一时间。在正常的数据库操作期间,很少出现与信号量或共享内存相关的错误。发生这些错误的最常见情况是在创建新数据库期间。但是,有时当Oracle实例崩溃时,操作系统可能无法释放共享内存段。这限制了实例可用于再次启动的共享内存总量。在这种情况下,您需要手动删除这些段。
[oracle@prodb ~]$ $ORACLE_HOME/bin/sysresvIPC Resources for ORACLE_SID "PROD3" :Shared Memory:ID KEY1966083 0x000000001998852 0x000000002031621 0x4db7973cSemaphores:ID KEY1507331 0x9a31ff94Oracle Instance alive for sid "PROD3"Linux: % ipcrm shm 2031621 1998852 1966083Other Unix: % ipcrm -m 12189717
内存
信号
信号量
最大
系统
实例
范围
内核
数据
数据库
字节
操作系统
公式
物理
错误
问题
参数
最小
单位
总量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
外企网络安全备案
1000兆宽带做服务器
药厂网络安全的重要性
阐述你对网络安全的认识
我的世界希望之光服务器
虚拟钢琴软件开发流程
信息发布系统软件开发
更新数据库表记录语句
光澜网络技术工作室
江西品质软件开发服务检测中心
昆明办公软件开发
手机软件开发备忘录
定制服务器机箱是什么
vivo影之刃3是哪个服务器
gpu服务器图像算法并发量
饥荒联机版打巨鹿服务器崩溃
香洲软件开发
网络技术相关公众号
蒂森克虏伯服务器
山东单招学校排名网络技术
网络安全等级测评师年薪
怎样自学软件开发
vcn软件开发工具
无锡网络安全管理
win11无法解析服务器的DNS地址
网络安全人员方面
2008数据库自动备份
app可以用ecs服务器吗
服务器限流怎么测试
吉林省上网dns服务器地址