Linux中Oracle安裝成功後,首次啟動使用時,會出現的一些問題總結和解決辦法

NO IMAGE

sqlplus命令不識別問題(bash :sqlplus command not found)

當你首次安裝oracle後,也許會出現這種情況,第一次或許有點棘手,不知道如何改怎麼辦。這時不用著急,想想Linux裡面的命令是如何執行的,如adduser等,我們發現是因為在/bin/資料夾下有這樣的一個檔案adduser,於是我們也想到了,把安裝好的oracle中bin目錄下的sqlplus檔案拷貝到/bin檔案目錄下,

cp /opt/app/oracle/product/10.2.0/db_1/bin/sqlplus /bin

拷貝後,終端中執行sqlplus,成功。

 

       注意:拷貝後,最好把執行許可權給所有的使用者,不然新建使用者不能使用。

       chmod 777 /bin/sqlplus

      

2、  啟動oracle服務問題

不同Linux系統oracle啟動檔案不同,如Ubuntu下,我們需要建立/etc/init.d/oracledb,而在kylin系統中,檔案在/etc/init.d/dbora,但位置都大致相同,我們只需要仔細找找都可以找到這樣的一個啟動服務檔案。當你執行這些檔案時,注意oracledb或dbora裡面的變數,ORACLE_HOME、ORACLE_SID、PATH等等,這些變數都需要我們根據自己所安裝的oracle目錄具體配置。配置時,使用命令export:

export ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1

路徑名看你安裝oracle路徑而定。

其他變數類似。

 

3、lsnrctl、emctl等命令的識別問題(bash:lsnrctl/emctl command not found)

       當在執行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都可以順利通過了。

 

4、  第一次安裝oracle不能執行任何命令

第一次安裝oracle後,發現sqlplus,lsnrctl等都不可以執行,即使把路徑走到$ORACLE_HOME/bin目錄下,也不可以。這是我是通過首先執行dbstart命令來解決的(走到安裝目錄的bin目錄下執行)。

 

5、  資料庫必須啟動

如果你上述都順利通過了,但是當你用sqlplus登入進去的時候,總是出錯。

登入使用預設方式:sqlplus / as sysdba。這是你應該是第一次登入到oracle資料庫中,資料庫還不能使用,這樣你必須使用startup mount、startup open命令解決。這樣資料庫就開啟了,你就可以使用整個資料庫了。如果開啟時失敗了,你可以先shutdown下,先關閉再開啟資料庫。

 

6、  不同使用者使用oracle問題

當你新建一個使用者時,你會發現emctl等其他一些命令又不可以使用了,這又是為什麼呢?當我們看錯誤出現的地方,發現存在變數未定義,這樣又回到了問題2、3了,因為這些變數未定義,所以不能夠成功執行。根據Linux系統所提供的每個使用者都有一個環境檔案,(.profile .bash_profile .bashrc)等,按照問題3,我們只需在這些檔案裡面加入所需要的變數就可以了,步驟和問題3一樣。