Oracle数据库之HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302
小标 2018-11-19 来源 : 阅读 1216 评论 0

摘要:本文主要向大家介绍了Oracle数据库之HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

本文主要向大家介绍了Oracle数据库之HP-UX平台Oracle启动实例遭遇:ORA-27154,ORA-27300,ORA-27301,ORA-27302,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。


环境:HP-UX 11.31 + Oracle 11.2.0.4
现象:在hpux安装Oracle,按业务需求配置参数后,无法启动实例。
 报错如下:

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

1.初步定位

快速判定这是实例就无法启动,也就是nomount这一阶段就无法成功,首先想到的是参数配置不合理。
 经过尝试,最终发现是processes参数设置过高,导致无法启动实例,当前期望设置8000,测试调整为7000就可以成功启动。

去MOS搜索hpux平台这个错误没有找到结果,但是却有其他平台的匹配结果:

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

Instance Startup Fails With Error ORA-27154,ORA-27300,ORA-27301,ORA-27302 (文档 ID 314179.1)

而这些文档的原因基本定位在sem相关的内核参数调整上。

2.验证猜想

找到HPUX关于sem内核参数的当前设置:

kctune -h -B semmni=4096kctune -h -B semmns=8192kctune -h -B semmnu=4092kctune -h -B semvmx=32767

这些都是Oracle官方文档建议的设置值,但现在看来,目前这些内核参数的设置不能满足此时用户业务所要求的processes值。

网上搜索到这些内核参数值的说明:

 种种迹象都表明和sem参数有关,那么尝试将semmni和semmns参数都修改为2倍值,即8192和16384。

kctune -h -B semmni=8192kctune -h -B semmns=16384--重启操作系统生效:shutdown -ry 0

之后再次将processes设置为8000,已经可以正常启动实例,问题解决。

3.深入分析

当semmni和semmns参数值是官方文档默认值时,按业务要求设置process为8000,无法启动实例。将semmni和semmns参数值都设置为二倍值之后,再测试将process设置为16000时,同样无法启动实例。
 可以看到的确这个sem信号量和processes有着某种关联,而且此时启动到nomount状态,实际并没有用户连接,说明信号量是预先分配的,下面来具体验证。
 以下所有测试都是启动数据库到nomount:

3.1 设置processes值为默认值150
 此时ipcs观察到的结果:

Superdome10@oracle[/oradata/orcl]ipcs -asIPC status from /dev/kmem as of Fri Jun  1 16:57:15 2018T                   ID     KEY        MODE        OWNER     GROUP   CREATOR    CGROUP NSEMS   OTIME    CTIME Semaphores:s                    0 0x4f1c06da --ra-------      root      root      root      root     1 11:44:05 11:44:05s                    1 0x411c01b6 --ra-ra-ra-      root      root      root      root     1 11:44:07 11:44:05s                    2 0x4e0c0002 --ra-ra-ra-      root      root      root      root     2 11:44:07 11:44:05s                    3 0x41203bb5 --ra-ra-ra-      root      root      root      root     2 no-entry 11:44:05s                    4 0x01090522 --ra-r--r--      root      root      root      root     1 no-entry 11:44:11s                 8197 0x00a5c581 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8198 0x00a5c582 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8199 0x00a5c583 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8200 0x00a5c584 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8201 0x00a5c585 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8202 0x00a5c586 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8203 0x00a5c587 --ra-------     sfmdb     users     sfmdb     users    17 16:32:32 11:44:13s                   12 0x4914942f --ra-r--r--      root      root      root      root     1 11:44:32 11:44:32s                   13 0x410c030b --ra-ra-ra-      root      root      root      root     1 11:44:33 11:44:33s               196622 0x5c23a1bc --ra-r-----    oracle       dba    oracle       dba   154 no-entry 16:47:46

可以看到NSEMS的数值是154,此时可以满足150的processes。

3.2 设置processes值为8000
 此时ipcs观察到的结果:

Superdome10@oracle[/oradata/orcl]ipcs -asIPC status from /dev/kmem as of Fri Jun  1 17:00:50 2018T                   ID     KEY        MODE        OWNER     GROUP   CREATOR    CGROUP NSEMS   OTIME    CTIME Semaphores:s                    0 0x4f1c06da --ra-------      root      root      root      root     1 11:44:05 11:44:05s                    1 0x411c01b6 --ra-ra-ra-      root      root      root      root     1 11:44:07 11:44:05s                    2 0x4e0c0002 --ra-ra-ra-      root      root      root      root     2 11:44:07 11:44:05s                    3 0x41203bb5 --ra-ra-ra-      root      root      root      root     2 no-entry 11:44:05s                    4 0x01090522 --ra-r--r--      root      root      root      root     1 no-entry 11:44:11s                 8197 0x00a5c581 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8198 0x00a5c582 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8199 0x00a5c583 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8200 0x00a5c584 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8201 0x00a5c585 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8202 0x00a5c586 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8203 0x00a5c587 --ra-------     sfmdb     users     sfmdb     users    17 16:32:32 11:44:13s                   12 0x4914942f --ra-r--r--      root      root      root      root     1 11:44:32 11:44:32s                   13 0x410c030b --ra-ra-ra-      root      root      root      root     1 11:44:33 11:44:33s               229390 0x5c23a1bc --ra-r-----    oracle       dba    oracle       dba  2001 no-entry 17:00:44s                49167 0x5c23a1bd --ra-r-----    oracle       dba    oracle       dba  2001 no-entry 17:00:44s                49168 0x5c23a1be --ra-r-----    oracle       dba    oracle       dba  2001 no-entry 17:00:44s                49169 0x5c23a1bf --ra-r-----    oracle       dba    oracle       dba  2001 no-entry 17:00:44s                 8210 0x5c23a1c0 --ra-r-----    oracle       dba    oracle       dba  2001 no-entry 17:00:44

