近日根據網上別人的相應腳本,在虛擬機上測試設置Oracle控制腳本的時候遇到以下問題:數據庫
在建立了Oracle控制腳本後,執行以下啓動命令時報錯:服務器
# services oracle9i stoporacle |
錯誤信息以下:ide
cat: /etc/oratab: 沒有那個文件或目錄測試 |
不使用建立的服務控制腳本執行Oracle數據庫的中止命令,而是直接使用Oracle的相關指令直接執行,進行逐條檢查。spa
1) 關閉Oracle監聽orm
# su - oracle -c "/opt/ora9/product/9.2/bin/lsnrctl stop"ip |
執行沒問題,正常經過。ci
2) 關閉Oracle數據庫虛擬機
#su - oracle -c "/opt/ora9/product/9.2/bin/dbshut" |
執行這條語句的時候出現上述錯誤,即「cat: /etc/oratab: 沒有那個文件或目錄」
進而,肯定是執行指令dbshut 時引發錯誤。
3) 打開dbshut 指令查看,發現了引發錯誤的語句:
: # # $Header: dbshut.sh.pp 03-apr-2001.13:38:20 jboyce Exp $ dbshut.sh.pp Copyr (c) 1991 Oracle # ################################### # # usage: dbshut # # This script is used to shutdown ORACLE from /etc/rc(.local). # It should ONLY be executed as part of the system boot procedure. # ##################################### ORATAB=/etc/oratab |
4) 查看相應的文件
# find /etc/oratab find: /etc/oratab: 沒有那個文件或目錄 |
這個文件竟然不存在,肯定是因爲該文件的丟失引發的緣由。
5) 經過以下指令查看該文件是否在系統其它地方
# find / -name 「oratab」 |
結果竟然沒找到。
估計是當初安裝Oracle的遺留問題。
因爲該文件已經丟失,因此到另一臺安裝了一樣版本的Oracle的服務器上查詢相應的文件,果真找到了相應的文件,內容以下:
# # This file is used by ORACLE utilities. It is created by root.sh # and updated by the Database Configuration Assistant when creating # a database. # A colon, ':', is used as the field terminator. A new line terminates # the entry. Lines beginning with a pound sign, '#', are comments. # # Entries are of the form: # $ORACLE_SID:$ORACLE_HOME:<N|Y>: # # The first and second fields are the system identifier and home # directory of the database respectively. The third filed indicates # to the dbstart utility that the database should , "Y", or should not, # "N", be brought up at system boot time. # # Multiple entries with the same $ORACLE_SID are not allowed. # # # *:/opt/ora9/product/9.2:N # *:/opt/ora9/product/9.2:N *:/opt/ora9/product/9.2:N oracle:/opt/ora9/product/9.2:N demo:/opt/ora9/product/9.2:N |
拷貝完之後必定記得要修改相應的內容。
P.S.對於oratab文件的說明:1.只在Linux環境中存在2.設置格式:<ORACLE_SID>:<ORACLE_HOME>:<Y|N> 示例:oracle:/opt/ora9/product/9.2:N3.能夠爲不一樣的數據庫設置相應的選項4.若是想用$ORACLE_HOME/bin/dbstart腳原本啓動數據庫,則須要將/etc/oratab文件中相應的數據庫的項置爲Y,簡單的說即dbstart腳本根據oratab文件中的配置決定啓動哪幾個數據庫。5.若是不使用dbstart腳本啓動數據庫,而是用本身的腳原本啓動,那麼根本不用關心oratab文件。