oracle 11g rac 第一节点crs启动不了,srvctl relocate scan_listener时显示ora.listener_scan1.lsnr未运行
时间: 2025-08-19 09:08:37 浏览: 9
<think>我们正在处理Oracle 11g RAC环境中第一节点CRS(Cluster Ready Services)启动失败的问题,并且执行`srvctl relocate scan_listener`命令时遇到`ora.listener_scan1.lsnr`未运行的错误。以下将逐步分析并解决此问题。
### 问题分析
1. **CRS启动失败**:CRS是RAC的核心组件,负责管理集群资源。第一节点CRS启动失败会导致整个集群功能受限。
2. **SCAN监听器未运行**:SCAN(Single Client Access Name)监听器为客户端提供统一的访问入口。`ora.listener_scan1.lsnr`资源未运行,可能导致客户端无法连接到数据库。
### 解决步骤
#### 步骤1: 检查集群状态
首先,使用`crsctl`命令检查集群资源状态:
```bash
crsctl check crs
crsctl stat res -t
```
如果CRS服务未运行,尝试启动第一节点的CRS:
```bash
crsctl start crs
```
#### 步骤2: 检查SCAN监听器状态
查看SCAN监听器资源状态:
```bash
crsctl stat res ora.scan1.vip
crsctl stat res ora.listener_scan1.lsnr
```
如果状态不是`ONLINE`,尝试启动:
```bash
crsctl start res ora.listener_scan1.lsnr -n <节点名>
```
#### 步骤3: 检查网络配置
确保SCAN VIP和SCAN监听器配置正确:
```bash
srvctl config scan
srvctl config scan_listener
```
验证网络连通性(例如:ping SCAN名称)。
#### 步骤4: 重新定位SCAN监听器
若上述步骤无法启动监听器,尝试重新定位:
```bash
srvctl relocate scan_listener -i 1 -n <目标节点名>
```
注意:这里`-i 1`指定扫描监听器1,`-n`指定目标节点(通常为第二节点)。
#### 步骤5: 检查监听器日志
查看监听器日志以获取错误信息:
```bash
cd $GRID_HOME/log/<节点名>/listener_scan1
tail -f alleet.log
```
#### 步骤6: 修复资源依赖关系
若资源存在依赖问题,可尝试清理并重新注册资源:
```bash
crsctl stop res ora.listener_scan1.lsnr -f
crsctl delete res ora.listener_scan1.lsnr -f
srvctl add scan_listener -i 1
crsctl start res ora.listener_scan1.lsnr
```
#### 步骤7: 检查集群件健康性
运行集群健康检查工具:
```bash
cluvfy stage -post crsinst -n all
```
### 关键注意事项
- **操作前备份**:修改集群配置前备份`$GRID_HOME/crs/`目录。
- **权限问题**:确保操作以`grid`用户执行。
- **日志分析**:详细日志位于`$GRID_HOME/log/<节点名>/`。
### 相关问题
1. 如何诊断Oracle RAC中的CRS启动故障?
2. 在Oracle RAC中如何重新配置SCAN监听器?
3. Oracle 11g RAC中常见的网络配置错误有哪些?
通过以上步骤,应能解决第一节点CRS启动失败及SCAN监听器无法启动的问题。若问题持续,请提供具体错误日志以进一步分析[^1]。</think>### Oracle 11g RAC 第一节点 CRS 启动失败与 SCAN 监听器故障解决方案
#### **问题诊断**
1. **CRS 启动失败**:第一节点 CRS 服务无法启动,导致集群管理功能失效。
2. **SCAN 监听器异常**:执行 `srvctl relocate scan_listener` 时提示 `ora.listener_scan1.lsnr` 未运行,表明 SCAN 监听器资源未注册或启动失败[^1]。
---
#### **解决步骤**
##### **阶段1:修复 CRS 启动失败**
1. **检查集群状态**:
```bash
crsctl check crs # 验证 CRS 状态
crsctl stat res -t # 查看资源状态
```
若输出显示 `CRS-4639` 错误,说明 CRS 未运行。
2. **手动启动 CRS**:
```bash
crsctl start crs # 以 root 用户执行
```
若启动失败,检查日志:
```bash
cd $GRID_HOME/log/<节点名>/crs
tail -f crsd.log
```
3. **修复 OCR/Voting Disk**:
- 检查 OCR 完整性:
```bash
ocrcheck
```
- 若 OCR 损坏,尝试恢复备份:
```bash
ocrconfig -restore <备份路径>
```
##### **阶段2:修复 SCAN 监听器**
1. **验证 SCAN 配置**:
```bash
srvctl config scan # 检查 SCAN 配置
srvctl config scan_listener
```
确保 SCAN 名称解析正常(`nslookup <SCAN_NAME>`)。
2. **强制清理监听器资源**:
```bash
crsctl delete resource ora.listener_scan1.lsnr -f # 强制删除资源
srvctl add scan_listener -i 1 # 重新注册监听器
```
3. **启动 SCAN 监听器**:
```bash
srvctl start scan_listener -i 1
```
若仍失败,检查网络配置:
```bash
oifcfg getif # 验证网络接口
```
4. **检查 GNS 配置**(若使用):
```bash
srvctl config gns
crsctl stat res ora.gns
```
---
#### **关键配置文件检查**
1. **$GRID_HOME/network/admin/listener.ora**
确保包含 SCAN 监听器条目:
```ini
LISTENER_SCAN1 = (ADDRESS=(PROTOCOL=TCP)(PORT=1521))
```
2. **/etc/hosts 或 DNS**
确认 SCAN 名称解析到三个 IP(集群所有节点可访问)。
---
#### **预防措施**
1. **定期备份 OCR**:
```bash
ocrconfig -export /backup/ocr.exp
```
2. **验证集群健康**:
```bash
cluvfy stage -post crsinst -n all
```
---
#### **相关问题**
1. 如何诊断 Oracle RAC 中的 CRS-4639 错误?
2. Oracle 11g RAC 中 SCAN 监听器的工作原理是什么?
3. 如何修复 Voting Disk 损坏导致的 RAC 故障?
> 提示:操作前备份 OCR 和 Voting Disk[^1]。若问题持续,请提供 `crsd.log` 和 `alleet.log` 的详细错误片段。
阅读全文
相关推荐

















