从快照恢复服务器后出现 ORA-12514
ORA-12514 after restoring server from snapshot
我们有一系列Amazon Web Services 服务器运行 Amazon Linux 和本地应用程序使用的Oracle XE。 OracleXE 安装和运行正常,我们的应用程序可以连接到数据库,一切都很好。
对于我们的一个特定服务器,我们需要将其关闭并存档。今天,我需要把它放到网上。这是通过设置一个新的 AWS 实例,从备份快照创建一个新的虚拟硬盘驱动器,为服务器设置一个新的 public IP 并将 DNS 设置更改为旧域指向新 IP,连接将恢复后的虚拟光驱作为主光驱,启动。
OracleXE 不想工作。使用 sqlplus 连接到 localhost:1521/XE 生成 "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor".
当我第一次对它进行快照和存档时,这个系统工作得很好,并且自从恢复它之后我没有更改任何设置。一切都应该完全一样,那么为什么 OracleXE 现在不工作了?
listener.ora 和 tnsnames.ora 使用服务器的 public 域名定义了主机。我尝试将其更改为本地主机,但仍然无法正常工作。
我能想到的唯一不同的是服务器的 public IP 地址和 "rsa2 key fingerprint"(Putty 抱怨的是因为 SSH 密钥相同但它是一个新的 AWS 实例)。到目前为止,我看到的所有建议都是在设置新系统或重新启动后修复 ORA-12514 的配置错误,但这是一个工作正常但已从快照恢复的系统。
很可能,您的侦听器使用动态实例注册。
为此,您的侦听器必须侦听默认端口 (1521),或者您的实例必须使用定义侦听器地址的本地侦听器参数,实例应在其中注册它的存在。
因此,请检查您的 local_listener 参数,检查服务器 tnsnames.ora 和 listener.ora。同时检查您的客户端 tnsnames.ora,它应该指向您的新服务器和侦听器。
我们有一系列Amazon Web Services 服务器运行 Amazon Linux 和本地应用程序使用的Oracle XE。 OracleXE 安装和运行正常,我们的应用程序可以连接到数据库,一切都很好。
对于我们的一个特定服务器,我们需要将其关闭并存档。今天,我需要把它放到网上。这是通过设置一个新的 AWS 实例,从备份快照创建一个新的虚拟硬盘驱动器,为服务器设置一个新的 public IP 并将 DNS 设置更改为旧域指向新 IP,连接将恢复后的虚拟光驱作为主光驱,启动。
OracleXE 不想工作。使用 sqlplus 连接到 localhost:1521/XE 生成 "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor".
当我第一次对它进行快照和存档时,这个系统工作得很好,并且自从恢复它之后我没有更改任何设置。一切都应该完全一样,那么为什么 OracleXE 现在不工作了?
listener.ora 和 tnsnames.ora 使用服务器的 public 域名定义了主机。我尝试将其更改为本地主机,但仍然无法正常工作。
我能想到的唯一不同的是服务器的 public IP 地址和 "rsa2 key fingerprint"(Putty 抱怨的是因为 SSH 密钥相同但它是一个新的 AWS 实例)。到目前为止,我看到的所有建议都是在设置新系统或重新启动后修复 ORA-12514 的配置错误,但这是一个工作正常但已从快照恢复的系统。
很可能,您的侦听器使用动态实例注册。
为此,您的侦听器必须侦听默认端口 (1521),或者您的实例必须使用定义侦听器地址的本地侦听器参数,实例应在其中注册它的存在。
因此,请检查您的 local_listener 参数,检查服务器 tnsnames.ora 和 listener.ora。同时检查您的客户端 tnsnames.ora,它应该指向您的新服务器和侦听器。