SQL> startup nomount
ORA-27302: failure occurred at: skgpwreset1
ORA-27303: additional information: invalid shared ctx
ORA-27146: post/wait initialization 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
XXXXXX的Oracle参数调整
1 概述
XXXXXX用户SUN平台HACMP环境下ORACLE软件安装部署完毕,需要优化关键数据库系统参数并创建用户、表空间部署应用。
2 问题描述
XXXXXX用户SUN平台HACMP环境下ORACLE软件安装部署完毕,需要创建用户、表空间等并调整数据库系统参数,和现场的同事对业务需求、用户数量等进行分析,最后整理出以下脚本并执行:
--创建表空间
CREATE TABLESPACE BPM_DATA LOGGING DATAFILE '/oracle/oracle/oradata/cmdidb/BPM_DATA.dbf' SIZE 2048M
AUTOEXTEND ON NEXT 20480K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE BPM_INDEX LOGGING DATAFILE '/oracle/oracle/oradata/cmdidb/BPM_INDEX.dbf' SIZE 2048M
AUTOEXTEND ON NEXT 20480K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
--创建临时表空间
CREATE TEMPORARY TABLESPACE BPM_TEMP TEMPFILE '/oracle/oracle/oradata/cmdidb/BPM_TEMP.dbf' SIZE 1024M
AUTOEXTEND ON NEXT 20480K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;
--创建用户
CREATE USER BPM50 PROFILE DEFAULT IDENTIFIED BY bpmtest DEFAULT TABLESPACE BPM_DATA
TEMPORARY TABLESPACE BPM_TEMP ACCOUNT UNLOCK;
--授权用户
GRANT CONNECT,EXP_FULL_DATABASE,IMP_FULL_DATABASE,RESOURCE TO BPM50;
--修改数据库系统参数
alter system set pga_aggregate_target=640m scope=spfile;
alter system set db_cache_size=1440m scope=spfile;
alter system set shared_pool_size=800m scope=spfile;
alter system set java_pool_size=320m scope=spfile;
alter system set log_buffer=3145728 scope=spfile;
Alter system set open_cursors=1000 scope=spfile;
Alter system set processes=800 scope=spfile;
本来工作到了这里就该接近尾声了,但是遇到一个小小的插曲,执行完以上脚本后,关闭数据库重新启动,数据库无法启动,报错如下:
SQL> startup nomount
ORA-27302: failure occurred at: skgpwreset1
ORA-27303: additional information: invalid shared ctx
ORA-27146: post/wait initialization 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
3 分析
这些错误大部分和操作系统有关,ORACLE启动的时候检查操作系统的各项配置是否满足需求,如磁盘空间、内核参数等能否满足自己的需要,回头看看我们做过的操作:创建表空间、临时表空间、修改系统参数,然后分析上面个错误和那些操作有关。
ORA-27301: OS failure message: No space left on device
创建表空间、临时表空间可能引起该错误,df检查磁盘空间472G可用?懦??/span>错误。
ORA-27300: OS system dependent operation:semget failed with status
无法获得操作系统的信号量。信号量相当于OS的内存锁,类似于oracle中的latch,每个进程要获取操作系统内存时(不是PGA或SGA),需要先获取到信号量才能申请内存。为了能保证每个进程不被阻塞,所以最好每个进程能分配到2个信号量。由于我们修改了oracle的processes参数,oracle安装建议这个参数一般设置为processes*2+15是比较保险的。检查该参数发现为300多,调整该参数为set semsys:seminfo_semmns=1024,数据库正常启动。感谢fuyuncat帮助详细分析信号量的作用。
4 总结
建议各位同事以后在各个平台安装ORACLE软件的时候都要先按照ORACLE安装文档先把操作系统的各个内核参数(最大共享内存段、信号量等)进行相应的调整。然后再开始安装ORACLE。
5 附录
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/756652/viewspace-242444/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/756652/viewspace-242444/