程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 簡析Oracle數據庫常見問題及解決方案,簡析oracle常見問題

簡析Oracle數據庫常見問題及解決方案,簡析oracle常見問題

編輯:Oracle教程

簡析Oracle數據庫常見問題及解決方案,簡析oracle常見問題


Oracle數據庫在使用的過程中常常會遇到這樣或那樣的問題,而這些問題常常又使我們感到很困惑,本文我們總結了Oracle數據庫在使用過程中的一些問題,並給出了解決方法,下面我們就開始分析一下這些問題。

一、oracle監聽啟動後,立即停止。

TNS-12545: 因目標主機或對象不存在,連接失敗。

TNS-12560: TNS: 協議適配器錯誤。

TNS-00515: 因目標主機或對象不存在,連接失敗。

32-bit Windows Error: 1004: Unknown error。

不再監聽: (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,在 監聽程序/LISTENER 下直接修改主機即可 

二.錯誤碼及解決辦法

1.ORA:-12545:因目標主機和對象不存在,連接失敗。

錯誤代碼ORA-12545表示網絡連接串(即tnsnames.ora文件中的HOST處)中使用的機器名和IP地址不存在,重新修改和重新連接即可。

2.ORA-12651:TNS:沒有監聽器。

該信息說明所要連接的服務器沒有啟動監聽進程Listener(該進程為Oracle服務器上操作系統進程,監聽進程沒有啟動時,服務器可以正常進行,但是客戶端不能與服務器產生連接。這時可以在服務器使用操作系統命令lsnrctl正常起啟動監聽進程)。

3.ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 。

產生原因:這種錯誤通常為ORACLE的內部錯誤,只對OSS和ORACLE開發有用。ORA-600的錯誤經常伴隨跟蹤文件的狀態轉儲(系統狀態和進程狀態),系統狀態存儲將包括ORACLE RDBMS持有的當前對象的信息,進程狀態轉儲則將顯示特殊進程持有的對象,當進程符合了某錯誤條件時,經常是由於一些信息取自它持有的一個塊,如果我們知道這些錯誤進程持有的塊,就容易跟蹤問題的來源。

解決方法:一般來說出現這個錯誤我們本身是無法解決的,只有從提高系統本身各方面來解決這個內部問題,如增加硬件設備,調整系統性能,使用OPS(當然OPS從某種意義上說並不是一種好的解決方式)等。ORA-600錯誤的第一個變量用於標記代碼中錯誤的位置(代碼中的每個部分的第一變量都不一樣),從第二個到第五個變量顯示附加信息,告訴OSS代碼在哪裡出現了錯誤

4.ORA-12560  協議適配器錯誤:

有關ORA-12560: TNS:協議適配器錯誤的問題

①.檢查Terminal Service, 遠程桌面是不是起因。

②.環境變量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:系統找不到指定的路徑。

查看屬性發現,OracleOraDb10g_home1TNSListener 服務的可執行文件的路徑為空。

解決辦法:

開始-->運行REGEDIT -->進入注冊表找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleOraDb10g_home1TNSListener

發現ImagePath關鍵值沒有了,新建一個名為ImagePath的可擴充字符串值,編輯字符串的數值數據為:Oracle安裝路徑/BIN/TNSLSNR

7.錯誤描述:本地計算機上的OracleOraDb10g_home1TNSListener服務啟動後又停止了。一些服務自動停止,如果它們沒有什麼可做的,例如 "性能日志和警報 "服務。

解決辦法:C:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora把這這文件裡的內容改下 HOST=你的計算機名字。

關於Oracle數據庫的問題及解決方法就介紹到這裡,希望能夠對您有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved