當在運行lsnrctl時,或許會出現bash:lsnrctl/emctl command not found這樣的錯誤,不用着急,這個問題和第一個sqlplus命令未找到是類似的,我們也只需把$ORACLE_HOME/bin目錄下的lsnrctl文件拷貝到/bin目錄下(記得像問題1一樣,改變執行權限),就可以識別了。
而當在終端中運行emctl時,或許會出現ORACLE_HOME未定義問題。Environment variable ORACLE_SID not defined. Please define it。這樣根據提示,我們知道問題出在了哪,於是我們想,在哪裏才能讓它識別變量ORACLE_SID呢,Linux中都有幾個通用的特定文件。如~/.profile ~/.bash_profile ~/.bashrc等等,~這個符號代表當前用戶的主目錄,如當前用戶爲user,這樣~代表/home/user。上面給的幾個文件都是用來配置用戶環境的,如果你想讓你所運行的腳本識別這些問題,都必須打開並在後面添加這些變量。
對於剛纔$ORACLE_SID變量問題,解決方案就是在這些文件中添加ORACLE_SID,但是到底添加到哪個文件呢,你可以試着打開上面的這些文件,如果裏面存在東西,那就加在裏面,我的系統添加到的是~./bashrc,首先打開: vi ~./bashrc,然後添加
export ORACLE_SID=orcl,。然後 source ~./bashrc,使這個文件重新生效。
這樣,lsnrctl、emctl都可以順利通過了。