Oracle 關于一些連接故障的總結

積累了幾次Oracle客戶端連接故障,做下總結。

文章目錄

  • 1、案例
    • 案例1:客戶端連接報錯ORA-12514
    • 案例2:客戶端連接報錯ORA-28547
    • 案例3:客戶端連接報錯:Got minus one from a read call
    • 案例4:客戶端連接報錯:ORA-12518
    • 案例5:客戶端連接報錯:ORA-28040
  • 2、總結

1、案例

案例1:客戶端連接報錯ORA-12514

項目場景
業務工程人員使用PLSQL工具,連接部署在Windows系統上的Oracle 11gR2單機數據庫,報錯ORA-12514。
分析排查
(1)錯誤代碼含義
ORA-12514 是指監聽程序無法識別連接描述符中請求的服務。
(2)錯誤可能性
監聽程序可能掛了,也可能是listener.ora文件中的配置有問題。
(3)錯誤排查

登錄數據庫服務器,cmd窗口執行 “lsnrctl status” 命令,發現監聽沒有啟動。于是執行 “lsnrctl start”命令啟動監聽,啟動后注意到 “UNKNOWN” 標識——靜態監聽,說明其依賴listener.ora文件配置。

繼續嘗試連接,依然報錯ORA-12514。

考慮到是靜態監聽模式,此時高度懷疑listener.ora文件配置有誤;檢查發現listener.ora文件中并沒有關于目標實例的配置信息,于是將目標實例信息補充到文件中。

win11glistener.png

調整完listener.ora文件,重啟監聽;再次嘗試連接,連接成功。
錯誤復盤
這個錯誤是比較基礎的:listener.ora文件配置缺少目標實例信息、監聽未啟動。和現場溝通后得知是業務工程人員自己部署用來測試的,所以并未注意這兩個細節。

案例2:客戶端連接報錯ORA-28547

項目場景
業務工程人員使用PLSQL工具,連接部署在Windows系統上的Oracle 11gR2單機數據庫,報錯ORA-28547。

win11gora28547.png
分析排查
(1)錯誤代碼含義
ORA-28547 是指客戶端與服務器通信失敗。
(2)錯誤可能性
由于是第一次看到這個錯誤代碼,也已經排查過監聽配置文件、監聽程序無異常。所以網上查閱多篇資料,梳理總結如下:

1、配置文件中存在問題;
2、環境問題:未安裝Oracle客戶端、防火墻未放行1521端口;
3、數據庫連接工具的OCI版本與目標數據庫不匹配;

(3)錯誤排查

1、listener.ora文件、tnsnames.ora文件都已經排查過,未有寫錯的服務名和路徑。
2、防火墻關閉,且在同一網段,不會是網絡問題;客戶端也已安裝,且環境變量正確。
3、OCI版本也無誤

似乎無計可施了。終于在對比檢查了多次listener.ora文件后,發現某行多了個括號,格式發生錯誤。于是刪除多余括號,再次嘗試連接,連接成功。

錯誤復盤
這次的錯誤同樣基礎,但卻十分隱蔽:listener.ora文件格式錯誤,僅僅只是多了個括號。這是我自己在listener.ora文件中 手敲 監聽配置信息造成的錯誤,也再次提醒如果需要手工調整監聽配置文件,最好是從其他數據庫配置文件或者samples模版文件中拷貝修改,避免失誤。

案例3:客戶端連接報錯:Got minus one from a read call

項目場景
業務工程人員使用DBever工具連接 19C數據庫時,報錯:Got minus one from a read call,連接失敗。

Got minus.png
分析排查
(1)錯誤含義
“Got minus one from a read call” :讀取call的結果是-1。字面上看不出什么,所以查看告警日志和監聽日志;其中告警日志無異常,監聽日志中發現如下報錯:
listenlog.png
(2)錯誤可能性
監聽日志中顯示TNS-12518, TNS-12547, TNS-12560, TNS-00517的組合報錯。嘗試將這個錯誤拋給deepseek,給出了如下原因:

