如何解決 Azure Always On listener 無法訪問的問題

來源: Microsoft Azure
作者:Microsoft Azure
時(shí)間:2021-01-14
16709
本文旨在解決Always On無法從secondary replica通過listener連接集群,時(shí)而出現(xiàn)不能訪問的常見問題。

本文旨在解決Always On無法從secondary replica通過listener連接集群,時(shí)而出現(xiàn)不能訪問的常見問題。

Always On介紹

Always on是SQL Server on VM的架構(gòu)下最常見的高可用方案。

其基本原理為創(chuàng)建一個(gè)至少為2臺(tái)VM所組成的Windows集群,每臺(tái)VM上安裝一臺(tái)SQL Server Instance。由其中的一臺(tái)SQL instance作為主節(jié)點(diǎn)(primary replica)提供對(duì)外讀寫訪問,同時(shí)通過日志傳輸?shù)男问教峤坏搅硗庖慌_(tái)節(jié)點(diǎn)(secondary replica)進(jìn)行數(shù)據(jù)同步。

Secondary replica可以提供只讀功能,用于做讀寫分離或高可用(強(qiáng)烈建議依舊保持備份的習(xí)慣)。

備注

在SQL server 2016之前的版本,組成Windows cluster還需要一臺(tái)Domain controller(DC)。搭建步驟:在Azure VM中手動(dòng)配置Always On可用性組。

01.png

在Azure中搭建Always On的過程并不復(fù)雜,但是經(jīng)常有客戶會(huì)遇到搭建Always On之后無法使用App連接的自動(dòng)故障轉(zhuǎn)移功能。

Always on的自動(dòng)故障轉(zhuǎn)移功能基于Always on Listener。Listener會(huì)被注冊(cè)為一個(gè)windows cluster中的resource,類似于VIP概念;在集群發(fā)生故障轉(zhuǎn)移時(shí)listener會(huì)被漂移到新primary的VM中。對(duì)于客戶端來說,只需要訪問Listner的IP地址就可以保證永遠(yuǎn)連接到當(dāng)前的primary數(shù)據(jù)庫(kù)上。

在傳統(tǒng)的IDC環(huán)境中,Always On會(huì)自動(dòng)將Listener所屬的虛擬IP地址與網(wǎng)卡物理地址注冊(cè)到路由表中,所以無論任何節(jié)點(diǎn)都可以通過Listener找到primary所在的服務(wù)器地址并建立鏈接。

在Azure環(huán)境下,該地址無法被注冊(cè),所以我們需要通過增加一個(gè)Load Balancer的方式來為L(zhǎng)istener的訪問請(qǐng)求進(jìn)行轉(zhuǎn)發(fā)。

參考示例腳本:使用PowerShell將IP地址添加到現(xiàn)有負(fù)載均衡器

該腳本非常重要,會(huì)在primary節(jié)點(diǎn)上創(chuàng)建一個(gè)始終監(jiān)聽在<n.n.n.n>端口上的監(jiān)聽,并會(huì)隨著primary切換而自動(dòng)轉(zhuǎn)移到新的primary VM上。本示例中使用59999。

在配置好了listener之后可能會(huì)遇到以下幾個(gè)常見問題:

在primary節(jié)點(diǎn)上可以通過listener IP訪問集群,但在secondary上無法訪問listener IP,只能通過提供primary服務(wù)器名或IP的方式來進(jìn)行連接。

在secondary上有時(shí)候可以訪問listener IP有時(shí)候就不行,隨機(jī)出現(xiàn)。

如果遇到上述問題,我們可以通過以下幾個(gè)步驟進(jìn)行排錯(cuò):

開始=>運(yùn)行=>cmd輸入netstat-a檢查,是否59999監(jiān)聽端口已經(jīng)在primary節(jié)點(diǎn)中存在。

02.png

檢查Azure門戶中Load Balancer上的probe(探測(cè)器),探測(cè)的端口是否為59999或者是之前在PowerShell中創(chuàng)建的<nnnnn>端口。

[int]$ProbePort="<nnnnn>"#Probe port

經(jīng)常會(huì)有客戶錯(cuò)誤配置為1433端口,對(duì)于LB來說,1433在primary和secondary都為存活狀態(tài),所以會(huì)隨機(jī)的分配request給任何一臺(tái)節(jié)點(diǎn),可能是primary,可能是secondary。

由于Always On必須要先訪問primary,所以如果該請(qǐng)求發(fā)給了secondary就會(huì)得不到響應(yīng)。

03.png

Azure門戶中Load Balancer的front IP是否與Windows cluster resource中的listener的IP完全一致。

04.png

05.png

負(fù)載均衡規(guī)則中的probe是否配置。

06.png

如果以上步驟全部配置正確,通常就可以正常的使用Always On了。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于Microsoft Azure,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開了嶄新的一頁(yè),突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家