由於項目要求,公司需要把一些項目的資料庫轉移成Oracle,而原來幾乎都是使用SqlServer的。突然間發現,2~3年的SqlServer開發和使用經驗,其實並沒有給我學習Oracle帶來多少優勢,相反在初學Oracle的時候,還經常被纏繞在腦中的SqlServer的很多模式所困擾。Oracle是一個系統而龐大的平台,其實已經不僅僅只是一個資料庫那麼簡單了。所以對我來說,無論是其管理還是開發,幾乎都是全新的。由此,也就只能卸下SqlServer的包袱,對Oracle,慢慢來吧...
這裡記錄下一些我在初學Oracle時遇到一些問題。有些問題可能比較菜一些,也過於雜亂,不過權給自己做個Oracle的學習筆記罷了。
by xpilot 2004/9/1
1.安裝Oracle後,更改Windows電腦名稱,導致部分Oracle第三方工具,如:PLSQL
Developer無法登陸,並提示ORA-12541:TNS:no listener或ORA-12547:TNS:丟失聯絡等錯誤資訊的解決方案。
答:從Oracle的錯誤提示來看,是說TNS:no listener ,估計是某種服務沒有啟動,開啟windows管理工具->服務,一看,有一個OracleOraHome90TNSListener這樣的服務,和錯誤資訊題是一致,基本就可以肯定是這個服務所引發的問題。再一看,該服務沒有啟動,遂手工啟動,重新整理後一看,該服務居然馬上就自動關閉了。重試N次,結果一樣。到Google搜尋看看,沒想到這還是一個普遍的問題,有一個人提出,把安裝目錄下的listener.ora開啟察看。如:d:\oracle\ora90\network\admin\listener.ora。
開啟該設定檔後發現如下一段配置資訊:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = local)(PORT = 1521))
)
)
)
當看到這一行HOST=local 的時候,問題解決了。原來是由於幾天裝好Oracle後,又改了Windows的電腦名稱,而這個設定檔中記錄的監聽主機名稱還是原來的名稱,這也就怪不得,OracleOraHome90TNSListener服務無法啟動了,馬上修改為現在的電腦名稱,再次啟動OracleOraHome90TNSListener服務成功,PL/SQL Developer串連Oracle資料庫成功,不能登陸故障排除。
總結:Oracle比較強調手動功能調整,將一些配置資訊放置在設定檔中。不像SqlServer一樣,幾乎把任何資訊都放在註冊表中,當然了這也符合Oracle作為一個跨平台資料庫的精神。但對初學者來說,確有一定難度,不像SqlServer那麼“傻瓜”,再解決這個問題時,差點又重裝一次Oracle,看來遇到問題多Google多分析,還是屢試不爽的。