1、內存資源不足
2、權限問題
3、操作系統bug
4、資源限制(/etc/security/limits.conf配置的資源限制參數過低)
5、網絡配置問題

不得不說,deepseek挺強大的,將所有的可能性都列舉了出來。但是它似乎只是聯網匯總分析了網上的文章,給出的每一種可能性權重都是一樣的,我抓不住它給出的重點,而且很多地方只是淺嘗輒止。
(3)錯誤排查

系統內存資源、Oracle相關目錄權限、資源限制參數都很快檢查完了;至于操作系統bug,我沒想著排查,因為太高級我不會…。并且嘗試使用sqlplus連接,也連接不上,所以也排除客戶端驅動問題。

最后我還是將目標瞄向監聽配置文件,但是服務名、路徑、主機名等每一個參數,都沒有問題;格式也沒問題。

于是我打開了另外一臺數據庫的監聽配置文件仔細對比,在對比了非常多次之后,發現在listener.ora文件中,ORACLE_HOME的路徑,末尾處有個 “/” 。我不知道是不是它的問題,但也將其刪除,重啟監聽,再次嘗試連接,連接成功。

錯誤復盤
數據庫使用的是靜態監聽,完全依賴監聽配置文件。部署這臺數據庫的DBA在手動配置監聽文件時,不知道在listener.ora文件中ORACLE_HOME路徑末尾不能有 “/”。這是個細節問題,很隱蔽,但卻很關鍵。

案例4:客戶端連接報錯:ORA-12518

項目場景
業務工程師反饋某備庫連接不上,批處理報錯。使用PLSQL登錄顯示ORA-12518。
12518.png
分析排查
(1)錯誤含義
ORA-12518:監聽收到了客戶端的連接請求,但在將這個連接請求移交給數據庫服務進程的時候失敗了。
(2)錯誤可能性
這個錯誤的原因可能是操作系統內存資源告警、資源限制參數過低且已達到上限、數據庫的process/session達到上限;嚴重的話也有可能是實例出現問題,PGA中的會話全局區不能再分配連接。
(3)錯誤排查
我并沒有去檢查操作系統內存資源和資源限制參數。直接去檢查了process和session資源,發現資源已耗盡;調整完process后,問題解決。
錯誤復盤
此次連接錯誤,有兩個原因:一是process參數本身設置不合理,才500;二是業務某個批處理未設置連接池,導致連接數很快消耗完。這兩個錯誤都是可以提前預見和規避的。

案例5:客戶端連接報錯:ORA-28040

項目場景
低版本的JDBC驅動在連接Oracle 19C時,會遇到ORA-28040錯誤。
解決方案
1、可以選擇升級JDBC驅動。
2、臨時修改sqlnet.ora文件,向下兼容JDBC
將以下參數加入sqlnet.ora文件,如果沒有該文件,需要手動創建。

可以執行lsnrctl status命令查看監聽配置目錄。

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8  # 允許最低協議版本為 8(兼容 10g/11g)
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

在調整完sqlnet.ora文件后,需要重啟監聽,配置才可生效。

2、總結

通過以上案例,可以發現:大部分連接問題都是因為監聽配置文件有誤,此外常見的還有數據庫資源限制問題。當發生連接故障時,我們可能記不住那么多不同的錯誤代碼,但是可以優先從配置文件、數據庫資源方面著手排查;這也是提醒我們在手動操作配置文件時務必要細心。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89354.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89354.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89354.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

V-USB USB設備模擬原理分析

V-USB USB設備模擬原理分析 通過分析V-USB項目的核心文件,詳細解釋這個項目是如何在AVR微控制器上模擬USB設備的: 1. 整體架構 V-USB是一個純軟件實現的USB低速設備驅動,主要由以下幾個核心文件組成: usbdrv.c : USB協議棧的C語言…

