Oracle-客戶端連接報錯ORA-12545問題

問題背景:

????????用戶在客戶端服務器通過sqlplus通過scan ip登陸訪問數據庫時,偶爾會出現連接報錯ORA-12545: Connect failed because target host or object does not exist的情況。

?

aff3937f29c256ad5ac0b58ac6ed561e.png

問題分析:

????????首先,登陸到連接有問題的客戶端數據庫上,通過sqlplus進行多次連接測試,的確會出現用戶所說的ORA-12545: Connect failed because target host or object does not exist報錯現象,此外,還發現登陸成功的節點顯示的實例都是節點一實例servicedb1

?

69136b021cbb425187a0493553978aa1.png

????????檢查數據庫的listener_scan監聽配置,服務servicedb下動態注冊了(ready)兩個實例servicedb1以及servicedb2,沒有其他的配置實例

?

232033929fe40e7805eee3f78bdaf7a0.png

????????接下來,獲取客戶端連接報錯的具體trace信息,需要在客戶端的服務器的sqlnet.ora里面配置跟蹤參數,對客戶端的連接過程進行跟蹤

TRACE_LEVEL_CLIENT=16
TRACE_DIRECTORY_CLIENT=/tmp   
TRACE_UNIQUE_CLIENT=ON
DIAG_ADR_ENABLED =OFF   

????????配置完跟蹤參數之后,再一次通過sqlplus連接scan ip訪問數據庫,每一次登陸都會在/tmp目錄下面生成登陸的跟蹤trc文件cli_xxxx.trc ,打開發生ORA-12545:報錯時的trc文件

????????從trc文件里面,我們看到了發生解析主機錯誤(hostname lookup failure!)的主機連接地址nsc2addr: (ADDRESS=(PROTOCOL=TCP)(HOST=servicedb2)(PORT=1521))

e1745f66973a8f01b8e44c40c38f5958.png

????????該地址是客戶端在連接scan監聽之后,返回給客戶端的本地監聽服務連接地址,因為scan 監聽上的服務是數據庫通過遠程注冊進去的(remote?listener),客戶端在連接scan監聽上的服務之后,scan監聽會再把負載較小節點所在的本地監聽(local listener)地址返回給客戶端,客戶端再訪問這個監聽地址去連接數據庫

????????從這個返回報錯地址nsc2addr我們可以看到里面的地址信息host返回的是主機名而不是實際的IP地址,查看客戶端的/etc/hosts配置,可以看到只配置了節點一的主機名IP地址解析,并沒有配置節點二的主機名IP地址解析,也沒有配置dns去解析這個主機名,從而導致一旦scan 監聽分配到節點二給客戶端時就會出現了ORA-12545: Connect failed because target host or object does not exist的報錯,而分配到節點一客戶端可以連接成功,因為hosts里面有節點一的主機名IP地址解析

4a66e8d0b540d8f53c1335d8c05b9a7f.png

接下來繼續分析scan監聽返回的地址信息host為主機名的原因,查看數據庫的scan監聽的服務配置信息lsnrctl services listener_scan1

可以看到scan監聽下的服務servicedb注冊的實例servicedb1,servicedb2的遠程服務(remote server)地址的連接信息都是直接的服務器主機名(host=servicedb1)以及(host=servicedb2),不是實際的IP地址信息,這也是為什么客戶端接收到的地址nsc2addr里面不是IP地址信息的原因,因為數據庫注冊到scan監聽服務的連接信息是主機名形式

?

dbc28c6e06e5b5ac5775ec7346b8ef3f.png

show parameter查看數據庫的動態注冊配置參數local listener,該參數表示實例節點所注冊的本地監聽地址,數據庫遠程注冊到scan監聽的服務會指向這個地址,我們可以看到由于參數local_listener的配置為空,因此數據庫注冊到scan監聽服務的連接信息host就是默認的服務器主機名

?

c5e0a138931dab612a27ad1babf0c4e4.png

問題解決:

????????1 臨時解決方案,客戶端的/etc/hosts里面配置數據庫節點二主機的IP解析條目,需要注意的是,這個方式只是解決了該客戶端的訪問數據庫的問題,如果其他客戶端沒有配置hosts或者dns去解析數據庫服務器的主機名,依然會出現ORA-12545: Connect failed because target host or object does not exist的情況

