listener.log中报Warning: Subscription For Node Down Event Still Pending问题的解决方法

针对Oracle10.2.0.1forAIX环境下监听日志出现大量“Warning:SubscriptionForNodeDownEventStillPending”警告的问题,本文介绍了这一已知Bug及其解决方法。建议升级到10.2.0.3或更高版本,或者通过修改listener.ora文件和重命名ons.config文件来规避此问题。

一套Oracle 10.2.0.1 for aix的数据库环境,在监听日志($ORACLE_HOME/network/log/listener.log)中报出大量的“Warning: Subscription For Node Down Event Still Pending"提示。

metalink上查询(doc id:340091.1)中,确认这个一个bug。

影响的版本为:

Oracle Net Services - Version: 10.1.0.3.0 to 10.2.0.2.0
在oracle 10.2.0.3中已经解决

文档中给出如下的解决方案

[@more@]Issue is fixed in 10.2.0.3 Patch Set
Oracle Support recommends patching to 10.2.0.4 as this the lastest release

- OR -

Apply Patch 4518443 for the problem (if a patch is available)

- OR -

As a workaround, two steps should be done:

1. The following parameter can be added to listener.ora

SUBSCRIBE_FOR_NODE_DOWN_EVENT_=OFF

Where should be replaced with the actual listener name configured in the LISTENER.ORA file. This parameter is to be placed by itself on an empty line / at the end of file.

For example, if the listener name is LISTENER (default), the parameter would be:

SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

2. Locate the ons.config file in the 10g(rdbms) home and rename it to something else.
For example:
cd $ORACLE_HOME/opmn/conf
mv ons.config ons.config.orig

The listener needs to be restarted after these changes.

--end--

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

转载于:http://blog.itpub.net/22049049/viewspace-1029960/

<think>我们正在处理用户遇到的错误:`tail: cannot open '/app/oracle/network/log/listener.log' for reading: No such file or directory` 这个错误表明用户尝试使用`tail`命令查看监听器日志文件,但指定的路径不存在或者没有权限访问。 根据之前的对话,我们注意到用户可能是在处理Oracle数据库问题,特别是与监听器(listener)相关的问题。在之前的回答中,我们提到了监听器日志的位置通常是`$ORACLE_HOME/network/log/listener.log`。但是用户尝试的路径是`/app/oracle/network/log/listener.log`,这可能是因为用户的`ORACLE_HOME`环境变量设置的不是`/app/oracle`,或者用户直接使用了一个错误的路径。 我们需要引导用户: 1. 确认监听器日志的实际位置。 2. 检查环境变量`ORACLE_HOME`的设置。 3. 如果路径正确,检查文件权限。 另外,根据用户提供的引用内容(虽然引用内容是关于归档日志设置和集群配置的),我们可以推测用户可能在使用Oracle RAC环境,但这不是当前问题的重点。 解决方案步骤: 步骤1:确认正确的监听器日志路径 - 通常,监听器日志位于`$ORACLE_HOME/network/log/listener.log`。首先需要确定`ORACLE_HOME`的值。 - 可以让用户执行以下命令来查看环境变量: echo $ORACLE_HOME 步骤2:如果环境变量设置正确,检查该路径下是否存在`network/log/listener.log`文件 - 如果存在,则检查文件权限,确保当前用户有读取权限。 - 如果不存在,可能是监听器没有启动或者日志文件被配置到了其他位置。 步骤3:如果环境变量没有设置,那么需要用户回忆Oracle安装目录,或者通过其他方式定位监听器日志。 - 在Oracle中,监听器的配置可以通过`listener.ora`文件查看,该文件通常位于`$ORACLE_HOME/network/admin`目录下。在`listener.ora`中,可以找到`LOGGING_LISTENER`参数或者`LOG_DIRECTORY`参数,这些参数可能指定了日志的路径。 步骤4:用户也可以尝试使用`ps`命令查看监听器进程,从而找到监听器的日志路径(如果监听器正在运行的话)。 ps -ef | grep tnslsnr 步骤5:如果用户无法找到监听器日志,可能需要检查监听器的状态,确保监听器已经启动。 考虑到用户可能没有权限或者路径确实错误,我们提供以下具体的命令示例: 示例命令: 1. 检查环境变量: echo $ORACLE_HOME 2. 如果环境变量有值,例如`/u01/app/oracle/product/19.0.0/dbhome_1`,那么尝试: ls -l $ORACLE_HOME/network/log/listener.log 3. 如果环境变量没有设置,用户需要先设置环境变量。可以询问用户Oracle的安装位置,或者让用户尝试在可能的安装目录下查找,例如: ls -l /u01/app/oracle/product/*/network/log/listener.log 4. 如果用户知道监听器名称(默认为LISTENER),可以通过以下命令查看监听器状态,其中可能会包含日志路径: lsnrctl status [listener_name] 在`lsnrctl status`的输出中,会有一行显示“Listener Log File”,即日志文件的位置。 5. 如果用户没有权限,可以使用`sudo`或者切换有权限的用户(如oracle用户)来查看。 6. 如果监听器没有启动,那么日志文件可能尚未创建。可以尝试启动监听器: lsnrctl start 然后再次检查日志文件。 根据以上分析,我们给出回答。</think>### 解决 `tail: cannot open /app/oracle/network/log/listener.log` 错误 #### 问题分析 此错误表明监听器日志路径配置不正确或文件不存在,通常由以下原因引起: 1. **路径配置错误** - `$ORACLE_HOME` 环境变量未正确设置 - `listener.ora` 中 `LOG_DIRECTORY` 参数配置错误 2. **文件权限问题** - Oracle 用户无日志目录读写权限 3. **监听器未启动** - 日志文件未生成 #### 解决方案 ##### 步骤 1:验证环境变量 ```bash # 检查 ORACLE_HOME 设置 echo $ORACLE_HOME # 检查实际路径是否存在 ls -ld $ORACLE_HOME/network/log ``` - 若输出为空:需设置环境变量 ```bash export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1 # 替换为实际路径 ``` ##### 步骤 2:检查监听器配置 ```bash # 查看 listener.ora 配置 cat $ORACLE_HOME/network/admin/listener.ora | grep -i "log_directory" # 若无输出,添加配置(使用 vi 编辑) vi $ORACLE_HOME/network/admin/listener.ora ``` 添加配置: ```ini LOG_DIRECTORY_<LISTENER_NAME> = $ORACLE_HOME/network/log # [^1] ``` ##### 步骤 3:修复权限 ```bash # 创建日志目录(若不存在) mkdir -p $ORACLE_HOME/network/log # 修改所有者 chown -R oracle:oinstall $ORACLE_HOME/network/log # 设置权限 chmod 775 $ORACLE_HOME/network/log ``` ##### 步骤 4:重启监听器 ```bash lsnrctl stop lsnrctl start # 验证日志生成 tail -f $ORACLE_HOME/network/log/listener.log ``` #### 特殊场景处理 **RAC 环境**(参考引用[2]): ```bash # 检查节点配置 srvctl config listener -n <node_name> # 集群级日志路径通常在: $GRID_HOME/network/log/listener.log ``` **日志未生成**: ```bash # 强制监听器创建日志 lsnrctl set current_listener log_status on ``` > **关键提示**:在 RAC 环境中,需通过 `srvctl` 修改配置而非直接编辑文件[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值