可以看到NSEMS值为2001,一共5组,此时可以满足8000的processes。

3.3 设置processes值为16000
 此时ipcs观察到的结果:

Superdome10@oracle[/oradata/orcl]ipcs -asIPC status from /dev/kmem as of Fri Jun  1 17:10:22 2018T                   ID     KEY        MODE        OWNER     GROUP   CREATOR    CGROUP NSEMS   OTIME    CTIME Semaphores:s                    0 0x4f1c06da --ra-------      root      root      root      root     1 11:44:05 11:44:05s                    1 0x411c01b6 --ra-ra-ra-      root      root      root      root     1 11:44:07 11:44:05s                    2 0x4e0c0002 --ra-ra-ra-      root      root      root      root     2 11:44:07 11:44:05s                    3 0x41203bb5 --ra-ra-ra-      root      root      root      root     2 no-entry 11:44:05s                    4 0x01090522 --ra-r--r--      root      root      root      root     1 no-entry 11:44:11s                 8197 0x00a5c581 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8198 0x00a5c582 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8199 0x00a5c583 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8200 0x00a5c584 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8201 0x00a5c585 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8202 0x00a5c586 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8203 0x00a5c587 --ra-------     sfmdb     users     sfmdb     users    17 16:32:32 11:44:13s                   12 0x4914942f --ra-r--r--      root      root      root      root     1 11:44:32 11:44:32s                   13 0x410c030b --ra-ra-ra-      root      root      root      root     1 11:44:33 11:44:33

可以看到,因为nomount报错:ORA-27154,ORA-27300,ORA-27301,ORA-27302,实例启动不成功,所以没有oracle用户的任何分配。

3.4 设置processes值为14000
 此时ipcs观察到的结果:

Superdome10@oracle[/oradata/orcl]ipcs -asIPC status from /dev/kmem as of Fri Jun  1 17:11:53 2018T                   ID     KEY        MODE        OWNER     GROUP   CREATOR    CGROUP NSEMS   OTIME    CTIME Semaphores:s                    0 0x4f1c06da --ra-------      root      root      root      root     1 11:44:05 11:44:05s                    1 0x411c01b6 --ra-ra-ra-      root      root      root      root     1 11:44:07 11:44:05s                    2 0x4e0c0002 --ra-ra-ra-      root      root      root      root     2 11:44:07 11:44:05s                    3 0x41203bb5 --ra-ra-ra-      root      root      root      root     2 no-entry 11:44:05s                    4 0x01090522 --ra-r--r--      root      root      root      root     1 no-entry 11:44:11s                 8197 0x00a5c581 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8198 0x00a5c582 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8199 0x00a5c583 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8200 0x00a5c584 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8201 0x00a5c585 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8202 0x00a5c586 --ra-------     sfmdb     users     sfmdb     users    17 11:44:13 11:44:13s                 8203 0x00a5c587 --ra-------     sfmdb     users     sfmdb     users    17 16:32:32 11:44:13s                   12 0x4914942f --ra-r--r--      root      root      root      root     1 11:44:32 11:44:32s                   13 0x410c030b --ra-ra-ra-      root      root      root      root     1 11:44:33 11:44:33s               294926 0x5c23a1bc --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                65551 0x5c23a1bd --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                65552 0x5c23a1be --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                65553 0x5c23a1bf --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                24594 0x5c23a1c0 --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                 8211 0x5c23a1c1 --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                 8212 0x5c23a1c2 --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                 8213 0x5c23a1c3 --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55s                   22 0x5c23a1c4 --ra-r-----    oracle       dba    oracle       dba  1750 no-entry 17:10:55

可以看到,NSEMS值为1750,一共9组,此时可以满足14000的processes。

总结:通过这个案例,可以知道ipcs看的那个信号量和process之间有直接的关联。咨询我司专家,这之间还存在某种算法,但从HPUX的实验来看,并不是都符合推测的算法规则,就不再深究。


本文由职坐标整理并发布,希望对同学们学习Oracle有所帮助,更多内容请关注职坐标数据库Oracle数据库频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程