91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

案例分享:數據庫鏡像故障轉移失敗

發布時間:2020-06-28 04:53:11 來源:網絡 閱讀:2526 作者:UltraSQL 欄目:數據庫

案例分享:數據庫鏡像故障轉移失敗

 

對于關鍵性數據庫,我們配置了帶有見證服務器的同步數據庫鏡像,來允許自動故障轉移。一切運行正常,直到有一次數據中心的突然斷電。數據庫鏡像執行了故障轉移,但是運維反饋說應用程序掛起了。當我們手動切換回來,應用程序又正常工作。為什么應用程序沒有也故障轉移呢?

 

這是使用數據庫鏡像的合理的常見問題,像這樣的生產應用失敗,是因為在鏡像部署后沒有做故障轉移測試。在失敗的故障轉移之后我們感到棘手。

 

為了避免生產應用停機,我們在測試環境復制了線上的鏡像環境。在確認應用和數據庫鏡像正常工作后,我們將主服務器關機,應用完全掛起。

 

我們檢查了,鏡像服務器已經成功初始化了一個故障轉移,并在線作為主服務器。我們也檢查了鏡像數據庫為在線狀態,可以被新的主服務器本地訪問,并且主服務器也可以像被應用程序使用一樣被遠程客戶端訪問。

 

然后,我們來檢查應用程序。和開發聊了下,他確認應用程序是使用ADO.NET來連接SQL Server,并使用顯式客戶端重定向,在SqlConnection的ConnectionString屬性指定鏡像服務器名。(順便說一句,使用顯式客戶端重定向總是比隱式客戶端重啟定向要好,隱式依賴于客戶端連接建立時自動緩存的鏡像服務器名)

 

那為什么應用程序沒有故障轉移呢?

 

我深入探究應用程序是如何處理連接失敗,發現根本沒有應對存在的連接失敗的代碼!基本上,當應用程序初始化,應用會打開一個到SQL Server的連接,并且絕不嘗試重連。

 

結果發現:盡管DBA部署了數據庫鏡像,沒有和開發討論過高可用性,因此應用程序代碼沒有改變。在開發修復后,應用程序連接層可以應對連接失敗和執行重連邏輯,在數據庫故障轉移之后可以完美工作。

 

這個故事告訴我們,需要重新構建應對發生的連接失敗和重連,來讓故障轉移正確工作。在這個案例中,如果我們在部署在生產環境之前,在測試環境嘗試了數據庫鏡像故障轉移,那客戶端就會發現這個問題了。

 

具體原理和應用程序的代碼示例,可參考以下文章:   

  • 將客戶端連接到數據庫鏡像會話(https://msdn.microsoft.com/zh-cn/library/ms175484.aspx)    

  • Implementing Application Failover with Database Mirroring(https://technet.microsoft.com/en-us/library/cc917713.aspx#EDAA)    

  • Sample Application to test database mirroring failover(https://blogs.msdn.microsoft.com/grahamk/2009/01/16/sample-application-to-test-database-mirroring-failover/)



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

红河县| 贺州市| 平武县| 北京市| 乌鲁木齐县| 建德市| 广河县| 四子王旗| 隆子县| 泰兴市| 博罗县| 哈密市| 渑池县| 巴南区| 昌吉市| 景东| 河津市| 抚顺县| 新巴尔虎左旗| 罗平县| 巴塘县| 璧山县| 丰顺县| 怀宁县| 淳安县| 平谷区| 南丹县| 高青县| 香港| 东城区| 麦盖提县| 新干县| 五寨县| 灵川县| 盖州市| 湟中县| 洪泽县| 南江县| 榆树市| 扬州市| 古丈县|