♣
问题
在Oracle中,在没有配置ORACLE_HOME环境变量的情况下,如何快速获取数据库软件的ORACLE_HOME目录?
♣
答案
若配置了ORACLE_HOME环境变量,则可以通过“echo $ORACLE_HOME”来直接获取,如下所示:
[oracle@edsir4p1-PROD2 ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/dbhome_1
[oracle@edsir4p1-PROD2 ~]$ sqlplus -v
SQL*Plus: Release 11.2.0.1.0 Production
若没有配置ORACLE_HOME环境变量,则可以通过“more /etc/oratab”来直接获取,如下所示:
[oracle@edsir4p1-PROD2 ~]$ more /etc/oratab
PROD1:/u01/app/oracle/product/11.2.0/dbhome_1:N
PROD2:/u01/app/oracle/product/11.2.0/dbhome_1:N
若数据库已启动监听程序,则可以通过“ps -ef|grep tns”来直接获取,如下所示:
[oracle@edsir4p1-PROD2 ~]$ ps -ef|grep tns
oracle 5683 1 0 05:30 ? 00:00:00 /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr LISTENER -inherit
oracle 6344 5357 0 05:48 pts/2 00:00:00 grep tns
另外,若在同一个主机上,安装了不同版本的数据库软件,则可以通过pmap命令来查看ORACLE_HOME的路径,pmap提供了进程的内存映射,用于显示一个或多个进程的内存状态。如下所示:
[root@rhel6lhr ~]# ps -ef|grep pmon
grid 3760 1 0 07:18 ? 00:00:02 asm_pmon_+ASM
oracle 40923 1 0 09:51 ? 00:00:02 ora_pmon_orclasm
oracle 52933 1 0 15:53 ? 00:00:00 ora_pmon_ora10g
root 59716 51804 0 16:15 pts/0 00:00:00 grep pmon
[root@rhel6lhr ~]# pmap 40923 | grep dat
00007f2ab564b000 4K rwxs- /u01/app/oracle/product/11.2.0/dbhome_1/dbs/hc_orclasm.dat
[root@rhel6lhr ~]# pmap 52933 | grep dat
00007f1fab8da000 4K rwxs- /u02/app/oracle/product/10.2.0/dbhome_1/dbs/hc_ora10g.dat
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
DB宝分享的IT资料:https://mp.weixin.qq.com/s/Iwsy-zkzwgs8nYkcMz29ag
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处