關於dbstart指令碼啟動資料庫後無法使用sqlplus /nolog連線的問題

BTxigua發表於2007-08-18

問題描述:
如果用dbstart啟動資料庫,啟動正常,用dbstop也能正常關閉。
如果用sqlplus /nolog連線資料庫,在startup正常,shutdown也正常。
若用dbstart啟動資料庫,之後用sqlplus /nolog連線,則出現以下錯誤
sqlplus /nolog
SQL> connect /as sysdba
Connected to an idle instance.
SQL> alter TABLESPACE "SMG_RUNINDEX" add DATAFILE
2 '/dev/rlv_data8_013' SIZE 8190M REUSE AUTOEXTEND OFF;
alter TABLESPACE "SMG_RUNINDEX" add DATAFILE
*
ERROR at line 1:
ORA-01034: ORACLE not available


解決方法:
該問題的出現,主要是由於以下兩個ORACLE_HOME環境變數設定不一致的原因導致的。
.profile中的ORACLE_HOME
在使用sqlplus /nolog登陸時,系統使用.profile中定義的環境變數ORACLE_HOME的值。
dbstart中的ORACLE_HOM
在使用dbstart的時候,我們可以從指令碼定義看到實際上是使用/etc/oratab檔案來確定的ORACLE_HOME值和ORACLE_SID的值。

/etc/oratab的主要內容如下:
ora92:/home/oracle/app/oracle/product/9.2:Y
在這裡:ORACLE_SID=ora92;ORACLE_HOME=/home/oracle/app/oracle/product/9.2

/etc/oratab是在oracle安裝時執行root.sh時讀取.profile環境變數生成的,所以正常情況下,上面的兩個ORACLE_HOME的值應該是相同的。所以導致上面的原因基本是因為在安裝完成之後修改了.profile中ORACLE_HOME變數值所導致。比如經常的是安裝時
ORACLE_HOME=/home/oracle/app/oracle/product/9.2/
安裝之後,發現上面好像最後多了個/,所以修改為
ORACLE_HOME=/home/oracle/app/oracle/product/9.2
這就導致了前面的錯誤。

[@more@]

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

相關文章