????????2 完整解決方案,數據庫兩個節點動態注冊參數local_listener配置為兩個節點的VIP連接信息

節點一:(ADDRESS = (PROTOCOL=TCP)(HOST=xxx.xxx.xxx.13)(PORT=1521)),

節點二:(ADDRESS = (PROTOCOL=TCP)(HOST=xxx.xxx.xxx.74)(PORT=1521))

這樣返回給客戶端的是IP的形式而非主機名,全部客戶端就可以不用配置hosts或者dns去解析數據庫服務器的主機名

?

?

?

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

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

相關文章

高品質MP3音頻解碼語音芯片WT2003Hx的特征優勢與應用場景

在現代化科技快速發展的時代,高品質音頻語音芯片在各個領域的應用越來越廣泛。唯創知音推出的高品質MP3音頻語音芯片WT2003Hx,憑借其出色的特性與優勢,贏得了市場的廣泛認可。本文將詳細介紹WT2003Hx的特征優勢以及其在各個領域的應用場景。 …

單片機調試技巧--修改bin文件實現斷點

fromelf --text -a -c --outputall.dis F103_Moduel\F103_Moduel.axffromelf --bin --outputtest.bin F103_Moduel\F103_Moduel.axf 在啟動文件中,修改UsageFault_Handler UsageFault_Handler\PROC; get current contextTST lr, #0x04 ; if(!EXC_RETURN[2])ITE…

2014年08月25日 Go生態洞察:深入理解Go中的常量

🌷🍁 博主貓頭虎(🐅🐾)帶您 Go to New World?🍁 🦄 博客首頁——🐅🐾貓頭虎的博客🎐 🐳 《面試題大全專欄》 🦕 文章圖文…

高通OTA升級非常規分區方法

高通OTA升級非常規分區方法 1. 高通LE OTA背景2. 高通LE OTA升級方案2.1 SDX12 OTA方案2.2 OTA升級TZ/RPM/Aboot OTA是一個通用述語,常見的解釋為over the air。通過這一解釋,OTA最開始的概念,是空中升級。后來,又衍生出了FOTA&am…

中國智能汽車這一年,主打一個“卷”

文丨劉俊宏 “這才剛過去半年多,汽車行業又更新了一輪。”一位車評人在廣州車展感嘆道。 作為每年最后一個A級車展,廣州車展向來被視為中國車市的“風向標”。相比上海車展“擁抱汽車行業新時代”、成都車展“馭見未來”的主題,廣州車展“新…

數據結構(超詳細講解!!)第二十四節 二叉樹(上)

1.定義 二叉樹(Binary Tree)是另一種樹型結構。 二叉樹的特點: 1)每個結點至多只有兩棵子樹(即二叉樹中不存在度大于2的結點); 2)二叉樹的子樹有左右之分,其次序…

python爬蟲教程:selenium常用API用法和瀏覽器控制

文章目錄 selenium apiwebdriver常用APIwebelement常用API 控制瀏覽器 selenium api selenium新版本(4.8.2)很多函數,包括元素定位、很多API方法均發生變化,本文記錄以selenium4.8.2為準。 webdriver常用API 方法描述get(String url)訪問目標url地址&…

分布式鎖之傳統鎖回顧(一)

1. 傳統鎖回顧 1.1. 從減庫存聊起 多線程并發安全問題最典型的代表就是超賣現象 庫存在并發量較大情況下很容易發生超賣現象,一旦發生超賣現象,就會出現多成交了訂單而發不了貨的情況。 場景: 商品S庫存余量為5時,用戶A和B同…

python:可迭代的數據類型、可變的數據類型、不可變的數據類型

python:可迭代的數據類型、可變的數據類型、不可變的數據類型 文章目錄 python:可迭代的數據類型、可變的數據類型、不可變的數據類型可迭代的數據類型可變的數據類型不可變的數據類型 可迭代的數據類型 序列:str、bytes、tuple、list非序列…

PC8223(CC/CV控制)高耐壓輸入5V/3.4A同步降壓電路內建補償帶恒流恒壓輸出

概述 PC8233(替代CX8853)是一款同步降壓調節器,輸出電流高達3.4A,操作范圍從8V到32V的寬電源電壓。內部補償要求最低數量現成的標準外部組件。PC8233在CC(恒定輸出電流)模式或CV(恒定輸出電壓)模式&#x…

