Linux下安装甲骨文数据库内核参数说明

  

在安装数据库时需要配置以下内核参数:

  
 <代码> fs。aio-max-nr=1048576
  fs。file-max=6815744
  内核。shmall=2097152
  内核。shmmax=4294967295
  内核。shmmni=4096
  内核。sem=250 32000 100 128
  net.ipv4。ip_local_port_range=9000 65500
  net.core。rmem_default=262144
  net.core。rmem_max=4194304
  net.core。wmem_default=262144
  net.core。wmem_max=1048576  
  
  

引用自:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm LADBI1187

     

信号量和共享内存是两组截然不同的操作系统资源。信号量是甲骨文用于进程间通信的系统资源,它们占用相对较小的内存空间,而共享内存用于包含SGA并且可以占用大部分物理内存。

  
 <代码> aio-max-nr:所有活动异步I/O上下文中可允许的最多事件数。默认值为65536;
  file-max:当前内核可以打开的最大的文件句柄数;
  shmmax:以字节为单位规定内核可允许的最大共享内存段.64点位默认值为68719476736;32位默认值为4294967295。注:但内核支持的值比这个值要多得多,甲骨文中最小配置为536870912,64位最大值为物理内存1字节,32位最大值为小gb-1于4个字节的值或4294967295,推荐设置为物理内存大小的1/2;
  shmall:以字节为单位规定一次在该系统中可以使用的共享内存总量.64点位默认值为4294967296;32位默认值为268435456.甲骨文推荐的最小值为:2097152,在内存较小时可以使用小于2097152的值,内存较大时(超过8 g)需要通过以下公式进行计划:公式1:memtotal/页大小。公式2:(SHMMAX/getpagesize () * (SHMMNI/16))。
  shmmni:系统范围内最大共享内存段数量。在64位和32位架构机器中的默认值都是4096
  扫描电镜:即信号量缩写。共有四个值与之对应,甲骨文建议的值为内核。sem=250 32000 100 128,分别对应:
  SEMMSL |最大数量的信号量semphore设置| 250 |定义每个Oracle数据库的最大信号量数。|取值范围1 - 65536
  SEMMNS |最大数量的semphores系统| 32000 |定义系统上的最大信号量。|取值范围1 - 2147483647
  SEMOPM |最大的操作数semop (P)调用| 100 |定义每个semop调用的最大操作数。|取值范围100
  SEMMNI |最大数量的信号量集系统| 128 |定义整个系统中信号量集的最大数量|取值范围1 - 32768
  规则:
  SEMMNI * SEMMSL>=SEMMNS SEMMNS=系统中每个实例过程+ 10之和+ 2 *马克斯(流程) 
  

操作系统与sysctl中kernel.sem参数的对应关系

  
 <代码> ipc - ls美元
  
  - - - - - - - - - - - - - - - -信号量限制
  max=128//SEMMNI阵列的数量
  max=250//SEMMSL信号/数组
  马克斯宽=32000//SEMMNS信号系统
  马克斯运维/semop=100//semop打电话
  信号量最大价值=https://www.yisu.com/zixun/32767  
  

与信号量相关的问题:
问题1:

  
 <代码>完成;启动nomount
  ora - 27154: post/等待创建失败了
  ora - 27300: OS系统相关操作:semget失败状态:28
  ora - 27301:操作系统故障信息:设备上没有剩余空间
  ora - 27302:故障发生在:sskgpcreates
  
  (root@prodb linux) # ipc - s
  
  - - - - - -信号量数组- - - - - - - - - -
  semid所有者烫发nsems的关键
  0 x00000000 0根600 1
  0 x00000000 65537根600 1
  0 x9a31ff94 640甲骨文1507331 154
  本例中154年在数组的最大数量=128需要调整SEMMNI值为200及以上。 
  

问题2:

  
 <代码>得到ora - 600 (OSDEP_INTERNAL)错误而启动数据库:
  
  ora - 00600:内部错误代码,参数:[OSDEP_INTERNAL],
  [],[]、[][],[],[],[]
  ora - 27302:故障发生在:skgpwreset1
  ora - 27303:附加信息:无效ctx共享
  ora - 27146: post/等待初始化失败
  ora - 27300: OS系统相关操作:semget失败状态:28
  ora - 27301:操作系统故障信息:设备上没有剩余空间
  ora - 27302:故障发生在:sskgpsemsper
  
  semmns值太小,修改为:内核。sem=256 32768 100 228  
  

信号量的删除

  

信号量或共享内存错误主要出现在实例启动时(特别是启动nomount的阶段)。这是甲骨文尝试获取实例的信号量和共享内存的唯一时间。在正常的数据库操作期间,很少出现与信号量或共享内存相关的错误。发生这些错误的最常见情况是在创建新数据库期间。但是,有时当甲骨文实例崩溃时,操作系统可能无法释放共享内存段。这限制了实例可用于再次启动的共享内存总量。在这种情况下,您需要手动删除这些段。

  
 

Linux下安装甲骨文数据库内核参数说明