文档解释
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Cause: The listener received a request to establish a connection to a database or other service. The connect descriptor received by the listener specified a service name for a service (usually a database service) that either has not yet dynamically registered with the listener or has not been statically configured for the listener. This may be a temporary condition such as after the listener has started, but before the database instance has registered with the listener.
Action:
– Wait a moment and try to connect a second time.
– Check which services are currently known by the listener by executing: lsnrctl services
– Check that the SERVICE_NAME parameter in the connect descriptor of the net service name used specifies a service known by the listener.
– If an easy connect naming connect identifier was used, check that the service name specified is a service known by the listener.
– Check for an event in the listener.log file.
这个错误表明,数据库实例没有注册到监听器中,客户连接时,未能找到请求的服务。
官方解释
常见案例
1. 数据库实例名称发生了变化,但未及时将新的实例名称注册到监听器中,此时客户端会收到这个错误;
2. 用户填写了错误的实例名称,或使用不正确的连接串,同样会报这个错误;
3. 数据库实例没有启动时也同样会报这个错误(因为实例没有注册到监听器中)。
正常处理方法及步骤
1. 确认数据库实例已经正确启动;
2. 确认tnsnames.ora文件配置的正确;
3. 如果以上都没有问题,使用lsnrctl status命令查看监听参数,查看与要连接的实例是否注册到监听器中,如果没有,使用lsnrctl reload修改重新加载监听器参数即可。