上一篇介紹了怎麼在Ubuntu上面安裝Oracle資料庫(見 ),整個安裝過程還算順利,但有些步驟沒有執行成功,或者直接選擇啦忽略,這可能導致安裝完之後,不能正常使用,出現很多小問題。下面一一介紹。
1、找不到命令,無論是lsnrctl 還是sqlplus,都提示:未找到命令。原因是環境變數沒有設定,開啟/etc/profile檔案,加入ORACLE_HOME這個環境變數。並將相關命令bin放到PATH後面。下面是profile檔案部分內容:
export ORACLE_HOSTNAME=localhost
export JAVA_HOME=/opt/jdk1.6.0_43
export JRE_HOME=/opt/jdk1.6.0_43/jre
export ORACLE_HOME=/opt/oracle/app/oracle/product/11.2.0/dbhome_1
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ORACLE_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/tools.jar:$JAVA_HOME%/lib/dt.jar:$JAVA_HOME/lib:$JRE_HOME/lib
上述操作應該有root許可權才行,之後執行 source /etc/profile ,使該檔案生效。注意回到oracle使用者(su oracle)後,還要執行一次 source /etc/profile,才可以生效,可以通過執行 echo $PATH 來查看相關命令是否添加成功。
2、經過步驟1之後,執行 lsnrctl start 啟動監聽服務,然後 sqlplus / as sysdba 出現,
ERROR:
ORA-12162: TNS:net service name is incorrectly specified
錯誤原因不詳,但是解決方案是在終端執行 export ORACLE_SID=orcl (或者將orcl固定在環境變數中,步驟同1),從解決方案也可以猜出問題所在了吧。
後出現
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor
解決方案:
修改$ORACLE_HOME\network\admin\listener.ora檔案
加上
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = 你的資料庫名稱)
(ORACLE_HOME = D:\oracle\product\10.1.0\db_1)
)
)
上面SID_NAME=orcl,然後重啟lisener服務,就ok了。
之後順利進入sqlplus環境,通過startup命令啟動資料庫。
3、無法通過網頁進入em,相關服務未啟動。在終端執行 emctl start dbconsole 後,出現
OC4J Configuration issue. /opt/oracle/app/oracle/product/11.2.0/dbhome_1/oc4j/j2ee/OC4J_DBConsole_wwr-ThinkPad-Edge_orcl not found.
但是這個檔案夾確實存在啊!可見提示的錯誤資訊未必是問題的真正原因。接下來
emca -config dbcontrol db -repos recreate 出現如下資訊:
oracle@wwr-ThinkPad-Edge:~$ emca -config dbcontrol db -repos recreate
EMCA 開始於 2013-6-14 20:59:58
EM Configuration Assistant, 11.2.0.0.2 正式版
著作權 (c) 2003, 2005, Oracle。著作權所有,並保留一切權利。
輸入以下資訊:
資料庫 SID: orcl
監聽程式連接埠號碼: 1521
監聽程式 ORACLE_HOME [ /opt/oracle/app/oracle/product/11.2.0/dbhome_1 ]: /bin/lsnrctl
SYS 使用者的口令:
DBSNMP 使用者的口令:
SYSMAN 使用者的口令:
通知的電子郵件地址 (可選):
通知的發件 (SMTP) 伺服器 (可選):
-----------------------------------------------------------------
已指定以下設定
資料庫 ORACLE_HOME ................ /opt/oracle/app/oracle/product/11.2.0/dbhome_1
本地主機名稱 ................ wwr-ThinkPad-Edge
監聽程式 ORACLE_HOME ................ /bin/lsnrctl
監聽程式連接埠號碼 ................ 1521
資料庫 SID ................ orcl
通知的電子郵件地址 ...............
通知的發件 (SMTP) 伺服器 ...............
-----------------------------------------------------------------
是否繼續? [是(Y)/否(N)]: y
2013-6-14 21:01:53 oracle.sysman.emcp.EMConfig perform
資訊: 正在將此操作記錄到 /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2013_06_14_20_59_58.log。
2013-6-14 21:01:54 oracle.sysman.emcp.EMConfig perform
嚴重: 監聽程式未啟動或資料庫服務未註冊到該監聽程式。啟動該監聽程式並註冊資料庫服務, 然後重新運行 EM Configuration Assistant。
有關詳細資料, 請參閱 /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2013_06_14_20_59_58.log 中的記錄檔。
無法完成配置。 有關詳細資料, 請參閱 /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2013_06_14_20_59_58.log 中的記錄檔。
接著百度“嚴重: 監聽程式未啟動或資料庫服務未註冊到該監聽程式。啟動該監聽程式並註冊資料庫服務, 然後重新運行 EM Configuration Assistant。”,找到如下解決方案
在終端執行,export ORACLE_HOSTNAME=localhost ,即設定ORACLE_HSOTNAME這個環境變數的值為localhost,再次啟動em相關服務(emctl start dbconsole),成功從網頁進入em。