SQL Server隱藏實例會導致Alwasy on手動故障轉移時報error 26

来源:https://www.cnblogs.com/kerrycode/p/18039405
-Advertisement-
Play Games

SQL Server的配置管理器(SQL Server Configuration Manager)下,你可以隱藏資料庫實例,設置了隱藏實例後, SQL Server Browser不會對此伺服器實例的相關信息做出響應,(當 SQL Server 客戶端請求 SQL Server 資源時,客戶端將使 ...


SQL Server的配置管理器(SQL Server Configuration Manager)下,你可以隱藏資料庫實例,設置了隱藏實例後, SQL Server Browser不會對此伺服器實例的相關信息做出響應,(當 SQL Server 客戶端請求 SQL Server 資源時,客戶端將使用 1434 埠向伺服器發送一條 UDP 消息。SQL Server 瀏覽器將用請求的實例的 TCP/IP 埠或命名管道做出響應。然後,客戶端應用程式將使用所需實例的埠或命名管道向伺服器發送請求來完成連接。),此時,如果你沒有提供正確的埠號或命名管道,由於SQL Server Browser又不會對客戶端的連接做出響應,那麼除非你指定實例名和埠號,否則就會連接不上SQL Server。有些公司的安全規範,會要求設置隱藏SQL Server實例。這樣防止別人掃描獲取SQL Server資料庫實例信息。

如何隱藏SQL Server實例:

  1. 在“SQL Server 配置管理器”中,展開“SQL Server 網路配置”、右鍵單擊“<伺服器實例> 的協議”,然後選擇“屬性”。

  2. 在 “標誌” 選項卡的 “隱藏實例” 框中,選擇 “是” ,然後單擊 “確定” 關閉對話框。 對於新連接,更改會立即生效

如果SQL Server AlwaysOn的實例設置隱藏實例後,手動故障轉移時,你可能連接不到輔助節點。此時你可能遇到下麵錯誤(這裡的測試環境為SQL Server 2019, Tcp埠設置為靜態埠14033): SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified

遇到這個錯誤的時候,一般會從下麵幾個方面去排查:

  1. 確保伺服器名稱或IP正確無誤,例如,伺服器名稱上沒有錯別字。
  2. 確保實例名稱(Server Instance)正確無誤。
  3. 確保伺服器機器是可訪問的,例如,DNS可以正確解析,你可以ping伺服器(並不總是true)。
  4. 確保 SQL Browser 服務正在伺服器上運行。
  5. 如果在伺服器上啟用了防火牆,則需要將sqlbrowser.exe和/或UDP埠1434置於例外狀態。

這幾方面都排查過後,檢測發現1434 UDP埠狀態異常,防火牆也放開了UDP 1434埠

SQL Server隱藏實例的情況

C:\PortQryUI>portqry.exe -n 192.168.63.217 -p udp  -e 1434

Querying target system called:

 192.168.63.217

Attempting to resolve IP address to a name...


IP address resolved to ****

querying...

UDP port 1434 (ms-sql-m service): LISTENING or FILTERED

Sending SQL Server query to UDP port 1434...

UDP port 1434 (ms-sql-m service): FILTERED

SQL Server取消隱藏實例的情況

C:\PortQryUI>portqry.exe -n 192.168.63.217 -p udp  -e 1434

Querying target system called:

 192.168.63.217

Attempting to resolve IP address to a name...


IP address resolved to ****

querying...

UDP port 1434 (ms-sql-m service): LISTENING or FILTERED

Sending SQL Server query to UDP port 1434...

Server's response:

ServerName ****
InstanceName MSSQLSERVER
IsClustered No
Version 15.0.2000.5
tcp 14033



==== End of SQL Server query response ====

UDP port 1434 is LISTENING

官方文檔[1]還提示,隱藏實例可能會導致“故障轉移群集資源死鎖”,如下所示:

如果隱藏群集命名實例,當 LastConnect 註冊表項 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect) 具有的埠與SQL Server 正在偵聽的埠不同時,群集服務可能無法連接到 SQL Server。 如果群集服務無法建立與 SQL Server的連接,則你可能會看到類似於以下內容的錯誤:

事件 ID:1001:事件名稱:故障轉移群集資源死鎖

參考資料

[1]

官方文檔: https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/hide-an-instance-of-sql-server-database-engine?view=sql-server-ver16

掃描上面二維碼關註我 如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力! 本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我一直都以為c中除以2的n次方可以使用右移n位代替,然而在實際調試中發現並不都是這樣的。是在計算餘數是發現了異常 被除數:114325068 右移15計算結果:3488 除法取整計算結果:3489 右移操作計算餘數:33772 除法取整計算餘數:1005 顯然:這是不一樣的。 移位操作是一條cpu指 ...
  • 一:背景 1. 講故事 很多.NET開發者在學習高級調試的時候,使用sos的命令輸出會發現這裡也看不懂那裡也看不懂,比如截圖中的這位朋友。 .NET高級調試屬於一個偏冷門的領域,國內可觀測的資料比較少,所以很多東西需要你自己去探究源代碼,然後用各種調試工具去驗證,相關源代碼如下: coreclr: ...
  • 在本篇教程中,我們學習瞭如何使用 Taurus.MVC WebMVC 框架創建一個簡單的頁面。 我們創建了一個控制器並編寫了一個用於呈現頁面的方法,然後創建了對應的視圖,並最終成功運行了應用程式。 在下一篇教程中,我們將繼續探索 Taurus.MVC WebMVC 框架的更多功能和用法。 ...
  • 卡爾曼濾波器(Kalman filter)是一種高效的遞歸濾波器, 能夠從一系列包含噪音的測量值中估計動態系統的狀態. 因為不需要存儲歷史狀態, 沒有複雜計算, 非常適合在資源有限的嵌入式系統中使用. 常用於飛行器的導引, 導航及控制, 機械和金融中的時間序列分析, 軌跡最佳化等. 本文對卡爾曼濾波... ...
  • 創建工程 在STM32CubeMX中配置,選擇Makefile並生成。 環境安裝 編譯工程需要用到arm-none-eabi,去官網下載對應系統版本,下載後解壓到任意位置。 添加環境變數 添加環境變數到.bashrc文件: echo 'export PATH="/toolchain/arm-none ...
  • 哈嘍大家好,我是鹹魚。 之前寫過兩篇關於 SSL 過期巡檢腳本的文章: SSL 證書過期巡檢腳本 SSL 證書過期巡檢腳本(Python 版) 這兩篇文章都是講如何通過腳本去自動檢測 SSL 過期時間的,當我們發現某一功能變數名稱的 SSL 證書過期之後,就要及時更換。 如果這個功能變數名稱下有很多伺服器,我們一臺 ...
  • 當用戶需要的計算或者存儲資源冗餘超出業務需求時,可在管理控制台對已有集群進行縮容操作,以便充分利用GaussDB(DWS) 提供的計算資源和存儲資源。 ...
  • MySQL資料庫中,如何查看表和欄位的註釋信息,以及如何添加,修改表和欄位的註釋信息呢?這裡簡單總結歸納一下。僅供參考。 添加表的註釋信息 方法1:創建表的時候添加表的註釋信息 create table if not exists employee( employee_id int not null ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...