web-dev-qa-db-ja.com

SQL Server 2012フェールオーバークラスターにMSDTCは必要ですか?

2ノードのSQL Server 2012フェールオーバークラスターを作成しています。 MSDTCコンポーネントをインストールする必要がありますか?

はいの場合、両方を単一の共有ディスクにインストールできますか?

6
Frank Martin

MSDTCは、SQL Server 2012フェールオーバークラスターには必要ありません。ただし、リンクサーバーを使用する場合は、クラスター化されたMSDTCリソースを作成する必要があります。良いニュースは、クラスターが既に構築されていて、SQL Serverがインストールされた後にセットアップできることです。

4
Patrick Keisler

Microsoft分散トランザクションコーディネーター(MSDTC)は、複数のデータソース間で原子性と一貫性を保証するメカニズムを提供します。複数のデータソースにわたって明示的にトランザクション処理を実行する予定がある場合、またはSQL Server 2005をインストールする場合に必要です。

これは、クラスター化されたSQL Serverとクラスター化されていないSQL Serverの両方のインストールに等しく適用されます。

分散トランザクションを使用する予定がない場合は、MSDTCをインストールする必要はありません。

以下は、分散トランザクションの例です。

SET XACT_ABORT ON;
BEGIN TRY
    BEGIN TRANSACTION
    SELECT *
    FROM LinkedServerName.master.sys.sysobjects so;
    COMMIT TRANSACTION
END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0 
    BEGIN
        ROLLBACK TRANSACTION
    END
END CATCH

このようなT-SQLをクラスター化されたインスタンスで実行する予定がある場合は、SQL Serverインスタンス自体と同じクラスターリソースグループの一部として構成されている別のLUNにMSDTCをインストールする必要があります。 SQL Serverが使用するディスクにインストールしないでください。これらのディスクは、MSDTCサービスが停止する前のフェイルオーバー中に消えてしまう可能性があるためです。

Dcomcnfgユーティリティを使用して、分散トランザクションコーディネーターがネットワーク上で通信できるように、セキュリティ設定を構成する必要があります。

enter image description here

詳細については、 このMSDNブログ を参照してください。

4
Max Vernon