莫托曼機器人測溫程序

1機器程序 2.1 主程序 MAIN: NOP CALL JOB:ORG *1 JUMP *5 IF IN#(41)OFF CALL JOB:遠程 IF IN#(25)ON CALL JOB:本地 IF IN#(26)ON CALL JOB:測距判斷 CALL JOB:最后一支 *5 CALL JOB:PZ IF IN#(35)ON CALL JOB:PZ IF IN#(65)ON JUMP *1 END 1.2 本地程序 1、本地…

代碼隨想錄算法訓練營Day 60 || 84.柱狀圖中最大的矩形

84.柱狀圖中最大的矩形 力扣題目鏈接(opens new window) 給定 n 個非負整數&#xff0c;用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰&#xff0c;且寬度為 1 。 求在該柱狀圖中&#xff0c;能夠勾勒出來的矩形的最大面積。 1 < heights.length <10^50 < hei…

CVE-2022-0543(Redis 沙盒逃逸漏洞)

簡介 CVE-2022-0543是一個與Redis相關的安全漏洞。在Redis中&#xff0c;用戶連接后可以通過eval命令執行Lua腳本&#xff0c;但在沙箱環境中腳本無法執行命令或讀取文件。然而&#xff0c;攻擊者可以利用Lua沙箱中遺留的變量package的loadlib函數來加載動態鏈接庫liblua5.1.s…

VirtualBox下win主機如何訪問linux虛擬機文件夾

目錄 ?編輯 方法1&#xff1a;通過VirtualBox自帶的共享文件夾&#xff08;Win->linux&#xff09; 方法2&#xff1a;通過Samba方法本地網絡訪問(Linux->win) 我使用的VirtualBox版本為7.0.4,主機是Window系統&#xff0c;虛擬機是Linux系統 方法1&#xff1a;通過Vir…

【SpringBoot篇】Spring_Task定時任務框架

文章目錄 &#x1f339;概述&#x1f33a;應用場景&#x1f384;cron表達式&#x1f6f8;入門案例&#x1f38d;實際應用 &#x1f339;概述 Spring Task 是 Spring 框架提供的一種任務調度和異步處理的解決方案。可以按照約定的時間自動執行某個代碼邏輯它可以幫助開發者在 S…

PTA-快速冪

要求實現一個遞歸函數&#xff0c;高效求ab(1≤a,b≤62,ab<263)。 函數接口定義&#xff1a; long long int pow(int a, int b); 其中a 、b 是用戶傳入的參數。 裁判測試程序樣例&#xff1a; #include<iostream> using namespace std; long long int pow(int a,…

數據結構 棧與隊列

棧 棧是一種 后進先出&#xff08; LIFO&#xff09; 的數據結構&#xff0c;它是一種線性的、有序的數據結構。棧的基本操作有兩個&#xff0c;即入棧和出棧。入棧指將元素放入棧頂&#xff0c;出棧指將棧頂元素取出。棧的本質是一個容器&#xff0c;它可以存儲任何類型的數…

String轉Date,Date轉String

源碼&#xff1a; Date currentTime new Date();System.out.println("currentTime:"currentTime);SimpleDateFormat formatter new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String dateString formatter.format(currentTime);System.out.println(&quo…

【深度學習】學習率及多種選擇策略

學習率是最影響性能的超參數之一&#xff0c;如果我們只能調整一個超參數&#xff0c;那么最好的選擇就是它。相比于其它超參數學習率以一種更加復雜的方式控制著模型的有效容量&#xff0c;當學習率最優時&#xff0c;模型的有效容量最大。本文從手動選擇學習率到使用預熱機制…

qt msvc2010 qdatetime.h:122: error: C2589: “(”:“::”右邊的非法標記

報錯內容&#xff1a; C:\Qt\Qt5.4.0\5.4.0\msvc2010_opengl\include\QtCore\qdatetime.h:114: error: C2589: “(”:“::”右邊的非法標記 C:\Qt\Qt5.4.0\5.4.0\msvc2010_opengl\include\QtCore\qdatetime.h:114: error: C2059: 語法錯誤:“::” 解決方法&#xff1a; 打開qd…