ORA-01565: error in identifying file '+DATA/devdb/spfiledevdb.ora'

在尝试将Oracle 11g R2从单机升级到RAC的过程中,遇到了ORA-01078等错误。经过排查发现是由于grid用户的oracle可执行文件权限设置不当导致的问题。
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/devdb/spfiledevdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/devdb/spfiledevdb.ora
ORA-12547: TNS:lost contact


解决办法:
环境:


DB:11.2.0.3 RAC  OS:OracleEnterpriseLinux6



今天在做Oracle 11gR2下面单机升级到RAC时遇到下面的问题


[oracle@11rac5 ~]$ sqlplus / as sysdba 
 
SQL*Plus: Release 11.2.0.2.0 Production on Tue Oct 9 19:06:51 2012 
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved. 
 
Connected to an idle instance. 
 
SQL> startup 
ORA-01078: failure in processing system parameters 
ORA-01565: error in identifying file '+DATA/spfilerac.ora' 
ORA-17503: ksfdopn:2 Failed to open file +DATA/spfilerac.ora 
ORA-01034: ORACLE not available 
ORA-27123: unable to attach to shared memory segment 
Linux-x86_64 Error: 13: Permission denied 
Additional information: 3833863 
Additional information: 10 
查看grid与oracle用户下面的oracle文件的权限


查看grid用户下面的oracle的权限 
[root@11rac5 log]# su - grid 
[grid@11rac5 ~]$ ls -l $ORACLE_HOME/bin/oracle 
-rwxr-x--x 1 grid oinstall 200678430 Oct  9 13:35 /u01/app/11.2.0/grid/bin/oracle 
权限不正确,修改。 
[grid@11rac5 ~]$ chmod 6751 $ORACLE_HOME/bin/oracle 
[grid@11rac5 ~]$ ls -l $ORACLE_HOME/bin/oracle 
-rwsr-s--x 1 grid oinstall 200678430 Oct  9 13:35 /u01/app/11.2.0/grid/bin/oracle 
查看oracle用户下面的oracle权限 
[oracle@11rac5 trace]$ ls -l $ORACLE_HOME/bin/oracle 
-rwsr-x--x 1 oracle asmadmin 228886426 Oct  9 15:29 /u01/app/oracle/product/11.2.0/db_2/bin/oracle 
 
在grid用户下面修改 
[oracle@11rac5 trace]$ su - grid 
Password: 
[grid@11rac5 ~]$ cd $ORACLE_HOME/bin/ 
[grid@11rac5 bin]$ set 
set            setasmgid      setasmgidwrap  setfattr       setkeycodes    setmetamode    setsid         setup           
setarch        setasmgid0     setfacl        setfont        setleds        setserial      setterm        setxkbmap       
[grid@11rac5 bin]$ setasmgidwrap o=/u01/app/oracle/product/11.2.0/db_2/bin/oracle 
[grid@11rac5 bin]$ ls -l /u01/app/oracle/product/11.2.0/db_2/bin/oracle 
-rwsr-s--x 1 oracle asmadmin 228886426 Oct  9 15:29 /u01/app/oracle/product/11.2.0/db_2/bin/oracle 
再次启动数据库:


再次启动正常 
[oracle@11rac5 ~]$ sqlplus / as sysdba 
 
SQL*Plus: Release 11.2.0.2.0 Production on Tue Oct 9 19:28:34 2012 
 
Copyright (c) 1982, 2010, Oracle.  All rights reserved. 
 
Connected to an idle instance. 
 
SQL> startup 
ORACLE instance started. 
 
Total System Global Area  839282688 bytes 
Fixed Size                  2231128 bytes 
Variable Size             557843624 bytes 
Database Buffers          276824064 bytes 
Redo Buffers                2383872 bytes 
Database mounted. 
Database opened. 

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

转载于:http://blog.itpub.net/29330852/viewspace-2120303/

