前陣子專案上線的時候,請公司的同事協助建立環境,其中使用了 cluster 架構的 MSMQ,沒想到為了保險而採用的架構,使用起來反而問題更多…
為了避免之後再發生相同的情況,所以自行研究了在 Windows Server 環境下如何建立容錯移轉叢集,安裝自己可能會用到的服務並使用程式碼進行相關測試。
感謝公司同事(廖桑跟子杰)不吝給予意見與協助。
本系列文章以 Windows Server 2008 R2 Enterprise 為例。
1、準備、建立與設定
相關紀錄如下:
- 【Windows Server】容錯移轉叢集安裝筆記(一):概要
- 【Windows Server】容錯移轉叢集安裝筆記(二):環境配置與系統設定
- 【Windows Server】容錯移轉叢集安裝筆記(三):建立容錯移轉叢集
- 【Windows Server】容錯移轉叢集安裝筆記(四):新增叢集磁碟
- 【Windows Server】容錯移轉叢集安裝筆記(五):叢集仲裁設定
2、安裝叢集 MSMQ
專案使用叢集 MSMQ,一開始是希望在叢集環境下,當服務失敗後會自動轉移至另一個節點,達到高可用性的目的。
結果在高可用性的目的達成了以後,卻發現訊息並不會跟著節點轉移而轉移,而是直接消失…
求助 google 的結果,主要分成兩派說法。
其中一種說法需要使用到 MSDTC 服務,藉由 MSDTC 來進行訊息轉移。
另一種說法是當服務節點轉移時都是在節點伺服器上重新啟動服務,所以資料並不會跟著轉移。
相關紀錄如下:
3、安裝叢集 SQL Server
網路上查到建立叢集的文章幾乎都是安裝 SQL Server 的,既然都已經安裝叢集了,就順便安裝一下 SQL Server 吧!
本系列文章以 SQL Server 2012 為例。
相關紀錄如下:
- 【Windows Server】容錯移轉叢集安裝筆記(七):安裝 SQL Server 容錯移轉叢集
- 【Windows Server】容錯移轉叢集安裝筆記(八):加入 SQL Server 容錯移轉叢集節點
4、叢集 SQL Server 分散式交易
而為了達到 SQL 分散式交易的目的,需要使用到 MSDTC 服務。
將應用程式所在主機與節點伺服器的「網路 DTC」開啟,可參考小弟文章:【Windows】啟用 MSDTC 服務與相關設定。
4.1 本機 DTC
在不安裝「叢集 DTC」的情況下,使用「本機 DTC」開啟「網路 DTC」進行測試,可以正常進行 SQL 分散式交易。
4.2 叢集 DTC
安裝並使用「叢集 DTC」,使用「叢集 DTC」開啟「網路 DTC」進行測試,可以正常進行 SQL 分散式交易。
另外也可以依照不同的服務或應用程式建立相依於單一服務或應用程式的「叢集 DTC」,按照官方說法可以增進效能。
- MSDN:Configure and Manage the Quorum in a Windows Server 2012 Failover Cluster
- Microsoft Support:You receive a warning about the network binding order on the Setup Support Rules page when you install SQL Server 2008 in a failover cluster
- Microsoft Doc:Configure the Windows Firewall to Allow SQL Server Access
- TechNet:Understanding MS DTC Resources in Windows Server 2008 Failover Clusters
- 學海無邊,書囊無底:容錯移轉叢集安裝 - (1) 伺服器環境準備
- 學海無邊,書囊無底:容錯移轉叢集安裝 - (2) SQL Server 2012
- The Will Will Web:安裝 SQL Server 2008 容錯轉移叢集心得筆記 – 第 1 篇
- The Will Will Web:安裝 SQL Server 2008 容錯轉移叢集心得筆記 – 第 2 篇
- The Will Will Web:安裝 SQL Server 2008 容錯轉移叢集心得筆記 – 第 3 篇 (完)
嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。
如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!