ORACLE_BASE 與 ORACLE_HOME

xz43發表於2010-12-23

簡單說,ORACLE_BASE是oracle公司所有產品的根目錄,而ORACLE_HOME則是oracle產品的目錄。

例如:如果裝了2個版本的oracle,那麼ORACLE_BASE可以是一個,但ORACLE_HOME是2個。

ORACLE_BASE目錄下有admin和product,而ORACLE_HOME目錄下則是ORACLE的命令、連線庫、安裝助手、listener等等一系列的東東。這只是ORACLE自己的定義習慣。ORACLE_HOME比ORACLE_BASE目錄要更深一些。也就是說:ORACLE_HOME=$ORACLE_BASE/product/version

如果我們要稍微調整ORACLE_BASE 和ORACLE_HOME引數,步驟如下:

1、root使用者登入;

2、跳轉到/home/oracle目錄下:cd /home/oracle,;

3、備份.bash_profile檔案:cp .bash_profile .bash_profile.bak;

4、編輯.bash_profile檔案中的相關項資訊,儲存並退出;

如果完全要修改Oracle的安裝目錄,則可以參考如下:

 Oracle修改目錄比較麻煩,因為Oracle裡很多shell程式都寫死了路徑。

 首先修改ORACLE_HOME、ORACLE_BASE到目標目錄下,使用relink all重新連結oracle 的目的碼,然後需要修改shell程式裡的絕對路徑。可以使用

  mkdir /tmp/oracle

  for i in `find . -name "*" | xargs file | grep "shell script" | awk -F: '{print $1}' `

  do

  F=`basename $i`

  cat $i | sed 's/\/opt\/oracle\//\/app\/oracle\//g' > /tmp/oracle/$F

  cp /tmp/oracle/$F $i

  done

  我是從/opt/oracle 切換到 /app/oracle下的,目錄不同可以修改。

  修改後首先修改/etc/oratab裡的路徑,修改$ORACLE_BASE/admin/sid/pfile/ 裡的init.ora檔案。把路徑改到相應的目錄上。

  刪除$ORACLE_HOME/dbs/spfile*.ora檔案。

  使用sqlplus / as sysdba

  create spfile from pfile=’$ORACLE_BASE/admin/sid/pfile/init.ora’ --重建spfile ;

  startup mount;

  alter database rename file ‘oldpath’ to ‘newpath’ 修改所有的資料檔案與日誌檔案到新的目錄下

  alter database open --能啟動就可以了

 

附:

ORACLE_SID 引數則是作業系統的環境變數。
在多個例項的伺服器中,ORACLE透過ORACLE_SID決定啟動哪個例項。一般,如果伺服器只有一個例項,ORACLE_SID的值和例項的名稱以及資料庫名稱相同。
在“我的電腦”的“環境變數”中建立名為“ORACLE_SID”的變數值設定成你想啟動的例項的名字。
舉例說明:
如果在linux系統,則在.bash_profile檔案中設定ORACLE_HOME=/oracle/product/10.2.0
ORACLE_BASE=/oracle

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

相關文章