MSDTCのクラスタ化

こんにちは。
ヒゲダルマです。

先日、タイトルの件について人に相談されたので、ついでにまとめておきます。

SQL Serverのフェールオーバークラスタを構成する際はMSDTC(Microsoft 分散トランザクション コーディネーター)もクラスタリソースとして合わせて構成するケースが殆どかと思います。

確かに、Windows Server 2003まではMSDTCをクラスタリソースとして構成することが仕様上必須でした。

しかし、Windows Server 2008 + SQL Server 2005以降でフェールオーバークラスタを構成する場合にはMSDTCをクラスタリソースとして構成することは仕様上必須ではなくなっています。(ローカルMSDTCは必要ですが、クラスタ化しなくてもOKです。)

にも関わらず、今(Windows Server 2012+SQL Server 2014とか)でもMSDTCを当たり前のようにクラスタリソースとして構成するのは何故でしょう。習慣(?)それも一部ありそうですが。。。

MSDTCをクラスタリソース化しておく正しい理由は、トランザクション中にSQL Serverがフェールオーバーした際のMSDTCの処理/動作にあります。
MSDTCをクラスタリソース化した場合トランザクションはRollbackされますが、ローカルMSDTCの場合トランザクションはAbortされます。

つまり、トランザクションが適切に処理されることを望むなら、MSDTCはクラスタリソース化しておくべき、ということです。

より詳細については、こちらをご覧下さい。

ところで、弊社ではITインフラ全般の導入/構築を手掛けております。ご興味を持たれましたら、是非、こちらまでお問い合わせ下さい。

また、SQL Server 関連の記事としては、以下のようなものもございます。
お暇な時にご一読下さい。

SQL Server 2019
SQL Server 2008 R2のインストールの自動化
MSDTCのクラスタ化

以上、駄文散文ではございましたが、ご拝読ありがとうございました。

GFCのホームページはこちら

SQL ServerなどIT環境構築に関連するGFCのサービスはこちらから。

お問い合わせフォームはこちらから。

コメントを残す