netca建监听TNS04414错误

本文介绍了在Windows环境下配置Oracle监听遇到的问题及解决方法。由于直接配置tnsnames.ora而未建立监听导致netca无法识别连接描述符,通过重命名tnsnames.ora并使用netca重建监听解决了该问题。

今天在windows上要建库,安装OEM时提示说必须建立监听。双击图标启动netca在建立到最后一步时,点击下一步没反应。

上网搜索后改用在CMD输入netca来建立监听,这下在命令行就有了错误提示:

ServiceAliasException: 无法初始化服务别名: TNS-04404: 没有错误
  caused by: oracle.net.config.ConfigException: TNS-04414: 文件错误
  caused by: TNS-04612: "BILL69" 的 RHS 为空

有了错误提示就好办了。查资料得知错误原因如下:

之前为了远程管理服务器上的数据库,windows上装了oracle软件后没有建库及监听,直接在tnsnames.ora配置了连接描述符,导致现在netca不能识别tnsnames.ora里面的连接描述符,不知道怎么处理。

解决方法:将原有的tnsnames.ora改名或挪个位置,然后再运行netca建立监听即可。

监听建立过程会自动生成tnsnames.ora,建立后修改netca生成的tnsnames.ora文件,加入之前配置的连接描述符即可。


windows下还是要养成用命令行执行操作的习惯,这样可以追踪操作执行日志。


### Oracle TNS-01150 错误解决方法:指定的监听程序地址不正确 在Oracle数据库环境中,当尝试启动监听器时出现 **TNS-01150: The address of the specified listener name is incorrect** 错误,通常表示 `listener.ora` 文件中配置的监听器地址信息与实际系统环境不匹配。以下是详细的排查和解决方案。 --- #### 1. 检查 `listener.ora` 配置文件中的地址设置 该错误最常见的原因是监听器配置文件 `listener.ora` 中的 `HOST` 或 `PORT` 设置不正确。应确保监听器绑定的主机名或IP地址与操作系统网络接口一致。 例如,以下是一个典型的监听器地址配置: ```plaintext (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521)) ``` 若使用 `localhost` 或 `127.0.0.1` 作为 `HOST`,可能导致监听器无法正确绑定外部网络接口,从而引发 TNS-01150 错误[^1]。 议将 `HOST` 替换为服务器的实际 IP 地址,以避免因主机名解析问题导致监听器启动失败。 --- #### 2. 核对 `tnsping` 和 `sqlnet.ora` 的解析方式 监听器地址是否能被正确解析也会影响其启动过程。可通过运行 `tnsping <service_name>` 命令来测试连接描述符是否能成功解析。如果 `tnsping` 返回 TNS 错误,则需检查 `sqlnet.ora` 文件中的命名解析顺序(`NAMES.DIRECTORY_PATH`)是否包含 `TNSPING` 所需的解析机制,如 `TNSPING`、`EZCONNECT` 或 `LDAP` 等。 --- #### 3. 检查权限问题及临时目录访问 在某些Linux/Unix系统中,监听器需要访问 `/var/tmp/.oracle` 目录以创通信套接字。若该目录权限不足或不存在,也可能导致监听器启动失败。 执行以下命令修复权限问题: ```bash chmod -R 777 /var/tmp/.oracle ``` 此操作可确保监听器具有足够的权限访问临时文件目录,从而避免 TNS-01150 错误的发生[^3]。 --- #### 4. 使用 `netca` 工具重新配置监听器 若手动修改配置仍无法解决问题,议使用 Oracle 自带的网络配置工具 `netca` 来重新生成监听器配置文件: ```bash netca ``` 选择“配置监听程序”选项,按照向导逐步完成监听器的重新配置。这可以有效排除由于手动编辑导致的语法或逻辑错误--- #### 5. 查看监听器日志以获取详细错误信息 监听器的日志文件通常位于 `$ORACLE_HOME/network/log` 或 `$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml` 路径下。通过分析这些日志文件,可以定位更具体的错误原因。 例如,查看日志中是否有如下内容: ```xml <txt>TNS-01150: The address of the specified listener name is incorrect</txt> ``` 这类信息有助于进一步确认是哪个监听器名称或地址配置有误。 --- #### 6. 验证监听器名称是否与配置文件一致 监听器名称在 `listener.ora` 文件中通过 `LISTENER = ...` 定义,并应在启动命令中保持一致。例如: ```bash lsnrctl start LISTENER ``` 如果监听器名称与配置文件中定义的名称不一致,也会导致 TNS-01150 错误。可以通过以下命令验证当前监听器名称: ```bash lsnrctl status ``` --- #### 7. 检查主机名与DNS解析 监听器启动过程中会依赖主机名解析。若主机名未在 `/etc/hosts` 中正确配置,或者 DNS 解析存在问题,可能导致监听器地址识别失败。 确保 `/etc/hosts` 文件中包含如下格式的条目: ```plaintext 192.168.1.100 myhost.example.com myhost ``` 并确认 `hostname` 命令返回的主机名与 `/etc/hosts` 中的记录一致。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值