热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在hpux上建oracle9i(9.2)数据库失败的问题解决

今天在hp-ux上安装oracle9i(9.2),软件安装正常,但在执行dbca建数据库时报错:ORA-27302:failureoccuredat:s
今天在hp-ux上安装oracle9i(9.2),软件安装正常,但在执行dbca建数据库时报错: ORA-27302:failure occured at:skgpwreset1 ..........

在hp-ux上建oracle9i(9.2)数据库失败的问题解决

今天在hp-ux上安装oracle9i(9.2),软件安装正常,但在执行dbca建数据库时报错:
ORA-27302:failure occured at:skgpwreset1
ORA-27303:additional information:invalid shared ctx
ORA-27146:post/wait initialization failed
ORA-27300:os system dependent operation:segment failed with stautus:28
ORA-27301:OS failure message:No space left on device
ORA-27302:failure occurred at:sskgpsemsper
在网上查找原因,原来是因为hp-ux的核心参数需要调整:
将参数“semmns”由128调整为1024,重新运行dbca,完成。


参考文档:
===1=====
http://bbs.chinaunix.net/archiver/?tid-211977.html
------------------
最近再安装oracle 9i,可以顺利装完,但是再建库的时候倒46%左右报
ora-27302:failure occured at:skgpwreset1
ora-27303:additional information:invalid shared ctx
ora-27146:post/wait initialization failed
ora-27300:os system dependent operation:segment failed with stautus:28
这些错,我再网上找了些资料,只说和核心参数有关,但是具体那些都没说,我核心参数已按照oracle for hpux安装文档调过了,麻烦那位高手回答下
谢谢了
===2=====================
http://www.blogcn.com/u/51/49/likedb/blog/51541804.html
-------------------------------
各平台影响oracle Process数的参数 [转]
同事昨天在现场给客户安装数据库,平台是solaris9,安装oracle9i。
这个机器上已经有个数据库了,再建新库后,发现把process从150加到600,启动数据库实例就报错
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 occured at: sskgpcreates
同事检查说,空间没有问题,权限也够。
遇到类似问题,我一般倾向于两个地方:一是OS的核心参数,一是OS针对user的进程数。
没错,本次的问题是出在参数,是哪个参数呢?SEMMNS 和SEMMSL,这两个参数oracle安装文档的推荐值分别为:1024、256,对于多个instance在同一个node的环境来说,这两参数应该翻倍。这两个参数修改后要reboot system。
造成数据库实例无法正常启动的真正原因是信号量不够,上述参数正是管理此事。
引用管理内核参数中的部分内容如下
名字 描述n 合理取值
SHMMAX 最大共享内存段尺寸(字节) 512 kB + 8192 * 缓冲区数 + 额外 ... 无穷大
SHMMIN 最小共享内存段尺寸(字节) 1 (最多大约是 256 kB)
SHMSEG 每进程最大共享内存段数量 只需要 1 个段,不过缺省比这高得多.
SHMMNI 系统范围最大共享内存段数量 类似 SHMSEG + 用于其他应用的空间
SEMMNI 信号灯标识符的最小数量(也就是说,套) >= ceil(max_connections % 16)
SEMMNS 系统范围的最大信号灯数量 ceil(max_connections / 16) * 17 + 用于其他应用的空间
SEMMSL 每套信号灯最小信号灯数量 >= 17
SEMMAP 信号灯映射里的记录数量 参阅文本
SEMVMX 信号灯的最大值 >= 255 (缺省通常是32767,除非被要求,否则不要修改
最重要的共享内存参数是 SHMMAX, 以字节记的共享内存段可拥有的最大尺寸. 如果你收到来自shmget的一行Invalid argument  这样的错误信息,那么很有可能是你超过限制了. 要求的共享内存段随着请求的缓冲区数量(-B选项)和 允许的连接数量(-N选项)的变化而变化,尽管前者是 主要因素. (因此,作为一种临时的解决方法,你可以降低这些设置来绕过失败.) 如果粗略地估计,你可以估计所需要的段尺寸是缓冲区数量乘以块  尺寸(缺省 8192KB)加上足够的盈余(至少半兆字节). 任何错误信息都会包含分配失败的尺寸.
不太可能出问题的是共享内存段的最小尺寸(SHMMIN), 对 Postgres来说最多是 256 kB左右(通常只是 1),而 系统范围(SHMMNI)或每进程(SHMSEG) 最大共享内存段数量不应该会产生问题,除非你的系统把它们设成零. 有些系统还对系统里的共享内存总量有限制;参阅下面平台相关的指导.
Postgres 每个允许的联接使用一个信号灯 (-N选项), 以 16 个为一套.每套信号灯还包含第十七个信号灯, 它里面存储一个“magic number(标志数字)”, 以避免和其他应用使用的信号灯集冲突. 系统里的最大信号灯数目是由SEMMNS设置的, 因此这个值应该至少和联接设置一样大,并且每十六个联接还要另外加一个. (参阅Table 3-2 里面的公式.) 参数SEMMNI决定 系统里一次可以存在的信号灯集的数目.因此这个参数至少应该为 ceil(max_connections % 16).降低允许的联接数目是一个临时的 绕开失败的方法,这个启动失败通常被来自函数semget() 的错误响应 “No space left on device”搞得很让人迷惑.
有时候你还会发现有必要增大SEMMAP,使之至少按照 SEMMNS配置.这个参数定义信号灯资源映射的尺寸, 可用的每个连续的信号灯块在这个映射中存放一条记录. 每当一套信号灯被释放,那么它要么会加入到该映射中一条相连的 已释放的块的入口中,要么注册成一条新的入口.如果映射填满了碎片, 那么被释放的信号灯就丢失了(除非重起).因此时间长信号灯空间的碎片 了会导致可用的信号灯比应该有的信号灯少.
SEMMSL 参数,决定一套信号灯里可以有多少信号灯,对于 Postgres而言应该至少是 17.
许多设置与 “semaphore undo(信号灯恢复)”有关,比如 SEMMNU 和 SEMUME,这些与 Postgres无关.

===================================
参考网址:
9i Release 2 (9.2.0.1.0) :
   http://download-west.oracle.com/docs/html/A96167_01/toc.htm
   http://download.oracle.com/docs/html/A97350_04/toc.htm


推荐阅读
author-avatar
用户f2r3o98akh
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有