[英]How to connect to a Sql Server VM via private IP with Azure Website
[英]SQL Server 2012 mirror in azure VM - on second failover app loses connectivity
我們在Azure VM上有一個鏡像的SQL Server 2012數據庫設置-兩台服務器以及一個見證程序,全部使用客戶端證書,並且SQL登錄名具有相同的SID集。
當從不同的VM測試我們的應用程序時,當我們手動對數據庫進行故障轉移時,一切都會按預期工作,需要等待一秒鍾,然后它才能非常快樂地運行。
如果然后再進行一次手動故障轉移,即將主體移回原始服務器,則應用程序將出錯並拋出“未知主機未知”錯誤。 回收應用程序池可以解決此問題,但是當其中一台服務器先更新,隨后又更新另一台服務器時,這顯然在生產中不可行(兩者均在可用性集中)。
主機未知錯誤在某種程度上令人困惑,因為它在初始故障轉移之前與主機進行了愉快的通信,並在應用程序池回收后再次與主機通信。
經過大量的摸索之后,這是現在的連接字符串:
“數據源= server1,1433;故障轉移伙伴= server2,1433;初始目錄=; MultipleActiveResultSets = True;用戶ID = user;密碼=密碼;網絡= dbmssocn;連接超時= 60;異步= true;” 的providerName = “System.Data.SqlClient的”
該應用程序在.net 4.5.2上運行,因此應該使用最新的修補程序,並且在與Bing進行大量谷歌搜索之后,我們沒有任何想法。
我剛剛解決了一個看起來與您的問題非常相似的問題。 每當數據庫從web.config文件中列出的第一個數據庫切換到故障轉移數據庫時,我都會得到主機未知錯誤。 從故障轉移切換到主節點很好。
我遇到的問題是我使用服務器名稱設置了數據庫鏡像,但是我的Web服務器不知道按名稱命名的數據庫服務器。 修復此問題后,便可以使故障轉移在兩種情況下均能順利進行。
我認為這是正在發生的事情:
SQL1
和SQL2
作為主體服務器和鏡像服務器來設置鏡像 10.1.1.5
和10.1.1.6
10.1.1.5
並成功,然后被告知鏡像服務器是SQL2
SQL1
關閉,數據庫成功切換到鏡像服務器。 SQL2
,並失敗,並顯示主機未知的消息。 僅當您實際將ip地址放入web.config中並且server1,1433
和server2,1433
實際上掩蓋了您實際使用的ip地址的占位符時,此答案才適用於您的情況。
我還沒有真正解決命名問題。 我只是將兩個數據庫服務器名稱添加到HOSTS文件中,這是無法接受的情況,但確實證明了我對問題所在的看法。
我正在像您一樣研究一種設置,並且在閱讀本文以及Steve Kaye的回答后,我想知道您是否正在運行SQL瀏覽器。 看一下這篇文章,了解SQL瀏覽器是如何發揮作用的:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.