![找出正在运行的Oracle实例的主目录](https://linux22.com/image/63538/%E6%89%BE%E5%87%BA%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84Oracle%E5%AE%9E%E4%BE%8B%E7%9A%84%E4%B8%BB%E7%9B%AE%E5%BD%95.png)
我们的系统中有两个oracle目录:
- 甲骨文
- 甲骨文
如何找出正在运行的 Oracle 实例使用了其中哪一个?
答案1
有几种方法可以找到它。他们中有一些:
1)最简单的方法是找出数据库进程正在以哪个用户身份运行,然后观察该用户是否设置了某些环境变量:
$ ps aux | grep ora_pmon
orauser 2653 (...) ora_pmon_DB
$ su - orauser -c "echo \$ORACLE_HOME"
/u21/oracle/product
2) 您可能还有一个/etc/oratab
.如果数据库在启动时自动启动,则此文件可能包含$ORACLE_HOME
.
3)您可以选择一个oracle进程并找出它的环境:
$ ps aux | grep ora_pmon
orauser 2653 (...) ora_pmon_DB
$ strings /proc/2653/environ | grep ORACLE_HOME
/u21/oracle/product
请注意,/proc/2653/environ
有一个特定的分隔符(显示为^@
)
4)如果您可以使用数据库访问权限sqlplus
,则可以尝试以下技巧:
SQL> @?/foobar.foo
小心!foobar.foo
不应该存在,所以你会收到类似的错误消息/u21/oracle/product/foobar.sql doesn't exist