ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA ORACLE 报错 故障修复 远程处理
文档解释
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
Cause: The listener was not configured with a default service and SERVICE_NAME was missing from the CONNECT_DATA received by the listener.
Action: Possible solutions are:
– Configure DEFAULT_SERVICE parameter in LISTENER.ORA with a valid service name. Reload the listener parameter file using reload []. This should be done by the LISTENER administrator.
– If using a service name, Check that the connect descriptor corresponding to the service name in TNSNAMES.ORA has a SERVICE_NAME or SID component in the CONNECT_DATA.
官方解释
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
翻译为:TNS侦听器未获得CONNECT_DATA中的SERVICE_NAME参数。
常见案例
当你尝试连接Oracle时,会发生此错误的常见案例有:
1. 给定错误的连接字符串;
2. 因为防火墙未配置正确而导致节点之间连接失败;
3. 连接字符串中使用的服务名称和TNS Listener上面定义的服务名称不一致;
4. TNS Listener已停止,导致连接被拒绝;
5. Oracle客户端配置项未正确配置。
正常处理方法及步骤
要正确处理此错误,请按照如下步骤操作:
1. 确保使用正确的TNS连接字符串,此字符串应作为参数传递给connect函数:
username@tns_alias
2. 确保两台服务器之间的网络功能正常。 如果你使用不同的网络,确保它们可以正常通信。 如果你使用VPN网络,确保VPN网络正常启动,并且数据库服务器上的数据库已正确设置;
3. 确保TNS Listener服务已启动,并且使用与给定连接字符串匹配的服务名称;
4. 确保Oracle客户端以正确的方式安装,配置,并更新。