ORACLE_BASE和ORACLE_HOME的區別

swq618發表於2016-04-26
OFA(Optimal  Flexible  Architecture)
OFA 中有幾個關鍵目錄需要知道,包括:
oracle  inventory  目錄:
oracle  Base 目錄 (ORACLE_BASE);
Oracle  Home 目錄 (ORACLE_HOME);
Oracle  Network 目錄 (TNS_ADMIN)
Automatic  Diagnostic  Repository  (ADR_HOME)
1、Oracle Inventory 目錄
這個目錄不屬於ORACLE_BASE,它是和ORACLE_BASE同級的一個目錄。這個目錄用來儲存本機上所安裝的Oracle 軟體的目錄清單,本機上安裝的所有Oracle軟體都需要並且共享使用這個目錄。當我們第一次安裝Oracle軟體時,Oracle使用下面的幾條規則來尋找這個目錄。
(1)是否有OFA相容的目錄結構,所謂OFA相容就是指這個目錄符合/u01/app這樣的命名規範。如果有,安裝程式就會在這個目錄下建立,比如/u01/app/oraInventory。
(2)如果Oracle使用者的環境變數中定義了ORACLE_ BASE目錄,oraInventory在ORACLE_BASE的上層目錄,也就是說oraInventory目錄和ORACLE_BASE目錄在同一個層次。比如:ORACLE_BASE定義為/u01/app/oracle ,這個目錄就是/u01/app/oraInventory。
(3)如果安裝程式沒有找到OFA相容的目錄結構,也沒有發現ORACLE_BASE變數,則安裝會在Oracle使用者的HOME目錄下建立這個目錄,也就是/home/oracle/oraInventory目錄。

2、Oracle Base 目錄
Oracle Base 目錄是Oracle軟體安裝的最頂層目錄。這個目錄下可以安裝多個版本的Oracle軟體,OFA標準裡的Oracle Base目錄是這樣的:
/<mount_point>/app/<software_owner>
通常可能這樣:/u01/app/oracle

3、Oracle Home目錄
/u01/app/oracle/product/11.2.0/db_1

4、GRID 的Oracle Base 和Oracle  Home
不過Grid 的ORACLE_BASE 和ORACLE_HOME有所不同,GRID的ORACLE_HOME不能是ORACLE_BASE的子目錄,否則安裝會報錯。
ORACLE_BASE:/oracle/app/grid
ORACLE_HOME:/oracle/app/11.2/grid

在GRID安裝過程的root.sh會把GRID所在目錄的屬主改成root,而且會一直修改到頂層目錄,這樣一來就會影響到其他的Oracle軟體,所以,不能把GRID的oracle_home放到ORACLE_BASE的子目錄中。對於GRID來說,這兩個目錄是平行的

5、ORACLE_BASE、ORACLE_HOME環境變數
grid、Oracle 兩個使用者各自的設定是不同的:
GRID使用者的環境變數設定:
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2/grid
path=$ORACLE_HOME/bin:$PATH:$HOME/bin

oracle 使用者的環境變數設定:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
path=$ORACLE_HOME/bin:$PATH:$HOME/bin

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29674916/viewspace-2088828/,如需轉載,請註明出處,否則將追究法律責任。