【翻译自mos文章】当/var/tmp目录被remove掉之后,GI crash,并启动失败,原因是ohasd can not create named pipe

本文详细介绍了当Oracle Database Enterprise Edition版本11.2.0.2及更高版本的GI组件在删除了/var/tmp目录及其子目录后,无法正常启动的问题,并提供了创建所需目录和赋予正确权限的解决方案。

来源于:

GI crashes and fails to start after "/var/tmp" directory was removed as ohasd can not create named pipe (文档 ID 1567797.1)

APPLIES TO:

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

SYMPTOMS

11gR2 GI crashes and can not start, "crsctl start crs" reports:

OHASD START FAILS WITH ERROR CREATING THE NAMED PIPE

 

CAUSE

"/var/tmp" directory was deleted

SOLUTION

Create the /var/tmp and /var/tmp/.oracle directory:

/bin/mkdir -p /var/tmp/.oracle
/bin/chmod 01777 /var/tmp/
/bin/chown root /var/tmp/ 
/bin/chmod 01777 /var/tmp/.oracle
/bin/chown root /var/tmp/.oracle

 

<think> 嗯,用户这次的问题聚焦在Oracle 11g中一个非常具体的文件路径/var/tmp/.oracle/npohasd上。从用户引用看,似乎遇到了集群节点被驱逐的问题,且日志指向了权限异常。 用户引用的报错CRS-5011很有意思,这通常和Grid Infrastructure的资源检查失败有关。npohasd这个文件名很关键——npo代表Name Pipe Object,hasd应该是High Availability Services Daemon的缩写。这暗示它是集群进程间通信的管道文件。 考虑到用户的场景,需要重点解释几个方面:首先这个文件的用途,它是OHASD守护进程的IPC通道;其次权限要求,必须保证grid用户可读写;最后常见故障模式,比如权限被篡改或磁盘满。用户没有提供具体环境,但RAC节点被踢通常伴随这类底层通信故障。 用户可能真正需要的是故障排查指南。虽然ta直接问文件信息,但引用日志显示实际遇到了集群问题。应该把文件作用和排错步骤结合起来说明,特别是如何验证权限和恢复服务。要注意避免过度技术化,但关键命令如crsctl stat res -t必须包含。 上次对话提到/var/tmp/.oracle目录权限问题,这次需要更深入。可以补充Oracle官方文档ID 387666.1作为延伸阅读,不过用户没要求就不必主动提。如果用户后续需要,再提供具体重建步骤或MOS文档参考。 </think> 以下是关于Oracle 11g中`/var/tmp/.oracle/npohasd`文件的详细信息及解决方案: --- ### **文件作用** `/var/tmp/.oracle/npohasd`是**Oracle High Availability Services (OHAS)** 的**进程间通信(IPC)管道文件**,由`ohasd.bin`守护进程创建(属主为`grid`用户)。该文件用于: 1. RAC集群节点间的实时通信 2. 集群资源状态同步 3. 节点健康检查(异常时会触发节点驱逐)[^1] --- ### **关键特性** | 属性 | 要求值 | 异常后果 | |--------------|----------------------|----------------------------| | **目录权限** | `/var/tmp/.oracle` 权限需为 **775** | 节点通信中断 | | **文件属主** | `grid:oinstall` | CRS服务启动失败 | | **磁盘空间** | `/var`分区需≥2GB | 管道文件创建失败 | --- ### **常见问题与解决方案** #### **1. 权限错误导致节点驱逐** ```bash # 检查权限 ls -ld /var/tmp/.oracle # 修复命令(以root执行) chown -R grid:oinstall /var/tmp/.oracle chmod -R 775 /var/tmp/.oracle ``` > 📌 注:权限修复后需重启CRS:`crsctl stop crs && crsctl start crs` #### **2. 文件丢失/损坏** ```bash # 重新生成文件(以grid用户执行) $ORACLE_HOME/bin/crsctl stop crs rm -f /var/tmp/.oracle/npohasd $ORACLE_HOME/bin/crsctl start crs ``` #### **3. 磁盘空间不足** ```bash # 检查空间 df -h /var # 清理临时文件 find /var/tmp -type f -mtime +7 -delete ``` --- ### **技术原理** 1. **通信机制**:`ohasd.bin`通过`npohasd`管道文件监听其他节点的**心跳信号** 2. **超时机制**:若连续丢失心跳超过`misscount`阈值(默认30秒),触发节点驱逐 3. **日志定位**:相关错误记录在: `$GRID_HOME/log/<hostname>/agent/ohasd/oraagent_grid/oraagent_grid.log` --- ### **最佳实践** 1. 将`/var/tmp`挂载到独立分区,避免空间耗尽 2. 定期检查权限: ```bash # 监控脚本示例 if [ $(stat -c %U%G /var/tmp/.oracle) != "gridoinstall" ]; then echo "ALERT: Permission changed!" | mail -s "CRS Alert" dba@example.com fi ``` 3. 配置OS级别的文件监控(如inotify) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值