【Windows Server】容錯移轉叢集安裝筆記(一):概要

  前陣子專案上線的時候,請公司的同事協助建立環境,其中使用了 cluster 架構的 MSMQ,沒想到為了保險而採用的架構,使用起來反而問題更多…

  為了避免之後再發生相同的情況,所以自行研究了在 Windows Server 環境下如何建立容錯移轉叢集,安裝自己可能會用到的服務並使用程式碼進行相關測試。

  感謝公司同事(廖桑跟子杰)不吝給予意見與協助。

  本系列文章以 Windows Server 2008 R2 Enterprise 為例。

1、準備、建立與設定

  相關紀錄如下:

  1. 【Windows Server】容錯移轉叢集安裝筆記(一):概要
  2. 【Windows Server】容錯移轉叢集安裝筆記(二):環境配置與系統設定
  3. 【Windows Server】容錯移轉叢集安裝筆記(三):建立容錯移轉叢集
  4. 【Windows Server】容錯移轉叢集安裝筆記(四):新增叢集磁碟
  5. 【Windows Server】容錯移轉叢集安裝筆記(五):叢集仲裁設定

2、安裝叢集 MSMQ

  專案使用叢集 MSMQ,一開始是希望在叢集環境下,當服務失敗後會自動轉移至另一個節點,達到高可用性的目的。

  結果在高可用性的目的達成了以後,卻發現訊息並不會跟著節點轉移而轉移,而是直接消失…

  求助 google 的結果,主要分成兩派說法。

  其中一種說法需要使用到 MSDTC 服務,藉由 MSDTC 來進行訊息轉移。

  另一種說法是當服務節點轉移時都是在節點伺服器上重新啟動服務,所以資料並不會跟著轉移。

在自行測試時無意間發現,無論有無使用 MSDTC,轉移 MSMQ 服務至其他節點,交易式訊息佇列上的訊息主體會一併轉移,非交易式訊息佇列上的訊息主體會消失。

  相關紀錄如下:

  1. 【Windows Server】容錯移轉叢集安裝筆記(六):安裝 MSMQ

3、安裝叢集 SQL Server

  網路上查到建立叢集的文章幾乎都是安裝 SQL Server 的,既然都已經安裝叢集了,就順便安裝一下 SQL Server 吧!

  本系列文章以 SQL Server 2012 為例。

  相關紀錄如下:

  1. 【Windows Server】容錯移轉叢集安裝筆記(七):安裝 SQL Server 容錯移轉叢集
  2. 【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」,按照官方說法可以增進效能。

使用單一「叢集 DTC」時,當「叢集 DTC」的服務節點與「SQL Server」的服務節點不為同一台節點伺服器時,分散式交易會逾時。此時關閉防火牆就能夠正常互通了,推測應該是 RPC port 的問題。

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!