解决ASM无法启动问题

 
启动报错如下所示
rac2-> sqlplus /as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sun May 11 20:32:57 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DG1/devdb/spfiledevdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +DG1/devdb/spfiledevdb.ora
ORA-15077: could not locate ASM instance serving a required diskgroup
SQL> exit
Disconnected

--检查ASM实例运行情况
rac2-> srvctl status asm -n rac1
ASM 实例 +ASM1 正在节点 rac1 上运行。
rac2-> srvctl status asm -n rac2
ASM 实例 +ASM2 不在节点 rac2 上运行。

--可以看出,在节点2(也就是出问题的节点)上ASM实例并没有启动

--接着检查ASM磁盘组
[root@rac2 ~]# /etc/init.d/oracleasm listdisks
     没有结果输出表示ASM磁盘组没有加载,之前配置ASM的时候已经配置了自动加载ASM,可能是因为其他原因没有加载成功.下面手工加载:

[root@rac2 ~]# /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: [ OK ]
Loading module "oracleasm": [ OK ]
Mounting ASMlib driver filesystem: [ OK ]
Scanning system for ASM disks: [ OK ]

--再查看ASM磁盘组信息:

[root@rac2 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3

--可以看出,ASM磁盘组加载好了.
--下面要做的是启动ASM实例

rac2-> export ORACLE_SID=+ASM2
rac2-> sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sun May 11 20:36:18 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area 92274688 bytes
Fixed Size 1217884 bytes
Variable Size 65890980 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters and Data Mining options

--启动数据库
rac2-> export ORACLE_SID=devdb2
rac2-> sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Sun May 11 20:39:57 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area 188743680 bytes
Fixed Size 1218436 bytes
Variable Size 83888252 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.

至此,实例启动完毕.
在 CentOS 7 上安装 Oracle ASM(Automatic Storage Management)时,OHAS(Oracle High Availability Services)启动失败是一个较为常见的问题。此类问题通常由环境配置不当、权限设置错误、依赖服务缺失或日志中提示的特定错误引起。 ### 常见问题解决方案 #### 1. **OHAS 无法启动,提示权限问题** 检查 `root` 用户是否拥有 `/etc/oracle` 目录及其子目录的读写权限。通常,Oracle 安装过程中会创建该目录,若权限配置不正确,会导致 OHAS 无法写入配置文件或日志文件。 解决方案: - 修改目录权限: ```bash chown -R root:oinstall /etc/oracle chmod -R 775 /etc/oracle ``` #### 2. **OHAS 启动失败,提示缺少依赖服务** OHAS 依赖于 `ohasd` 守护进程,该进程需通过系统服务管理工具(如 `systemctl`)进行注册和启动。如果服务未正确注册或依赖项未安装,可能导致 OHAS 启动失败。 解决方案: - 确保已正确配置 `ohas.service` 文件,并执行以下命令: ```bash systemctl daemon-reload systemctl enable ohas.service systemctl start ohas.service systemctl status ohas.service ``` 若服务文件缺失或配置错误,需根据 Oracle 官方文档重新创建服务文件[^2]。 #### 3. **OHAS 启动失败,提示 OCR(Oracle Cluster Registry)或 Votedisk 问题** 在 RAC 环境中,OHAS 启动时会尝试访问 OCR 和 Votedisk。如果这些设备未正确配置或权限不正确,将导致 OHAS 启动失败。 解决方案: - 检查 OCR 和 Votedisk 的配置状态: ```bash ocrcheck crsctl query css votedisk ``` - 若设备未正确配置,需使用 `ocrconfig` 和 `crsctl add css votedisk` 命令重新配置。 #### 4. **SELinux 或防火墙阻止 OHAS 启动** SELinux 或防火墙可能阻止 OHAS 服务启动或通信。 解决方案: - 暂时禁用 SELinux: ```bash setenforce 0 ``` - 修改 `/etc/selinux/config` 文件中的 `SELINUX` 设置为 `disabled`。 - 停止并禁用防火墙: ```bash systemctl stop firewalld systemctl disable firewalld ``` #### 5. **OHAS 日志提示“CRS-4124: Oracle High Availability Services startup failed”** 此错误通常表示 OHAS 启动脚本无法找到或执行关键组件。 解决方案: - 检查 `/etc/oracle/scls_scr/<hostname>/ohasd/` 目录下的 `root.install` 文件是否存在。 - 若文件缺失,需重新运行 `root.sh` 脚本以重新配置集群件。 ```bash /u01/app/11.2.0/grid/root.sh ``` #### 6. **OHAS 启动失败,提示“ohasd failed at startup”** 这类错误通常出现在日志文件 `/u01/app/grid/diag/crs/<hostname>/crs/trace/ohasd_<pid>.trc` 中,可能涉及环境变量或路径问题解决方案: - 检查环境变量 `ORACLE_HOME` 和 `PATH` 是否正确设置。 - 确保 `/etc/oratab` 文件中已正确配置 Oracle 主目录。 ### 总结 OHAS 启动失败的原因多种多样,建议首先查看 `/u01/app/grid/diag/crs/<hostname>/crs/trace/` 目录下的日志文件,结合具体错误信息进行排查。常见的解决步骤包括:检查权限、重新运行 `root.sh`、配置服务文件、禁用 SELinux 和防火墙、以及验证 OCR 和 Votedisk 状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值