oracle的監聽問題

流浪的野狼發表於2013-10-08

Microsoft Windows [版本 5.2.3790]
(C) 版權所有 1985-2003 Microsoft Corp.

C:\Documents and Settings\user1>lsnrctl

LSNRCTL for 32-bit Windows: Version 9.2.0.7.0 - Production on 27-8月 -2008 09:33
:43

Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

歡迎來到LSNRCTL,請鍵入"help"以獲得資訊。

LSNRCTL> status
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12541: TNS:無監聽器
TNS-12560: TNS: 協議介面卡錯誤
TNS-00511: 無監聽器
   32-bit Windows Error: 2: No such file or directory
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxx)(PORT=1521)))

TNS-12538: TNS:沒有此協議介面卡
TNS-12560: TNS: 協議介面卡錯誤
TNS-00508: 無此類協議介面卡

LSNRCTL> start
啟動tnslsnr:請稍候...

TNSLSNR for 32-bit Windows: Version 9.2.0.7.0 - Production
系統引數檔案為D:\oracle\ora92\network\admin\listener.ora
寫入D:\oracle\ora92\network\log\listener.log的日誌資訊
監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
監聽該物件時出錯: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxx)(PORT=
1521)))
TNS-12538: TNS:沒有此協議介面卡
TNS-12560: TNS: 協議介面卡錯誤
TNS-00508: 無此類協議介面卡

監聽程式未能啟動。請參閱上面的錯誤訊息...
ORA-12560: TNS: 協議介面卡錯誤的解決方法

造成ORA-12560: TNS: 協議介面卡錯誤的問題的原因有個:

1.監聽服務沒有起起來。可透過lsnrctl start啟動。

2.database instance沒有起起來。可啟動資料庫。startup

3.登錄檔問題。regedit,然後進入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0將該環境變數ORACLE_SID設定為你的oracle_sid即可。

通常透過上述方法即可啟動。

1、ORA-12541:TNS:沒有監聽器
  原因:沒有啟動監聽器或者監聽器損壞。netca重新配置監聽

2、ORA-12500:TNS:監聽程式無法啟動專用伺服器程式或ORA-12560:TNS:協議適配器錯誤
  原因:ORACLE的資料庫服務沒有啟動。使用命令net start ORACLESERVICEORADB
(ORADB為資料庫名字)即可。

3、如果資料庫服務啟動失敗,則很有可能是其登錄檔項值損壞,最好的做法是以下兩步:
  1)ORADIM -DELETE -SID oradb 刪除資料庫服務項
  2)ORADIM -NEW -SID oradb 新增資料庫服務項
  注:這個過程中如果出錯,就重啟計算機!
4、ORA-12154:TNS:不能解析服務名
  原因:ORACLE的網路服務名沒有正確配置。請使用“Net8 Configuration 
Assistant”工具嚮導之“本地網路服務名配置”配置TNS即可。

5、ORA-1034 :TNS:ORACLE不可用
  原因:ORACLE的資料庫服務正確啟動,但是資料庫沒有開啟!
  使用命令:
  1)svrmgrl 啟動服務管理器
  2)connect internal 以internal身份登陸
  3)startup 開啟資料庫
6、ORA-12560:TNS:協議介面卡錯誤(頑固性的)
  原因:未知。


  ORADIM.exe進
ORA-12560: TNS Protocol adapter error
Cause: A generic protocol adapter error occurred.
Action:Check addresses used for proper protocol specification. Beforereporting this error, look at the error stack and check for lower leveltransport errors.For further details, turn on tracing and reexecute theoperation. Turn off tracing when the operation is complete.

Thisis a high level error just reporting an error occurred in the actualtransport layer. Look at the next error down the stack and process that.


1.- Starting Listener with TCP/IP Protocol 
    
    Problem:
    You start the TNS Listener from command line and the TCP/IP address fails with a TNS-12560.

    Solution:
   Check if Microsoft Winsock Proxy(WSP) Client is enabled on the WindowsNT Server, if that is the case then go to windows Control 
Panel, click WSP icon and select the disable Proxy Client option.

    Explanation:
   The Winsock application may fail to bind to a specific port on a ProxyServer computer when the Winsock is running Proxy Client.

2.- TNS-12560 TNS-512 Starting the listener.

    Problem:
    You try to start up the listener and receive the following error stack:
    TNS-12542: TNS:address already in use
     TNS-12560: TNS Protocol adapter error
      TNS-00512: Address already in use
       32-bit Windows Error: 48: Unknown error

    Error: TNS 512
    Text:   Address already in use
    --------------------------------------------
    Cause: Specified listener address is already being used.
    Action: Start your listener with an unused address.

    Generally this problem may ocurr for a incorrect setting in the listener.ora. Some causes of this problems may be:
    
   a.- Some defined address in the listeners.ora is been used. Make sureother listeners are not running. Either listener.log and screen 
outp

ut appear the address with problem.
        
    b.- Just for 8i: in windows NT the algorithm to acquire 
        the address has change, please check the Note 69026.1: Oracle 8i and socket LISTEN operations.

   Explanation:
   The listener will try to acquire the address in exclusive mode, if this 
is been used then the process to get it will fail. 
    
3.- Starting the listener the errors ORA-12203,ORA-12560, NL-462 or NL-427 may be raised.

    Problem:
    You try to start up the listener and receive the following errors 
    ORA-12203,ORA-12560, NL-462 or NL-427.

    Solution:
    Recreate the listener.ora file.

    Explanation:
    Some corruption in the listener.ora may get unable to the tnslsnr to work adequatly.


4.- Failed to start service, TNS-12560, TNS-00530 when create new listener services

    Problem: 
   To recreate Oracle TNS listener service on Windows NT, you delete theservice entry in registry. When using lsnrctl to start the listener,you get the following errors:

    LSNRCTL> start
    Starting tnslsnr: please wait...

    Failed to start service, error 3.

    TNS-00530: Protocol adapter error

    The Listener service is not recreated and the Listener would not start.
    You are using a valid listener.ora file and protocol adapters.


    Solution:
    After you delete the Listener service from registry, you have to reboot 
NT for it to take effect. Then you can use lsnrctl to start the Listener, which would re-create the listener service.


    Explanation:
    The Listener service is marked 'disabled', but it still exists after 
you delete the service from registry.

此外,今天遇到一個無法找到相應服務名的錯誤,最終是透過設定global_names=true。來解決的。

通常在資料庫中與監聽相關的引數有如下,也可結合這幾個引數來做相應的調整解決監聽問題。

service_names、local_listener、global_names、instance_name(或者sid_name)

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

相關文章