Linux 如何可靠地检查Oracle是否在远程主机上运行?

Linux 如何可靠地检查Oracle是否在远程主机上运行?,linux,oracle,Linux,Oracle,我们可以只检查远程端口(通常是1521)是否打开,但不幸的是Oracle在启动过程中打开了这个端口,因此我们不能依赖它。 还有其他想法吗?谢谢 (一些背景信息:我正在从bash脚本检查远程oracle主机) 更新:似乎只有oracle客户端软件才有可能好的,因为我们同意不将oracle的客户端内容包括到我们执行此检查的上下文中,所以我实现了一个最小的Java应用程序,如果oracle DB已启动并运行,则返回0,否则返回1。 可以从脚本重复调用此应用程序,直到它返回0。 在后台,我们正在使用JD

我们可以只检查远程端口(通常是1521)是否打开,但不幸的是Oracle在启动过程中打开了这个端口,因此我们不能依赖它。 还有其他想法吗?谢谢 (一些背景信息:我正在从bash脚本检查远程oracle主机)


更新:似乎只有oracle客户端软件才有可能

好的,因为我们同意不将oracle的客户端内容包括到我们执行此检查的上下文中,所以我实现了一个最小的Java应用程序,如果oracle DB已启动并运行,则返回0,否则返回1。 可以从脚本重复调用此应用程序,直到它返回0。
在后台,我们正在使用JDBC驱动程序连接到Oracle DB,并检查V_$INSTANCE/STATUS表。

您考虑过tnsping吗?tnsping测试侦听器和连接。一个问题:如果您的DBA正在对数据库执行阻止登录的操作,那么tnsping仍然可以返回。是的,oracle irc频道上的一些ppl告诉我,我唯一的工具是oracle客户端的东西,谢谢你可以把这个问题发到你的服务器上,然后运行一些简单的操作,比如从dual中选择,当然这需要一个用户+密码来进行检查。