kafka3.6下載安裝(傳統架構/KRaft模式)+實例測試

知識補充: Kafka 和 ZooKeeper 的關系可以用 “協作依賴” 來概括。在 Kafka 的早期版本(Kafka 2.8.0 之前)中,ZooKeeper 是 Kafka 的核心依賴,用于管理集群元數據、協調 Broker 和 Controller 選舉等關鍵功能。但從 …

華控智能產品特點——產品生態全景與場景化創新

公司構建 “3X”產品戰略,以三大核心場景為基礎持續拓展技術外延: 1. 智能安防產品線軍工級指紋槍盒:采用6061-T6航空鋁材,內嵌震動報警模塊,非法開箱觸發90dB警鳴。為軍工企業定制的雙人認證版本需兩位授權人員同時驗…

爬蟲核心原理與入門技巧分析

一、爬蟲核心原理:模擬人類瀏覽的“自動化工具” 簡單來說,網絡爬蟲(Web Crawler)是一種按照一定規則,自動抓取互聯網信息的程序或腳本。其核心原理可以類比人類瀏覽網頁的過程,只不過將手動操作轉化為了代…

spring-cloud微服務部署-feign服務間調用

1 準備工作 需要安裝并啟動nacos&#xff0c;作為服務注冊中心。地址&#xff1a;https://nacos.io/ 2 項目結構 parent的pom.xml聲明依賴&#xff1a; <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</gr…

IDEA高效開發:Database Navigator插件安裝與核心使用指南

目錄 1.前言 2.正文 2.1安裝流程 2.1.1IDE內部安裝 2.1.2手動下載安裝 ?? 避坑指南 2.2使用教程 2.2.1連接數據庫 2.2.2查看數據庫/表 2.2.3查詢數據 2.2.4修改表結構 2.2.5生成代碼 2.2.6常見故障排除 3.小結 1.前言 “作為Java開發者&#xff0c;日常與數據…

Maven私服倉庫,發布jar到私服倉庫,依賴的版本號如何設置,規范是什么

Maven私服倉庫&#xff0c;發布jar到私服倉庫&#xff0c;依賴的版本號如何設置&#xff0c;規范是什么

量子卷積神經網絡:量子計算與深度學習的融合革命

引言&#xff1a;當卷積神經網絡遇上量子計算在人工智能與量子計算雙重浪潮的交匯處&#xff0c;量子卷積神經網絡&#xff08;Quantum Convolutional Neural Network, QCNN&#xff09;正成為突破經典算力瓶頸的關鍵技術。傳統卷積神經網絡&#xff08;CNN&#xff09;在圖像識…

線程(三) linux 同步

目錄 概念補充 條件變量 操作 例:多線程搶票 封裝 生產者消費者模型 生產者和消費者之間的關系 BlockQueue(阻塞隊列) 單生產單消費 信號量 簡介 操作 多生產者多消費者RingQueue(環形隊列)代碼 sem封裝 信號量與鎖 小知識 概念補充 同步:在保證數據安全的前…

Eclipse 生成 jar 包

Eclipse 生成 jar 包 引言 Eclipse 是一款功能強大的集成開發環境&#xff08;IDE&#xff09;&#xff0c;廣泛應用于 Java 開發領域。在 Java 開發過程中&#xff0c;將源代碼編譯成可執行的 jar 包是常見的需求。本文將詳細介紹在 Eclipse 中生成 jar 包的方法&#xff0c;包…

kafka--基礎知識點--0

kafka 架構 https://cloud.tencent.com/developer/article/2307892 19張圖 生產者架構 消息的磁盤存儲文件結構 https://cloud.tencent.com/developer/article/2307892 19張圖 produce消息分區策略 kafka–基礎知識點–5–生產者分區策略 ISR、OSR、AR 是什么&#xff1…

替換ngnix ssl 證書

