茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1669318 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
PIMG_00009.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

環境:
[Server]
Windows 2008 Server
Oracle Database 11g R2

[Client]
Windows 7
Oracle Client 11g R2

Oracle Database安裝完後,在Client電腦也完成Oracle Client安裝,tnsnames.ora的配置也都完成了,但是使用sqlplus連線DB時卻出現下面的錯誤訊息。



在排除此問題前先確認,在Oracle Database 的本機使用sqlplus是可以連線的,由此先確定Database Service是有正常運作的。




目前遇過幾個況狀會導致這個錯誤訊息。

<狀況1>Server的主機網域(domain)錯誤或未指定,導致解析不到SID

tnsnames.ora的SERVICE_NAME必需加入網域名稱



<狀況2>Oracle Database Listener未定設SID

1. 登入sys帳號後,利用下面指令可以查出SID名稱。


select instance_name from v$instance;
INSTANCE_NAME
----------------
aehome

2. 檢查lListener服務狀態



發現沒有aehome的Listener,所以Client端才會無法利用TNS Name的方式連線。

3. 修改listener.ora,加入aehome的監聽。


4. 重新啟動Listener



重啟後發現已經有監聽aehome了。

5. 此時Client已可以正常使用sqlplus連線了。






原文出處:愛晴狂想曲: ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Oracle 新手常見錯誤小集

Oracle新手常見錯誤小集

關於「好的東西似乎總不是那麼好用(初看起來如此)」的一個笑話:在參加 IBM DB2 512、513培訓前,在校園網上下載到了安裝程式,不過任憑我們幾個同學研究個半天,也不知哪個檔是安裝檔,竟沒有安裝成功。 最後,一致認為:看來這個培訓真是太有必要了!事後,才知道--我們下載的是4linux的!
  [以8.1.6為例]:

  1、ORA-12541:TNS:沒有監聽器

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

  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:協定配接器錯誤(頑固性的)

  原因:未知。

  解決:必殺技--打開「Windows工作管理員」,殺死ORACLE.exe及ORADIM.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開頭的服務名。

原文出處:Oracle新手常見錯誤小集 @ 資訊園 :: 痞客邦 PIXNET ::
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]ORA-12541:TNS:no listener錯誤解決方法

Oracle ORA-12541:TNS:no listener錯誤解決方法

  前天裝好的Oracle,昨天突然不好用了,從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 = IBMThinkPad)(PORT = 1521))

   )

   )

   )

   當看到這一行HOST=IBMThinkPad的時候,問題解決了。原來是由于幾天裝好Oracle後,又改了Windows的計算機名,而這個配置文件中記錄的監聽主機名還是原來的名稱,這也就怪不得,OracleOraHome90TNSListener服務無法啓動了,馬上修改爲現在的計算機名,再次啓動OracleOraHome90TNSListener服務成功,PL/SQL Developer連接Oracle數據庫成功,不能登陸故障排除。


  本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/libinsoft/archive/2009/12/30/5105818.aspx

原文出處:Oracle ORA-12541:TNS:no listener錯誤解決方法 - 王朝網路 - wangchao.net.cn
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]ORA-12528 問題解決
ORA-12528問題解決

在 solaris 中運行了 lsnrctl stop 將 listener 停止,然後運行 lsnrctl start 將 listener 重新開機,出現問題及解決辦法如下:
lsnrctl status
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lypch)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))
Services Summary...
Service "LSExtProc" has 1 instance(s).
Instance "LSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ammicly" has 1 instance(s).
Instance "ammicly", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully

這個問題說明資料庫沒有Mount
連接資料庫,發現:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections

sqlplus /nolog
sql>connect [email=sys/ammic@amicly]sys/ammic@amicly[/email] as sysdba
ORA-12528: TNS:listener: all appropriate instances are blocking new connections

連接的問題可以通過修改 listener.ora 的參數,把動態的參數設置為靜態的參數,紅色標注部分,然後從新啟動監聽,就 OK
SID_LIST_LISTENER =(
  SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
    (PROGRAM = extproc)
    )
    (SID_DESC =
    (GLOBAL_DBNAME = ammicly)
    (ORACLE_HOME = c:\oracle\product\10.1.0\db_1)
    (SID_NAME = ammicly)
    )
  )
  LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
    )
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
  )
)

通過修改 tnsnames.ora 的參數,紅色表注部分
# tnsnames.ora Network Configuration File: C:\oracle\product\10.1.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
AMMICLY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = lypch )(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = ammicly)
    (UR=A)
    )
  )
  EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    )
)

然後
sqlplus /nolog
SQL>alter database mount;
SQL>alter database open;

這樣就可以啟動資料庫了;

或者用
Oradim -shutdown -sid ammicly -shuttype srvc,inst -shutmode immediate -syspwd ammic;

關閉資料庫
在用
oradim -startup -sid ammicly -starttype srvc,inst -syspwd ammic;

啟動資料庫解決;
也可以在截面上從啟動資料庫服務來解決;

總結 ORA-12528 問題是因為監聽中的服務使用了動態服務,系統啟動後,資料庫沒有正常的 MOUNT ,因此在動態模式下,就會出現這個問題,用靜態的就不會有這個問題,因此上面的方法就是把監聽設置為靜態,或者在 tnsnames.ora 中追加(UR=A)或者從啟動服務,三種方法解決問題;

-------------------------
用靜態註冊的風險是,如果在 instance 運行中,lisener 重新開機,就找不到 instance 了。換言之,靜態註冊需要先啟動 lisener,再啟動 instance。而且靜態模式下,lisener status 顯示的是 unknown 而且,用動態的話,instance nomount 狀態下,一般是 dba 需要進行操作(比如恢復),這個時候一般直接登陸到 host 進行,不使用 tns 遠端連線。

原文出處:ORA-12528問題解決 @ 資訊園 :: 痞客邦 PIXNET ::
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|