文档解释
ORA-12522: TNS:listener could not find available instance with given INSTANCE_ROLE
Cause: There are not any available and appropriate database instances registered with the listener, that are part of the service identified by SERVICE_NAME given in the connect descriptor and that have the specified INSTANCE_ROLE (and INSTANCE_NAME, if specified).
Action: Check to make sure that the INSTANCE_ROLE specified is correct. Run “lsnrctl services” to ensure that the instance(s) have registered with the listener and that they are ready to accept connections.
说明
ORA-12522: TNS:listener could not find available instance with given INSTANCE_ROLE是Oracle 数据库连接错误,提示当前listener没有发现可用的实例具有给定的实例角色。
官方解释
此错误消息通常是示出一个连接失败的消息,表明没有任何数据库实例以正确的权限和实例的角色(例如使用ASM实例的角色)在服务器上可用。
常见案例
大多数情况下,此错误是由于运行数据库实例的进程断开,使实例实际不可用,或者发生在定期重命名/重新站点实例。
正常处理方法及步骤
1.确保实例已启动,且可用。
2.检查数据库实例是否命名正确,确保没有命名冲突。
3.检查实例参数“remote_listener”设置是否正确,如果这些功能在您的系统上,确保已正确配置。
4.如果此错误是新的,检查当前Oracle实例的角色是否正确,此设置可能会由操作者改变,或者如果你有多个实例,一些可能会使用默认值,另一些可能不属于,也许你正在尝试连接到一个使用默认值的实例,而你的连接尝试是用一个特定的角色。
5.重启Listener服务,以确保它拥有正确的信息。
6.最后,重新尝试连接,如果错误仍然存在,请提供完整的系统信息给Oracle技术支持,以获得进一步的协助。