dbca ORA-27154:

简介: dbca ORA-27154:

ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates

Database Startup Fails with ORA-27300: OS system dependent operation:semget failed with status: 28 (Doc ID 949468.1)

alter system set sessions=30000 scope=spfile;
alter system set processes=10000 scope=spfile;
alter system set sga_max_size=5G scope=spfile;
alter system set sga_target=5G scope=spfile;

#

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.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

kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI

SEMMSL:指一个信号集中,能够拥有的最大信号量。
SEMMNS:是指整个系统级别,最大信号量。这个是前面两个参数的乘积:SEMMNI*SEMMSL=SEMMNS。
SEMOPM:在一个semop call中,每个信号量所允许的最大操作数。最大值为1000。
SEMMNI:这个是指系统中最大的semaphore set,也就是信号量集。

SEMMSL - max semaphores per array
SEMMNS - max semaphores system wide
SEMOPM - max ops per semop call
SEMMNI - max number of arrays

semmsl = 250
semmns = 32000 (250*128)
semopm = 100
semmni = 128

#

这个主要是在数据库启动时根据process参数设置的值去分配信号资源,如果内核参数设置的不合理,则会导致报错。

在Linux里,信号量主要是用来控制特定进程的利用率。它是一个可共享的资源,分别由P (wait)和V (signal)函数操作,这两个函数分别递减和递增信号量。当进程需要资源时,发出”wait”,信号量递减。当信号量的值为0时,资源不可用,调用进程会spin或阻塞(视情况而定),直到资源可用为止。当进程释放由信号量控制的资源时,它会增加信号量并通知等待的进程。由下面几个参数控制

信号量 描述 最小值
SEMMSL 每个组的最大信号量 128
SEMMNS 系统级别最大信号数
SEMOPM 每个semop调用的最大操作
SEMMNI 最大组数

计算当前最少需要的信号量总数:
sum(本机所有实例的process参数值)+本机系统需求+本机其他程序需求
设置semmns大于这个sum值
设置semmsl为256
设置semmni为semmns/semmsl

查看当前系统参数
$ ipcs -ls

------ Semaphore Limits --------
max number of arrays = 128 // SEMMNI
max semaphores per array = 250 // SEMMSL
max semaphores system wide = 32000 // SEMMNS
max ops per semop call = 100 // SEMOP
semaphore max value = 32767
从这个配置来看理论上系统级别的最大信号数为32000,最大组数为128,每个组最大信号量250。

但是ipcs命令显示每个信号量标识符最多可以容纳156个Oracle信号量
$ ipcs
...
------ Semaphore Arrays --------
key semid owner perms nsems
0x2ff4a110 5701651 oracle 640 156
0x2ff4a111 5734420 oracle 640 156
0x2ff4a112 5767189 oracle 640 156
0x2ff4a113 5799958 oracle 640 156
0x2ff4a114 5832727 oracle 640 156
0x2ff4a115 5865496 oracle 640 156
...
那么实际上最大可用的信号总量为156 x 128=19968,所以要增加最大可用组数。

[root@whzdb1 ~]# /sbin/sysctl -a | grep sem
kernel.sem = 250 32000 100 128
-- change to:
kernel.sem = 250 32000 100 200

相关文章
|
Oracle 关系型数据库 OLAP
ORACLE impdp或expdp与ORA-31693&ORA-31640&ORA-19505&ORA-27037
    今天,安装完了衡阳ORACLE 11.2.0.4 rac for RHEL6.8集群后,做数据迁移的时候,碰到了expdp报错: ORA-31693&ORA-31640&ORA-19505&ORA-27037。
2010 0
|
存储 Oracle 关系型数据库
常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
|
Oracle 关系型数据库 数据安全/隐私保护
|
关系型数据库 Oracle 数据安全/隐私保护
|
SQL 存储 Oracle
ORACLE startup报错之ORA-01261&&ORA-01263&&ORA-00202&&ORA-00205
    系统环境:windows server 2008R2    数据库环境:oracle 11.2.0.1    问题描述:一测试数据库oradb启动时报错ORA-01261&&ORA-00202,报错日志如下: C:\Users\localadmin>sqlplus / as sysdba SQL*Plus: Release 11.
1450 0
|
SQL 监控 Oracle
ORACLE startup报错之ORA-01154&&ORA-01155&&ORA-01033&&ORA-03113
    今天,一实施同事求助,说一地市oracle数据库无法通过远程连接,连接报错如图: 操作系统:windows server2008 R2  数据库版本:oracle 11.2.0.1 初看报错貌似数据库正处在打开或关闭的过程中。
1651 0
|
Oracle 关系型数据库 数据库
oracle启动报错:ORA-01157,ORA-01110
关键报错: ORA-01110: data file 4:'/oracle/app/oradata/workdbser_space.dbf'   今天让一个新手来装数据库,然后说建完表空间启动不了,然后一看错误,报了上面一个错,这个我第一反应就是他娘复制黏贴不注意造成的,这个应该是个user表空间的文件。
1257 0
|
SQL Oracle 关系型数据库
oracle ORA-01200&ORA-01110&ORA-01122
    由于自己本地使用的virtual-box虚拟机,在虚拟机上安装Oracle,物理机偶尔会因为内存问题无响应,就强制断电重启,没想到虚拟机非常规关机导致oracle ORA-01200&ORA-01110&ORA-01122     启动数据库时报错: [o...
1059 0
|
Oracle 关系型数据库
关于ORACLE IMPDP 报错ORA-29913 ORA-31693 ORA-01861的原因
导入语句如下: impdp system/'Nnrjt$739rt'  job_name=sec_dmp tables=seccore.syn_event remap_schema=seccore:sechis dumpfile=BAK:expdp_20160523.
1945 0