Oracle數據庫在使用的過程中常常會遇到這樣或那樣的問題,而這些問題常常又使我們感到很困惑,本文我們總結了Oracle數據庫在使用過程中的一些問題,并給出了解決方法,下面我們就開始分析一下這些問題。
一、oracle監(jiān)聽啟動后,立即停止。
TNS-12545: 因目標主機或對象不存在,連接失敗。
TNS-12560: TNS: 協(xié)議適配器錯誤。
TNS-00515: 因目標主機或對象不存在,連接失敗。
32-bit Windows Error: 1004: Unknown error。
不再監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC0ipc)))。
原因是我安裝了oracle之后,又修改了主機名。
解決方法:
1.直接修改listener.ora
路徑是: oracle安裝目錄/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora.
修改HOST 為主機名或者IP.
2.通過 Net Manager,在 監(jiān)聽程序/LISTENER 下直接修改主機即可
二.錯誤碼及解決辦法
1.ORA:-12545:因目標主機和對象不存在,連接失敗。
錯誤代碼ORA-12545表示網絡連接串(即tnsnames.ora文件中的HOST處)中使用的機器名和IP地址不存在,重新修改和重新連接即可。
2.ORA-12651:TNS:沒有監(jiān)聽器。
該信息說明所要連接的服務器沒有啟動監(jiān)聽進程Listener(該進程為Oracle服務器上操作系統(tǒng)進程,監(jiān)聽進程沒有啟動時,服務器可以正常進行,但是客戶端不能與服務器產生連接。這時可以在服務器使用操作系統(tǒng)命令lsnrctl正常起啟動監(jiān)聽進程)。
3.ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 。
產生原因:這種錯誤通常為ORACLE的內部錯誤,只對OSS和ORACLE開發(fā)有用。ORA-600的錯誤經常伴隨跟蹤文件的狀態(tài)轉儲(系統(tǒng)狀態(tài)和進程狀態(tài)),系統(tǒng)狀態(tài)存儲將包括ORACLE RDBMS持有的當前對象的信息,進程狀態(tài)轉儲則將顯示特殊進程持有的對象,當進程符合了某錯誤條件時,經常是由于一些信息取自它持有的一個塊,如果我們知道這些錯誤進程持有的塊,就容易跟蹤問題的來源。
解決方法:一般來說出現這個錯誤我們本身是無法解決的,只有從提高系統(tǒng)本身各方面來解決這個內部問題,如增加硬件設備,調整系統(tǒng)性能,使用OPS(當然OPS從某種意義上說并不是一種好的解決方式)等。ORA-600錯誤的第一個變量用于標記代碼中錯誤的位置(代碼中的每個部分的第一變量都不一樣),從第二個到第五個變量顯示附加信息,告訴OSS代碼在哪里出現了錯誤
4.ORA-12560 協(xié)議適配器錯誤:
有關ORA-12560: TNS:協(xié)議適配器錯誤的問題
①.檢查Terminal Service, 遠程桌面是不是起因。
②.環(huán)境變量set oracle_sid=需要的服務名。
③.listener.ora, tnsnames.ora等內機器名或者IP地址是否正確。
④.netstat –a檢查端口是否被占用。
⑤.檢查注冊表HKEY_LOCAL_MACHINE/Software/Oracle/Home0新增字符串USE_SHARED_SOCKET=TRUE, 重新啟動服務。
5.ORA-28595: Invalid DLL Path 調用外部DLL出錯
原因:A setting in Oracle's LISTENER.ORA file on the server hosting the RDBMS is missing.
解決辦法:
(1).Locate the active LISTENER.ORA file on the server. By default, it will be on the Oracle RDBMS drive in the path ../ora92/network/admin.
(2).Inspect the file and locate all entries associated with "SID_DESC". Each such entry should have the following option associated with it:
(ENVS = "EXTPROC_DLLS=ANY")
(3).Add the above line to any entry where it is missing.
(4).Restart the Oracle Listener Service (or reboot the server which will in turn restart Oracle).
例子:
The example LISTENER.ORA file below shows a valid configuration for the server named "WOODY" (using TCP/IP on Port 1521) with the correct ENVS entries highlighted:
# LISTENER.ORA Network Configuration File: C:/oracle/ora92/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = woody)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:/oracle/ora92)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ANY")
)
(SID_DESC =
(GLOBAL_DBNAME = WOODY)
(ORACLE_HOME = C:/oracle/ora92)
(SID_NAME = WOODY)
(ENVS = "EXTPROC_DLLS=ANY")
)
)
6.在控制面板中啟動服務,出現以下錯誤:
服務:在本地計算機無法啟動OracleOraDb10g_home1TNSListener 服務。
錯誤3:系統(tǒng)找不到指定的路徑。
查看屬性發(fā)現,OracleOraDb10g_home1TNSListener 服務的可執(zhí)行文件的路徑為空。
解決辦法:
開始-->運行REGEDIT -->進入注冊表找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleOraDb10g_home1TNSListener
發(fā)現ImagePath關鍵值沒有了,新建一個名為ImagePath的可擴充字符串值,編輯字符串的數值數據為:Oracle安裝路徑/BIN/TNSLSNR
7.錯誤描述:本地計算機上的OracleOraDb10g_home1TNSListener服務啟動后又停止了。一些服務自動停止,如果它們沒有什么可做的,例如 "性能日志和警報 "服務。
解決辦法:C:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora把這這文件里的內容改下 HOST=你的計算機名字。
關于Oracle數據庫的問題及解決方法就介紹到這里,希望能夠對您有所幫助。
您可能感興趣的文章:- python安裝cx_Oracle模塊常見問題與解決方法
- ORACLE數據庫應用開發(fā)常見問題及排除
- JDBC連接Oracle數據庫常見問題及解決方法
- Oracle 常見問題解答
- Oracle全角數字轉換半角數字
- Oracle連續(xù)相同數據的統(tǒng)計
- oracle常用分析函數與聚合函數的用法
- Oracle相關組件版本信息的介紹
- 運行在容器中的Oracle XE-11g
- Oracle常見問題解決方案匯總