1. 阿里云數字證書管理服務 -》SSL 證書管理 -》個人測試證書&#xff08;原免費證書&#xff09;-》查找相應域名的證書/新建證書&#xff0c;申請 -》下載證書&#xff0c;如果是ngnix服務器&#xff0c;就下載pem/key格式2.遠程連接服務器a.nginx -t :查看ngnix 配置文件在哪…

rabbitmq ACK

在消息隊列&#xff08;如 RabbitMQ&#xff09;中&#xff0c;**ACK&#xff08;Acknowledgement&#xff09;是消息確認機制**&#xff0c;用于確保消息被消費者成功處理。其核心作用是解決以下問題&#xff1a;mermaid復制代碼導出svg&#x1f4cc; ACK 的兩種模式1. 自動確…

性能遠超Spring Cloud Gateway!Apache ShenYu如何重新定義API網關!

Apache ShenYu Apache ShenYu是一個異步的&#xff0c;高性能的&#xff0c;跨語言的&#xff0c;響應式的 API 網關。 特點 ? 代理&#xff1a;支持Apache Dubbo&#xff0c;Spring Cloud&#xff0c;gRPC&#xff0c;Motan&#xff0c;SOFA&#xff0c;TARS&#xff0c;We…

質變科技亮相可信數據庫發展大會,參編《數據庫發展研究報告2025》

數據庫作為支撐數據存儲與計算的關鍵載體&#xff0c;在數據要素時代的重要性愈發凸顯。過去一年&#xff0c;全球數據庫新技術、新業態、新模式不斷涌現&#xff1b;我國數據庫應用創新于重點行業快速推進。隨著人工智能技術深刻變革&#xff0c;數據庫與AI融合趨勢愈發明顯。…

LVS(Linux Virtual Server)詳細筆記(理論篇)

一.詳解1. LVS概述LVS&#xff08;Linux Virtual Server&#xff09;是由章文嵩博士發起的開源負載均衡項目&#xff0c;通過在Linux內核中實現高性能四層交換能力&#xff0c;將多臺物理服務器組織成單一虛擬服務。它能夠處理百萬級并發連接&#xff0c;同時保持線性擴展能力&…

Oracle Data Pump 導入沖突解決

問題場景 使用 impdp 導入數據時遇到"對象已存在"錯誤&#xff0c;導致導入失敗。 核心解決方案 1. TABLE_EXISTS_ACTION 參數 impdp username/passworddatabase \ directoryDATA_PUMP_DIR \ dumpfileyour_dump_file.dmp \ TABLE_EXISTS_ACTIONREPLACE作用&#xff1…

汽車免拆診斷案例 | 2015款進口起亞索蘭托L車漏電

故障現象 一輛2015款進口起亞索蘭托L車&#xff0c;搭載D4HB發動機&#xff0c;累計行駛里程約為15萬km。車主反映&#xff0c;該車停放2天左右就因蓄電池虧電而無法起動&#xff0c;更換過蓄電池&#xff0c;但故障依舊&#xff0c;于是將車開至我廠檢修。故障診斷 接車后用…

mysql復制延遲如何處理

一、復制延遲的原因主庫增刪改并發大大表在做DDL從庫備份導致延遲大事務從庫機器配置差二、怎樣判斷延遲使用 SHOW SLAVE STATUS 命令Seconds_Behind_Master&#xff1a;表示從庫落后主庫的秒數&#xff08;若為 NULL&#xff0c;可能復制線程已停止&#xff09;對比位點字段名…

HertzBeat 監控 SpringBoot 使用案例

HertzBeat 監控 SpringBoot 使用案例 在云原生時代&#xff0c;Spring Boot應用的監控與可視化已然成為運維體系的核心環節&#xff0c;實時監控應用性能是保障系統穩定性的關鍵。 這篇文章將結合 HertzBeat 實現從指標采集、可視化到告警的一體化解決方案&#xff0c;并展示…