こんにちは。
ヒゲダルマです。
先日、タイトルの件について人に相談されたので、ついでにまとめておきます。
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のサービスはこちらから。
お問い合わせフォームはこちらから。