連接Oracle數(shù)據(jù)庫失敗(ORA-12514)故障排除全過程
前言
ORA-12514的故障是很多新手在連接Oracle數(shù)據(jù)庫時經(jīng)常遇到故障,它通常表示無法連接到數(shù)據(jù)庫實例,這里姚遠老師告訴大家如何排除這類故障。
癥狀
當(dāng)嘗試連接到Oracle數(shù)據(jù)庫實例時,可能會收到ORA-12514錯誤消息。此錯誤通常會在Oracle客戶端或應(yīng)用程序中顯示。
此外,還可能會在數(shù)據(jù)庫服務(wù)器上的日志文件中看到類似于以下消息的記錄:
TNS-12514: TNS:listener does not currently know of service requested in connect descriptor
產(chǎn)生原因
ORA-12514錯誤通常是由以下原因之一造成的:
無效的服務(wù)名稱:連接描述符中指定的服務(wù)名稱不存在。例如,可能會發(fā)生拼寫錯誤或者數(shù)據(jù)庫實例名稱更改而未及時更新連接描述符的情況。
oracle@Yao ~$ sqlplus sys/yaoyuan@localhost/orc1 as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:00:59 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
監(jiān)聽程序未運行:如果Oracle數(shù)據(jù)庫監(jiān)聽程序未運行,則無法連到數(shù)據(jù)庫實例。此情況可能是由于監(jiān)聽程序未正確啟動、網(wǎng)絡(luò)連接故障或服務(wù)器故障等原因引起的。
oracle@yaoyuan ~$ sqlplus sys/yaoyuan@localhost/scott as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:16:54 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. ERROR: ORA-12541: TNS:no listener
注意:這里的提示是“no listener”,和前面的“listener does not currently know of service requested in connect descriptor”不同。
解決辦法
針對ORA-12514錯誤,可以采取以下措施來解決問題:
檢查連接描述符:確保連接描述符中指定的服務(wù)名稱是正確的。如果服務(wù)名稱發(fā)生變化,請更新連接描述符。例如下面兩個連接,第一次失敗,第二次成功,大家看看是什么問題呢?
oracle@Yao ~$ sqlplus sys/yaoyuan@localhost/orc1 as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:29:24 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor Enter user-name: oracle@Yao ~$ sqlplus sys/yaoyuan@localhost/orcl as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 1 16:29:40 2023 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0
仔細看看就明白了,原來服務(wù)名是orcl被錯誤的寫成了orc1。當(dāng)然在生產(chǎn)環(huán)境,大部分時候服務(wù)名是在tnsnames.ora文件中配置的:
oracle@yaoyuan ~$ cat /u01/app/oracle/product/19.3.0/db_1/network/admin/tnsnames.ora ... ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracleace)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orc1) ) )
注意這里的SERVICE_NAME中有個不容易察覺的錯誤。
其它可能的問題和對應(yīng)的解決方法包括:
- 確認監(jiān)聽程序已運行:可以通過命令行或圖形界面工具來檢查監(jiān)聽程序是否正在運行。如果監(jiān)聽程序未運行,則需要啟動它。
- 檢查網(wǎng)絡(luò)連接:如果存在網(wǎng)絡(luò)連接問題,則需要解決網(wǎng)絡(luò)問題。例如,可以檢查網(wǎng)絡(luò)配置、防火墻設(shè)置等。
- 檢查數(shù)據(jù)庫實例狀態(tài):如果數(shù)據(jù)庫實例已停止或崩潰,則需要啟動數(shù)據(jù)庫實例。
總之,ORA-12514錯誤通常表示無法連接到數(shù)據(jù)庫實例。通過檢查連接描述符、監(jiān)聽程序狀態(tài)、網(wǎng)絡(luò)連接和數(shù)據(jù)庫實例狀態(tài)等方面,可以找到并解決問題。
總結(jié)
到此這篇關(guān)于連接Oracle數(shù)據(jù)庫失敗(ORA-12514)故障排除的文章就介紹到這了,更多相關(guān)連接Oracle數(shù)據(jù)庫失敗ORA-12514內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle數(shù)據(jù)加載和卸載的實現(xiàn)方法
這篇文章主要介紹了Oracle數(shù)據(jù)加載和卸載的實現(xiàn)方法,非常不錯,具有一定的參考借鑒加載,需要的朋友可以參考下2018-08-08sql – Oracle中匿名TABLE/VARRAY類型示例詳解
這篇文章主要給大家介紹了關(guān)于Oracle中匿名TABLE/VARRAY類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用oracle具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10oracle中利用關(guān)鍵字rownum查詢前20名員工信息及rownum用法
這篇文章主要介紹了oracle中利用關(guān)鍵字rownum查詢前20名員工信息,本文通過代碼給大家簡單介紹了ORACLE 中ROWNUM用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04深入探討:oracle中row_number() over()分析函數(shù)用法
本篇文章是對oracle中row_number() over()分析函數(shù)的用法進行了詳細的分析介紹,需要的朋友參考下2013-05-05