ORA-12547 ORA-17503(RAC)解决

本文记录了一次 Oracle RAC 数据库启动过程中遇到的问题,包括 ORA-12547:TNS:lost contact 错误及 spfile 识别错误,并提供了相应的解决步骤。


1.报错内容:

下午看到一个文件夹似乎权限有问题然后就执行chown -R .....

结果:

Enter user-name:

ERROR:

ORA-12547: TNS:lost contact


[oracle@racnode1 ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jan 21 17:03:25 2013

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 '+RACDB_DATA/racdb/spfileracdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +RACDB_DATA/racdb/spfileracdb.ora
ORA-12547: TNS:lost contact
SQL>

2.解决

(1)

/u01/app/oracle/product/11.2.0/dbhome_1/bin

[oracle@racnode1 bin]$ ls -tl oracle
-rwsrwsrwx 1 oracle asmadmin 228886426 Jan 16 15:15 oracle*   ---如果没有S属性chmod +s oracle

(2)与前面类似只是一个是ORACLE一个是GRID用户下

[grid@racnode1 ~]$ cd $ORACLE_HOME/bin
[grid@racnode1 bin]$ ls -tl oracle
-rwsr-s--x 1 grid oinstall 200678430 Jan 16 09:55 oracle*
[grid@racnode1 bin]$ pwd
/u01/app/11.2.0/grid/bin


<think>首先,用户的问题是关于Oracle 12c RAC环境中出现特定错误的解决方案:ORA-00210、ORA-00202、ORA-17503ORA-15001和ORA-15040。用户提供了三个引用,但它们是关于其他错误的,所以我需要基于这些引用和一般知识来回答。 关键错误: - ORA-00210: 无法打开指定的控制文件。 - ORA-00202: 控制文件错误。 - ORA-17503: I/O错误,发生在ASM操作中。 - ORA-15001: ASM磁盘组不存在或无效。 - ORA-15040: ASM磁盘组不存在。 这些错误通常与ASM(Automatic Storage Management)相关,涉及控制文件、磁盘组和权限问题。 从引用中提取相关信息: - 引用[1]: 提到ORA-XXXX和ORA-YYYY错误,但未指定具体代码。它指出错误可能由于网络配置、存储配置、权限或初始化参数引起。 - 引用[2]: 讨论ORA-12518和ORA-12541,与连接问题相关,建议在sqlnet.ora中添加SQLNET.ALLOWED_LOGON_VERSION=8。但用户错误不同。 - 引用[3]: 提到ORA-01017(无效用户名/密码)和ORA-17503(I/O错误),提示权限问题,例如文件访问权限。 用户错误中包括ORA-17503,这与引用[3]相关。ORA-17503通常表示ASM文件操作失败,可能由于权限或路径问题。 常见原因和解决方案: 1. **控制文件问题 (ORA-00210, ORA-00202)**: - 控制文件丢失、损坏或路径错误。 -RAC环境中,控制文件应位于共享存储(如ASM磁盘组)中。 - 检查控制文件位置是否在初始化参数文件(spfile)中正确设置。 - 确保所有节点都能访问控制文件。 2. **ASM相关问题 (ORA-17503, ORA-15001, ORA-15040)**: - ORA-17503: I/O错误,可能由于权限问题(如Oracle用户无权限访问文件)。 - ORA-15001: ASM磁盘组不存在或名称错误。 - ORA-15040: ASM磁盘组不存在或无效。 - 检查ASM磁盘组是否已创建并可用。使用ASM命令如`asmcmd lsdg`验证。 - 确保磁盘组在所有节点上可见。 - 权限问题:Oracle用户(通常是grid或oracle)必须对ASM磁盘和文件有适当权限。检查文件系统权限(如果使用文件系统)或ASM权限。 -RAC环境中,确保所有节点上的ASM实例正常运行。 基于引用[3],ORA-17503可能与权限被拒绝相关,提示文件访问问题。 一般步骤解决- 验证ASM磁盘组状态:登录到ASM实例,运行`SELECT name, state FROM v$asm_diskgroup;` 确保磁盘组MOUNTED。 - 检查控制文件位置:在数据库实例中,运行`SHOW PARAMETER control_files` 确认路径正确。 - 权限检查:确保Oracle软件所有者(如oracle用户)有权限访问ASM磁盘。检查文件权限(如 +MGMT/AISHU1/PASSWORD/pwdaishu1.281.1041682565 在引用[3]中)。 - 网络配置:在RAC中,确保私有网络和公共网络配置正确。 - 日志文件:检查alert日志和ASM alert日志以获取更多细节。 结构化回答: 1. **介绍问题**: 简要描述错误及其常见原因。 2. **逐步解决方案**: a. 检查ASM磁盘组。 b. 验证控制文件配置。 c. 检查权限和所有权。 d. 其他可能原因。 3. **引用相关信息**: 自然地融入引用,如引用[3]提到权限问题。 4. **生成相关问题**: 在末尾添加相关问题。 添加引用标识:在相关部分末尾添加[^1], [^2], [^3],但用户引用是给定的,所以我应该基于内容引用。 用户引用: - : 关于一般配置问题。 - [^2]: 关于连接错误。 - [^3]: 关于权限错误,特别是ORA-17503。 所以,在讨论权限时引用。 最终回答用中文。 </think> ### Oracle 12c RAC环境中ORA-00210、ORA-00202、ORA-17503ORA-15001和ORA-15040错误的解决方案 在Oracle 12c RAC环境中,遇到ORA-00210、ORA-00202、ORA-17503ORA-15001和ORA-15040错误,通常与ASM(Automatic Storage Management)控制文件、磁盘组访问或权限问题相关。这些错误可能由共享存储配置不当、文件权限不足或ASM磁盘组状态异常引起。以下是一个结构化的解决方案,基于常见原因和最佳实践。请逐步操作,并在每步后验证错误是否解决。 #### 1. **验证ASM磁盘组状态(针对ORA-15001和ORA-15040)** - **问题原因**:ORA-15001和ORA-15040表示ASM磁盘组不存在、未挂载或无效。在RAC环境中,所有节点必须能访问同一磁盘组。 - **解决步骤**: - 登录到ASM实例(以grid用户身份): ```sql su - grid asmcmd ASMCMD> lsdg -- 检查磁盘组状态,确保状态为MOUNTED ``` - 如果磁盘组未挂载,手动挂载: ```sql ASMCMD> mount <disk_group_name> -- 替换为实际磁盘组名,如DATA ``` - 检查磁盘组在所有节点的一致性: ```sql sqlplus / as sysasm SQL> SELECT name, state FROM v$asm_diskgroup; -- 确保所有节点显示一致状态 ``` - 如果磁盘组不存在,需重新创建(先备份数据): ```sql CREATE DISKGROUP <disk_group_name> NORMAL REDUNDANCY DISK '<disk_path>' -- 例如,'/dev/sdb1' ATTRIBUTE 'compatible.asm'='12.1.0.2.0'; ``` - **引用支持**:此类错误常因存储配置不当引起,需确保共享存储(如SAN/NAS)在所有节点可见[^1]。 #### 2. **检查控制文件配置(针对ORA-00210和ORA-00202)** - **问题原因**:ORA-00210和ORA-00210表示控制文件无法打开或损坏,可能由于路径错误、文件丢失或权限不足。 - **解决步骤**: - 确认控制文件路径是否正确(在数据库实例中运行): ```sql sqlplus / as sysdba SQL> SHOW PARAMETER control_files -- 输出应指向ASM磁盘组,如'+DATA/<db_name>/controlfile/current.ctl' ``` - 如果路径错误,更新`spfile`: ```sql SQL> ALTER SYSTEM SET control_files='+DATA/<db_name>/controlfile/current.ctl' SCOPE=spfile; SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP; -- 重启数据库 ``` - 如果控制文件损坏,从备份恢复或使用`RMAN`重建: ```bash rman target / RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP; RMAN> ALTER DATABASE MOUNT; ``` -RAC环境中,确保控制文件位于共享ASM磁盘组,且所有节点有相同配置[^1]。 #### 3. **检查权限和I/O问题(针对ORA-17503)** - **问题原因**:ORA-17503表示ASM文件I/O错误,常因Oracle用户权限不足或文件系统问题引起(如引用中提到的权限被拒绝)。 - **解决步骤**: - 验证Oracle用户(如`oracle`或`grid`)对ASM文件的权限: ```bash ls -l /dev/sd* -- 检查磁盘设备权限,应为grid:oinstall chown grid:oinstall /dev/sdb1 -- 如果权限错误,更正所有权 chmod 660 /dev/sdb1 -- 设置读写权限 ``` - 检查ASM磁盘组中的文件访问(例如,密码文件如引用中的`+MGMT/AISHU1/PASSWORD/pwdaishu1.281.1041682565`): ```bash asmcmd ASMCMD> ls -l +MGMT/AISHU1/PASSWORD/ -- 确认文件存在且权限正确 ``` - 如果权限问题,更新文件权限或添加Sqlnet设置(如引用和[^3]建议,但需适配): - 在所有节点的`$ORACLE_HOME/network/admin/sqlnet.ora`中添加: ``` SQLNET.ALLOWED_LOGON_VERSION=8 -- 解决兼容性问题 ``` - **注意**:如果文件不存在则创建;在RAC中,所有节点需同步此文件[^2]。 - 检查ASM实例的alert日志获取详细错误: ```bash tail -f $ORACLE_BASE/diag/asm/+asm/<node_name>/trace/alert_<node_name>.log ``` - **引用支持**:权限问题(如`ORA-17503`)常导致I/O失败,需确保Oracle用户对存储设备有完全访问权。 #### 4. **其他常见原因和检查** - **网络和集群健康**: -RAC中,验证集群服务状态: ```bash crsctl stat res -t -- 确保所有资源(包括ASM和数据库)在线 ``` - 检查私有网络(如Interconnect)是否正常,避免通信问题引发文件访问错误[^1]。 - **初始化参数和兼容性**: - 确保`compatible.asm`和`compatible.rdbms`参数一致: ```sql SQL> SHOW PARAMETER compatible; -- 应匹配数据库版本(如12.1.0.2.0) ``` - **操作系统级别检查**: - 确认共享存储(如OCFS2或ASMLib)已安装并配置。 - 使用`dd`测试磁盘I/O: ```bash dd if=/dev/sdb1 of=/dev/null bs=1M count=100 -- 测试读操作 ``` #### 5. **总结和预防建议** - **关键点**:这些错误通常互相关联(如ORA-17503引发控制文件问题)。优先解决ASM磁盘组和权限问题[^3],再处理控制文件错误。 - **预防措施**: - 定期备份控制文件和ASM元数据。 -RAC中,使用OEM或脚本监控磁盘组状态。 - 确保所有节点OS权限、Oracle软件版本和配置一致。 - **日志分析**:始终检查`alert.log`和ASM trace文件定位根源。 如果以上步骤后问题仍存,提供alert日志片段以进一步诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值