Oracle新手最經常碰到的6個錯誤及解決方案

polalisi發表於2007-08-26

1ORA12541TNS:沒有監聽器 原因:沒有啟動監聽器或者監聽器損壞。如果是前者,使用命令net start OracleOraHome81TNSListener(名字可能有出入)即可;如果是後者,則使用“Net8 Configuration Assistant”工具嚮導之監聽程式配置增加一個監聽器即可(基本不用寫任何資訊,一路OK。在新增之前可能需要把所有的監聽器先刪除!)

2
ORA12500TNS:監聽程式無法啟動專用伺服器程式
ORA
12560TNS:協議介面卡錯誤 原因:ORACLE的資料庫服務沒有啟動。使用命令net start ORACLESERVICEORADBORADB為資料庫名字)即可。如果仍沒有解決,請繼續向下看。

3
、如果資料庫服務啟動失敗,則很有可能是其登錄檔項值損壞,最好的做法是以下兩步:
1
ORADIM -DELETE -SID oradb 刪除資料庫服務項
2
ORADIM -NEW -SID oradb 新增資料庫服務項 注:這個過程中如果出錯,就重啟計算機!

4
ORA12154TNS:能解析服務名 原因:ORACLE的網路服務名沒有正確配置。請使用“Net8 Configuration Assistant”工具嚮導之本地網路服務名配置配置TNS即可。如果仍沒有解決,請繼續向下看。

5
ORA1034 TNSORACLE不可用 原因:ORACLE的資料庫服務正確啟動,但是資料庫沒有開啟! 使用命令:
1
svrmgrl 啟動服務管理器
2
connect internal internal身份登陸
3
startup 開啟資料庫

6
ORA12560TNS:協議介面卡錯誤(頑固性的) 原因:未知。 解決:必殺技--開啟“Windows工作管理員,殺死ORACLE.exeORADIM.exe程式,書寫自己的ora_startup.bat,執行之!


PS

1
、我的ora_startup.bat
net start OracleOraHome81TNSListener
net start ORACLESERVICEORADB
svrmgrl
一般情況下不用,不過有時少不了它的,具體步驟見第5步。

2
、我的ora_shutdown.bat
net stop OracleOraHome81TNSListener
net stop ORACLESERVICEORADB

3
ORACLE相關服務名請參見管理工具服務中以ORACLE開頭的服務名。
以下是刪除服務項的一些辦法做參考,從中不難發現你看不到相關服務項的原因。
方法一:
1.
執行regedit
2.
選擇HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
3.
選中需要刪除的SERVICE,將其刪除 重新啟動後就可以了 該文章轉載自[程式設計助理站]
方法二:
1
、開始->設定->控制皮膚->管理工具->服務停止所有Oracle服務。
2
、開始->程式->Oracle - OraHome81->Oracle Installation Products->Universal Installer 卸裝所有Oracle產品,但Universal Installer本身不能被刪除
3
、執行regedit,選擇HKEY_LOCAL_MACHINESOFTWAREORACLE,按del鍵刪除這個入口。
4
、執行regedit,選擇HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices,滾動這個列表,刪除所有Oracle入口。
5
、執行regedit
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplication
刪除所有Oracle入口。
6
、開始->設定->控制皮膚->系統->高階->環境變數 刪除環境變數CLASSPATHPATH中有關Oracle的設定
7
、從桌面上、STARTUP(啟動)組、程式選單中,刪除所有有關Oracle的組和圖示
8
、刪除Program FilesOracle目錄
9
、重新啟動計算機,重起後才能完全刪除Oracle所在目錄
10
、刪除與Oracle有關的檔案,選擇Oracle所在的預設目錄C:Oracle,刪除這個入 口目錄及所有子目錄,並從Windows 2000目錄(一般為C:WINNT)下刪除以下文 ORACLE.INIoradim73.INIoradim80.INIoraodbc.ini等等。
11
WIN.INI檔案中若有[ORACLE]的標記段,刪除該段
12
如有必要,刪除所有Oracle相關的ODBCDSN
13
到事件檢視器中,刪除Oracle相關的日誌
說明: 到現在為止,你還是可以發現在服務裡面還有oracle的服務存在,必須把他刪除,否則你再安裝oracle時就會出現什麼服務已經存在的錯誤提示了!!而這些服務是在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRoot下以LEGACY_ORACLE打頭的,而且你選種按delete刪除時系統會提示你一個錯誤!!不讓你刪除!!!現提供具體刪除方法,win2000的如下:
執行regedt32注意了,不是regedit!!!!在HKEY_LOCAL_MACHINE那頁找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRoot先選中ROOT然後點選單上的安全-許可權把自己新增到裡面,並且許可權設定為完全控制,確定後再刪除ROOT下所有LEGACY_ORACLE打頭的鍵,同樣的方法也可以把HKEY_LOCAL_MACHINESYSTEMControlSet001HKEY_LOCAL_MACHINESYSTEMControlSet002兩個下面EnumRoot下所有LEGACY_ORACLE打頭的鍵刪除,重新啟動計算機可以發現,服務裡面的那些都沒有了!! winXP中就比較簡單了,還是執行regedit,找到LEGACY_ORACLE打頭的鍵後右擊,選擇許可權,同樣將everyone設定為完全控制就可以刪除了!刪除後重新啟動一下就可以了!! 如果有個別DLL檔案無法刪除的情況,則不用理會,重新啟動,開始新的安裝,安裝時,選擇一個新的目錄,則,安裝完畢並重新啟動後,老的目錄及檔案就可以刪除掉了。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10455649/viewspace-966156/,如需轉載,請註明出處,否則將追究法律責任。

相關文章