我想知道是否有办法判断系统上的 Oracle 实例是否安装了数据库?

这是一个安装脚本,在继续将我自己的表空间加载到该数据库之前,我需要验证是否存在实际的数据库。以前有人解决过这个问题吗?

干杯

有帮助吗?

解决方案

检查是否存在ORACLE_HOME。期望为安装配置此环境也是合理的,因此测试环境变量并通过合理的诊断退出(可能建议他们运行oraenv)是一个良好的开端。如果您设置了ORACLE_HOME,ORACLE_SID或其他适当的环境变量,则可以检查是否存在oracle主目录并测试数据库连接和权限。

其他提示

对于 Oracle 10g,在 Windows 上:

  • 检查注册表:
    • 钥匙 HKLM\SOFTWARE\ORACLE 必须存在。
    • 必须存在一个子项:
      • 名字开头为 KEY_ (喜欢 KEY_OraDb10g_home1, ,结束字符串是 Oracle 主目录名称)。
      • 具有名称以以下开头的值 ORA_ 并以 _AUTOSTART. 。(喜欢 ORA_XE_AUTOSTART, ,中间字符串是实例名称)。

请注意,安装 Oracle 客户端(此时没有数据库实例)会在注册表中创建条目并可以设置环境变量(例如 ORACLE_HOME)。这就是为什么上面的模式有点复杂。

此模式很可能也适用于 Oracle 9i,也可能适用于 Oracle 8i。

您可以使用tnsping检查数据库侦听器是否处于活动状态,这将是一个很好的指示。除此之外,为什么不只是简单地进行测试连接?如果它是安装程序过程的一部分,如果您事先不知道它们将会是什么,则可以提示用户输入相应的连接凭据。

查找oracle home的/ etc / oratab文件。这些家庭安装了数据库软件以及该家庭的数据库名称。然后你可以通过启动它来检查数据库是否健全。

我不确定Oracle,但对于MySQL和PostgreSql,我会做以下事情:

$yum grouplist | grep SQL

返回:

MySQL Database client
MySQL Database server
PostgreSQL Database client
PostgreSQL Database server

所以我认为你应该尝试:

$yum grouplist | grep Orac
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top