ORA-12505 錯誤解決
在Fedora下安裝了Oracle 10gR2,安裝完成之後,使用netca建立了監聽,建立的時候沒有使用預設的LISTENER和1521埠,而是使用了LISTENER_DELL和1522埠,終端下顯示完成,然後在$ORACLE_HOME/network/admin/tnsnames.ora下增加一個tns別名。
加好之後,如下登入
登入之後就報錯了,ORA-12505,按說監聽方面的錯誤還是很好解決的,結果檢查了監聽也是正常啟動的,但就是無法按照@DELL來登入,將tnsnames.ora裡面SID = dell 改成 SERVER_NAME = dell 還是一直報錯ORA-12505, TNS:listener does not currently know of SID given in connect descriptor。
再次嘗試登入,發現還是同樣的錯誤。於是突然想到Oracle肯定一直是以LISTENER這個並未啟動的監聽來來Oracle提供監聽資訊,而我並沒有使用預設監聽名稱所以造成這個錯誤,於是給監聽檔案listener.ora新增SID資訊。
DELL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = dell)
) ) |
sqlplus /nolog connect scott/tiger@dell |
然後發現$ORACLE_HOME/network/admin/目錄下沒有sqlnet.ora檔案,執行netca,設定命名方法,執行之後sqlnet.ora檔案有了,內容如下:
more sqlnet.oraNAMES.DIRECTORY_PATH= (TNSNAMES) |
LISTENER_DELL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = avon)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_LISTENER_DELL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
新增SID資訊 (見藍色加粗字型) SID_LIST_LISTENER_DELL =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dell)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = dell)
)
)
加好之後儲存退出 :wq
進行測試,還是報錯,發現tnsnames.ora 裡面我設定的是SERVER_NAME,於是給改成SID = dell 再次測試
sqlplus /nolog SQL> conn scott/tiger@dell Connected. |
OK,一切正常。
後記:在windows下也進行了同樣的嘗試,發現如果不使用LISTENER作為預設監聽名稱 埠不為1521的話,也會導致這個錯誤,而解決方法和上面一致。 不過並沒有嘗試名稱為LISTENER但是埠不為1521的情況。
C:\Windows\system32>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 13-9月 -2010 23:2
6:34
6:34
Copyright (c) 1991, 2006, Oracle. All rights reserved.
歡迎來到LSNRCTL, 請鍵入"help"以獲得資訊。
LSNRCTL> status
正在連線到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS: 無監聽程式
TNS-12560: TNS: 協議介面卡錯誤
TNS-00511: 無監聽程式
32-bit Windows Error: 61: Unknown error
LSNRCTL> set current_listener LISTENER_DEMO
目前的監聽程式為 LISTENER_DEMO
LSNRCTL> status
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
別名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
啟動日期 13-9月 -2010 23:17:13
正常執行時間 0 天 0 小時 9 分 41 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式引數檔案 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服務摘要..
服務 "PLSExtProc" 包含 1 個例程。
例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
LSNRCTL> status
正在連線到 (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS: 無監聽程式
TNS-12560: TNS: 協議介面卡錯誤
TNS-00511: 無監聽程式
32-bit Windows Error: 61: Unknown error
LSNRCTL> set current_listener LISTENER_DEMO
目前的監聽程式為 LISTENER_DEMO
LSNRCTL> status
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
別名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
啟動日期 13-9月 -2010 23:17:13
正常執行時間 0 天 0 小時 9 分 41 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式引數檔案 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服務摘要..
服務 "PLSExtProc" 包含 1 個例程。
例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
以上為出現ORA-12505錯誤時,監聽的狀態,
以下為修改正常,監聽重啟後的狀態
LSNRCTL> set current_listener LISTENER_DEMO
目前的監聽程式為 LISTENER_DEMO
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
命令執行成功
LSNRCTL> start
啟動tnslsnr: 請稍候...
目前的監聽程式為 LISTENER_DEMO
LSNRCTL> stop
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
命令執行成功
LSNRCTL> start
啟動tnslsnr: 請稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Production
系統引數檔案為D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入D:\oracle\product\10.2.0\db_1\network\log\listener_demo.log的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
系統引數檔案為D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入D:\oracle\product\10.2.0\db_1\network\log\listener_demo.log的日誌資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scott-PC)(PORT=1522)))
LISTENER 的 STATUS
------------------------
別名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
啟動日期 13-9月 -2010 23:35:14
正常執行時間 0 天 0 小時 0 分 6 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式引數檔案 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服務摘要..
服務 "PLSExtProc" 包含 1 個例程。
例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
服務 "demo" 包含 1 個例程。
例程 "demo", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
LISTENER 的 STATUS
------------------------
別名 LISTENER_DEMO
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.3.0 - Produ
ction
啟動日期 13-9月 -2010 23:35:14
正常執行時間 0 天 0 小時 0 分 6 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式引數檔案 D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
監聽程式日誌檔案 D:\oracle\product\10.2.0\db_1\network\log\listener_dem
o.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=scott-PC)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))
服務摘要..
服務 "PLSExtProc" 包含 1 個例程。
例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
服務 "demo" 包含 1 個例程。
例程 "demo", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-673732/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ocelot錯誤解決
- 解決 Python UnicodeEncodeError 錯誤PythonUnicodeError
- dbfread報錯ValueError錯誤解決方法Error
- PbootCMS 404 錯誤解決方法boot
- Linux下錯誤解決方案Linux
- latex 錯誤以及解決方案
- ORA-12505: TNS: 監聽程式當前無法識別連線描述符中所給出的SID等錯誤解決方法
- HTTP 錯誤 500.19- Internal Server Error 錯誤解決方法HTTPServerError
- steam磁碟寫入錯誤怎麼解決 steam磁碟寫入錯誤解決方法大全
- undefined reference to錯誤的解決方法Undefined
- Cocopods的升級錯誤解決
- ORA-12005 錯誤的解決
- SAXParseException的錯誤解決之二Exception
- ORA-28000錯誤解決方案
- dedecms提示500錯誤解決方法
- PHP curl error 60 錯誤解決PHPError
- linux解決“XXX is not in the sudoers file”錯誤Linux
- 解決java.lang.NoSuchMethodError錯誤JavaError
- HTTP代理錯誤怎麼解決?HTTP
- TCP網路除錯助手提示錯誤:“1035:未知錯誤” 解決方案TCP除錯
- 解決MySQL server has gone away錯誤的解決方案MySqlServerGo
- Go:錯誤 could not launch process: EOF 解決Go
- 畢設之錯誤解決辦法
- 解決 ngrok 的 Domain 錯誤問題AI
- 錯誤解決:Attempting to use uninitialized value VariableZed
- Ubuntu Cannot allocate memory 錯誤解決方案Ubuntu
- Qt報Multiple definition錯誤的解決QT
- Excel匯入null錯誤解決方式ExcelNull
- 代理508限制錯誤怎麼解決?
- Hadoop常見錯誤及解決方案Hadoop
- Idea編譯錯誤解決辦法Idea編譯
- 錯誤720寬頻連線解決辦法 寬頻連線錯誤程式碼720怎麼解決
- 解決ubuntu系統“XXX is not in the sudoers file”錯誤Ubuntu
- ubuntu下import matplotlib錯誤解決辦法UbuntuImport
- HTTP 錯誤 500.21 - Internal Server Error 解決方案HTTPServerError
- SyntaxError: EOL while scanning string literal錯誤解決ErrorWhile
- 解決 eslint 的 Parsing error: Unexpected token 錯誤EsLintError
- Mac上搭建chromedriver的錯誤解決方法MacChrome
- 解決shell指令碼錯誤$’r’ command not found指令碼