<think>嗯,用户遇到了Oracle11gRAC环境中的ORA-01565错误,这个错误通常和spfile文件访问有关。从引用内容看,用户已经收集了一些相关案例,包括权限问题、ASM磁盘组挂载问题等。用户的核心诉求是定位文件识别问题并找到解决方案。用户提供的引用信息很有价值:[^1]和[^2]都提到spfile路径识别失败,[^3]则指出可能是二进制文件权限问题。特别注意到引用[3]提到"bin/oracle权限引起",这提示我需要检查GRID和RDBMS的安装权限。考虑到RAC环境的复杂性,需要从多个维度排查:首先确认ASM磁盘组状态,因为+DATA开头的路径属于ASM存储;其次检查集群资源注册情况,spfile位置应该与srvctl配置一致;最后是操作系统层面的权限检查,包括文件权限和SELinux等安全设置。用户没有提到具体操作步骤,所以我会给出完整的诊断流程。特别要注意的是RAC环境下需要同时检查所有节点,因为某个节点的配置错误就可能导致整个集群启动失败。ORA-12547报错通常意味着进程通信中断,往往伴随权限问题。解决方案部分将按优先级排序:最简单的权限修复放在前面,复杂的存储恢复放在后面。引用[3]提供的chmod6751方案需要谨慎操作,必须确认两个属主是否正确。另外补充了环境变量和参数文件备份的建议,这是很多文档容易忽略的实用技巧。</think>以下是针对 Oracle 11g RAC 环境中 ORA-01565 错误的完整解决方案,结合错误本质和引用案例逐步排查: --- ### **错误原因分析** ORA-01565 表明数据库无法识别或访问 `spfile` 文件,通常由以下原因引起: 1. **文件路径错误**:`spfile` 路径在参数文件或 ASM 中配置不正确 2. **权限问题**:Oracle 用户无权访问 ASM 磁盘组或 OS 文件(如引用[2][3]所述) 3. **ASM 状态异常**:磁盘组未挂载或存储路径失效(引用[1][2]中的 `ORA-17503`) 4. **集群注册不一致**:RAC 资源未正确注册 `spfile` 位置 --- ### **逐步解决方案** #### **步骤 1:检查 ASM 磁盘组状态** ```sql -- 以 grid 用户登录 ASM 实例 sqlplus / as sysasm SELECT name, state FROM v$asm_diskgroup; ``` - **预期结果**:`+DATA` 状态应为 `MOUNTED` - **异常处理**: - 若状态为 `DISMOUNTED`,挂载磁盘组: ```sql ALTER DISKGROUP DATA MOUNT; ``` - 若报错 `ORA-15032`,检查 ASM 磁盘权限(参考引用[3]) #### **步骤 2:验证 spfile 物理存在** ```bash # 确认 ASM 中文件是否存在 asmcmd ls "+DATA/rac11g/spfilerac11g.ora" ``` - **若文件不存在**: - 从备份恢复 `spfile`,或使用 `pfile` 启动: ```bash sqlplus / as sysdba STARTUP PFILE='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/init<sid>.ora'; ``` #### **步骤 3:检查集群资源注册** ```bash # 以 root 用户执行 crsctl stat res -t -w "TYPE = ora.database.type" # 查看数据库资源配置 srvctl config database -d <db_name> # 检查 spfile 路径配置 ``` - **修正错误路径**(如引用[2]案例): ```bash srvctl modify database -d <db_name> -p '+DATA/rac11g/spfilerac11g.ora' ``` #### **步骤 4:修复权限问题(关键步骤)** 1. **检查文件权限**: ```bash ls -l $ORACLE_HOME/bin/oracle # 确认权限为 -rwsr-s--x (6751) ``` 2. **按引用[3]修复权限**: ```bash # 以 root 用户执行 chown grid:oinstall $ORACLE_HOME/bin/oracle chmod 6751 $ORACLE_HOME/bin/oracle ``` 3. **检查 ASM 文件权限**: ```bash asmcmd ls -l "+DATA/rac11g/spfilerac11g.ora" ``` - 确保权限为 `-rw-r-----` 且属主为 `oracle:dba` #### **步骤 5:重启集群服务** ```bash # 以 root 用户执行 crsctl stop cluster -all # 停止整个集群 crsctl start cluster -all # 重新启动集群 srvctl start instance -d <db_name> -i <instance_name> # 启动数据库实例 ``` --- ### **预防措施** 1. **定期验证配置**: ```bash srvctl config database -d <db_name> > /backup/db_config_$(date +%F).txt ``` 2. **备份关键文件**: ```bash asmcmd cp '+DATA/rac11g/spfilerac11g.ora' '/backup/spfile_$(date +%F).ora' ``` 3. **使用 RMAN 自动备份 spfile**: ```sql CONFIGURE CONTROLFILE AUTOBACKUP ON; ``` > **重要提示**:操作前备份 ASM 和数据库文件!若问题仍存在,检查 `alert_<sid>.log` 和 `crsd.log` 中的 ORA-12547 等关联错误(如引用[2][3])。 --- ### 相关问题 1. **如何诊断 Oracle RAC 中的 ORA-17503 存储访问错误?** 2. **Oracle 11g RAC 环境下如何安全迁移 spfile 到新 ASM 磁盘组?** 3. **集群资源管理器(CRS)注册信息不一致会导致哪些典型故障?** [^1]: ORA-01565 错误案例分析与 ASM 文件访问失败 [^2]: RAC 环境权限变更引发的启动故障 [^3]: 二进制文件权限修复解决 ORA-12547
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值