[BUG]ORA-12154 TNS

ORA-12154 TNS错误问题

### 解决 Oracle 19c 中 ORA-12514 错误 当遇到 `ORA-12514` 错误时,表明TNS监听程序未能识别连接描述符中请求的服务。这通常意味着客户端尝试连接到一个未注册或未知的服务名称。 #### 验证服务名和服务状态 确保所使用的服务名存在于 `tnsnames.ora` 文件内,并且该服务已成功向监听器注册。可以通过查询动态性能视图来验证实例是否正在运行并正常工作: ```sql SELECT instance_name, status FROM v$instance; ``` 如果结果显示为 "OPEN", 则表示数据库处于开放状态并且应该能够接受新的连接[^3]。 #### 修改配置文件 检查位于 `$ORACLE_HOME/network/admin/` 目录下的两个重要网络配置文件——`listener.ora` 和 `tnsnames.ora`. 特别注意其中定义的服务名称是否匹配以及端口号设置是否正确无误[^5]. 对于 `listener.ora`, 确认其包含了正确的 SID_LIST 参数: ```plaintext SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = your_service_name) (ORACLE_HOME = /path/to/oracle_home) (SID_NAME = your_sid) ) ) ``` 而对于 `tnsnames.ora`, 应包含类似下面这样的条目用于指定远程机器上的目标数据库: ```plaintext your_service_name = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = hostname_or_ip)(PORT = port_number)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = your_service_name) ) ) ``` 完成上述修改后记得保存更改并关闭编辑器[^4]. #### 重启监听器服务 为了使新配置生效,需要重新启动监听器服务。可以在命令行界面执行如下指令实现这一点;也可以通过 Windows 的服务管理控制台找到对应的 Listener 项来进行操作。 Linux 或 macOS 下: ```bash lsnrctl stop lsnrctl start ``` Windows 上则可通过图形化界面,在“服务”窗口里定位至名为 “OracleOraDB19Home1TNSListener”的项目(具体名字可能依据安装情况有所不同),右键点击选择停止后再启动即可. 经过以上步骤处理之后再次测试连接状况应当有所改善。若仍然存在问题,则建议进一步排查其他潜在因素如防火墙规则等外部干扰源的影响。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值