Linux

如何確定在 Linux 環境中安裝了多少個 Oracle 實例

  • December 4, 2015

前一天,我參加了一次有關 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 安裝instance2instance3

**我的查詢:**所以,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列出的所有 s oratab,並蒐索任何實例的 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.oralistener.ora文件以查看已配置的實例。

已經執行的實例

您已經在pmon搜尋中涵蓋了這一點。您還可以使用lsnrctl status來查看偵聽器目前正在為哪些實例服務請求。

引用自:https://dba.stackexchange.com/questions/122874