我想知道是否有办法判断系统上的Oracle实例是否安装了数据库?
这是针对安装脚本的,我需要在继续将自己的表空间加载到该数据库之前验证是否存在实际的数据库。有没有人以前解决过这个问题?
干杯
答案 0 :(得分:5)
检查是否存在ORACLE_HOME。期望为安装配置此环境也是合理的,因此测试环境变量并通过合理的诊断退出(可能建议他们运行oraenv)是一个良好的开端。如果您设置了ORACLE_HOME,ORACLE_SID或其他适当的环境变量,则可以检查是否存在oracle主目录并测试数据库连接和权限。
答案 1 :(得分:5)
对于Oracle 10g,在Windows上:
HKLM\SOFTWARE\ORACLE
必须存在。KEY_
开头(如KEY_OraDb10g_home1
,结束字符串为Oracle主页名称。)ORA_
开头并以_AUTOSTART
结尾的值。 (如ORA_XE_AUTOSTART
,中间字符串是实例名称。)注意,安装Oracle客户端(然后没有数据库实例),在注册表中创建条目并可以设置环境变量(如ORACLE_HOME
)。这就是上述模式有点复杂的原因。
这种模式很可能也适用于Oracle 9i,也可能适用于Oracle 8i。
答案 2 :(得分:4)
您可以使用tnsping
来检查数据库侦听器是否处于活动状态,这将是一个很好的指示。除此之外,为什么不只是简单地进行测试连接?如果它是安装程序过程的一部分,如果您事先不知道它们将会是什么,则可以提示用户输入相应的连接凭据。
答案 3 :(得分:0)
查找oracle home的/ etc / oratab文件。这些家庭安装了数据库软件以及该家庭的数据库名称。然后你可以通过启动来检查数据库是否健全。
答案 4 :(得分:0)
我不确定Oracle,但对于MySQL和PostgreSql,我会做以下事情:
$yum grouplist | grep SQL
返回:
MySQL Database client
MySQL Database server
PostgreSQL Database client
PostgreSQL Database server
所以我认为你应该尝试:
$yum grouplist | grep Orac