ORA-17503: ksfdopn:

在LINUX 5.6 64位系统上,运行11.2.0.2版本的RAC数据库时遇到了ORA-17503错误,无法打开ASM文件。问题源于oracle二进制文件权限设置不正确。解决方案包括检查并修复ASM实例管理员组设置,或通过修改oracle二进制文件权限来解决问题。

系统:LINUX 5.6 64
数据库版本:11.2.0.2
环境:RAC

报错如下:
[oracle@ract2 ~]$ srvctl start instance -d racdb -i racdb1
PRCR-1013 : Failed to start resource ora.racdb.db
PRCR-1064 : Failed to start resource ora.racdb.db on node ract1
CRS-5017: The resource action "ora.racdb.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATAFILE/racdb/spfileracdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATAFILE/racdb/spfileracdb.ora
ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux-x86_64 Error: 13: Permission denied
Additional information: 4685831
Additional information: 10


CRS-2674: Start of 'ora.racdb.db' on 'ract1' failed

分析:
看报错,应该是无法读取ASM中的文件,查看ASM实例已开启,在ASMCMD中也可以创建文件,说明存储是可以使用的。

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
+ASM2            STARTED

[grid@ract1 ~]$ asmcmd
ASMCMD> ls
BACKUP/
DATA/
DATAFILE/
ASMCMD> cd datafile
ASMCMD> ls
RACDB/
ASMCMD> mkdir aa
ASMCMD> ls
RACDB/
aa/
ASMCMD>


官方解释:

Applies to:

Oracle Server - Enterprise Edition - Version 11.2.0.1 and later
Information in this document applies to any platform.

Symptoms

RAC Instance can be started using sqlplus but fails when using srvctl:

Case I:

$ srvctl start database -d cad
PRCR-1079 : Failed to start resource ora.cad.db
CRS-5017: The resource action "ora.cad.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+RAC/cad/spfilecad.ora'
ORA-17503: ksfdopn:2 Failed to open file +RAC/cad/spfilecad.ora
ORA-27140: attach to post/wait facility failed
ORA-27300: OS system dependent operation:invalid_egid failed with status: 1
ORA-27301: OS failure message: Operation not permitted
ORA-27302: failure occurred at: skgpwinit6
ORA-27303: additional information: startup egid = 1002 (oinstall), current egid = 1001 (dba)

CRS-2674: Start of 'ora.cad.db' on 'racnode2' failed
CRS-2632: There are no more servers to try to place resource 'ora.cad.db' on that would satisfy its placement policy


Case II

$ srvctl start database -d nar
PRCR-1079 : Failed to start resource ora.nar.db
CRS-5017: The resource action "ora.nar.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+NAR_DG/nar/spfilenar.ora'
ORA-17503: ksfdopn:2 Failed to open file +NAR_DG/nar/spfilenar.ora
ORA-27140: attach to post/wait facility failed
ORA-27300: OS system dependent operation:invalid_egid failed with status: 1
ORA-27301: OS failure message: Operation not permitted
ORA-27302: failure occurred at: skgpwinit6
ORA-27303: additional information: startup egid = 59800 (oinstall), current egid = 59802 (asmadmin)
. For details refer to "(:CLSN00107:)" in "/oracle/GRID/11203/log/dog1104/agent/crsd/oraagent_oracle/oraagent_oracle.log".

CRS-2674: Start of 'ora.nar.db' on 'racnode1' failed

Cause

For Case I, the issue is caused wrong group (dba) is chosen for "ASM Database Administrator","ASM Instance Administration Operator" and "ASM Instance Administrator"
group during installing grid infrastructure, while the ASM disks are owned by oinstall group.

This same issue is documented in
Bug 9786198 - SRVCTL START DATABASE ORA-0178 FAILURE IN PROCESSING SYSTEM PARAMETERS

For Case II, the issue is caused by setuid and setgid bit missing for oracle binary under GRID_HOME, eg:

$ ls -l $GRID_HOME/bin/oracle
-rwxr-x--x oracle oinstall 166648778 Dec 7 15:26 oracle

The missing setuid and setgid bit causing oracle user access failure to ASM diskgroup even though the ASMADMIN group is set correctly.

Solution

For case I,

Either reinstall Grid Infrastructure, select correct group for ASM Instance Administrator - ASMADMIN (oinstall in this case which is the ASM disk owning group)
or
stop srvctl modify oracle binary group from oinstall to dba by renaming $GRID_HOME/bin/setasmgid to $GRID_HOME/bin/setasmgid.orig. Restore the group ownership of oracle binary to oinstall and startup instance using srvctl.

For case II,

Add setuid and setgid bit for oracle binary under $GRID_HOME/bin:

$ chmod 6751 $GRID_HOME/bin/oracle


The oracle binary for both GRID_HOME/bin and RDBMS ORACLE_HOME/bin should have 6751 permission, eg: -rwsr-s--x


查看下了权限,确实有问题
[root@ract1 bin]# cd /grid/product/11.2.0/bin
[root@ract1 bin]# ls -la oracle
-rwxr-x--x 1 grid oinstall 200678430 Jan  7 13:46 oracle
[root@ract1 bin]# chmod 6751 oracle       - -注意使用root用户
[root@ract1 bin]# ls -la oracle
-rwsr-s--x 1 grid oinstall 200678430 Jan  7 13:46 oracle

修改权限后OK.。
[oracle@ract2 ~]$ srvctl start instance -d racdb -i racdb1
[oracle@ract2 ~]$

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26655292/viewspace-752818/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26655292/viewspace-752818/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值