Linux
如何確定在 Linux 環境中安裝了多少個 Oracle 實例
前一天,我參加了一次有關 Oracle 安裝和服務啟動與關閉的培訓。在那裡,我了解了一些用於在 Linux 機器上啟動和關閉 Oracle 實例的 Linux 命令。
辨識正在執行的實例:下面的命令將返回目前在該機器上執行的所有 Oracle 實例。
ps -ef | grep pmon
此命令返回以下結果:
oracle 823 1 0 Dec03 ? 00:00:17 ora_pmon_instance1 oracle 19632 1 0 Nov17 ? 00:06:35 ora_pmon_instance2 oracle 24199 1 0 Nov20 ? 00:05:23 ora_pmon_instance3
其中
instance1
和是目前正在執行的 Linux 上的 3 個 Oracle 安裝instance2
。instance3
**我的查詢:**所以,
ps -ef
只會顯示目前正在執行的程序。假設,instance3
已關閉,您需要啟動該實例。但是,您不知道機器上有多少個 Oracle 實例。您如何知道此實例已關閉?
在 Windows 中,有一種稱為服務的方式,您可以在其中了解到這些安裝是在 Windows for Oracle 上完成的。
沒有萬無一失的方法,但這裡有一些想法供您參考:
/etc/oratab:
為您提供以下 SID 列表的小腳本
oratab
:cat /etc/oratab | grep -v '^#\|^\s*$' | cut -d: -f 1
$ORACLE_HOME/dbs
您可以修改上述腳本以查看 中
$ORACLE_HOME
列出的所有 soratab
,並蒐索任何實例的 initSID.ora 和 spfiles:for ORACLEHOME in `cat oratab | grep -v '^#\|^\s*$' | cut -d: -f 2 |uniq` do ls -1 $ORACLEHOME/init*.ora | sed -n 's/init\(.*\).ora/\1/p' ls -1 $ORACLEHOME/spfile*.ora | sed -n 's/spfile\(.*\).ora/\1/p' done
tnsnames.ora / listener.ora
另一種選擇是查看每個
$ORACLE_HOME/network/admin
並分析tnsnames.ora
和listener.ora
文件以查看已配置的實例。已經執行的實例
您已經在
pmon
搜尋中涵蓋了這一點。您還可以使用lsnrctl status
來查看偵聽器目前正在為哪些實例服務請求。