Linux下安装oracle数据库内核参数说明
发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,在安装数据库时需要配置以下内核参数:fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax =
千家信息网最后更新 2025年11月19日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安全错误
数据库的锁怎样保障安全
服务器怎么安全维护
人工神经网络技术用啥软件
江西应用软件开发项目
培训机构软件开发员
新一代软件开发值得推荐
邯郸企业软件开发大概多少钱
钱江新城软件开发
移动软件开发困难
微博十大网络技术大v
工商企业数据库短信
常州软件开发外包公司有哪些
网络安全i ii区是什么
普宁软件开发小程序
如何修改ip地址和服务器
梦幻西游租服务器多少钱
软件开发的品牌广告
小班网络安全温馨提示
30可以几个几个的数据库
软件开发原型图由谁做
网络安全比深信服好的是哪家
谷歌学术代理服务器
国内数据库技术路线
缓存 数据库
软件开发培训学校学费
山西机电的计算机网络技术
瀑布软件相适应的软件开发
wpa网络安全秘钥作用
mondy数据库
家用笔记本电脑软件开发
吉林云主机品牌云服务器