Windows 認証を使用したデータベース ミラーリングの設定の例 (Transact-SQL)

この例では、Windows 認証を使用してミラーリング監視サーバーを利用するデータベース ミラーリング セッションを作成する場合に必要なすべての段階を示しています。このトピックの例では、Transact-SQL を使用します。Transact-SQL を使用する代わりに、データベース ミラーリング セキュリティ構成ウィザードを使用してデータベース ミラーリングを設定することもできます。詳細については、「データベース ミラーリングの管理 (SQL Server Management Studio)」を参照してください。

前提条件

この例では、既定により単純復旧モデルを使用する AdventureWorks サンプル データベースを使用します。このデータベースでデータベース ミラーリングを使用するには、完全復旧モデルを使用するように変更する必要があります。Transact-SQL を使用してこの変更を行うには、次のように ALTER DATABASE ステートメントを使用します。

USE master;
GO
ALTER DATABASE AdventureWorks 
SET RECOVERY FULL;
GO

SQL Server Management Studio を使用した復旧モデルの変更に関する詳細については、「データベースの復旧モデルを表示または変更する方法 (SQL Server Management Studio)」を参照してください。

この例では、2 つのパートナーとミラーリング監視サーバーが、3 つのコンピュータ システムの既定のサーバー インスタンスです。3 つのサーバー インスタンスは同じ Windows ドメインで実行されますが、ミラーリング監視サーバー インスタンスはユーザー アカウントが異なります。

次の表は、この例で使用する値をまとめたものです。

初期ミラー化ロール

ホスト システム

ドメイン ユーザー アカウント

プリンシパル

PARTNERHOST1

<Mydomain>\<dbousername>

ミラー

PARTNERHOST5

<Mydomain>\<dbousername>

ミラーリング監視

WITNESSHOST4

<Somedomain>\<witnessuser>

  1. プリンシパル サーバー インスタンス (PARTNERHOST1 の既定のインスタンス) でエンドポイントを作成します。

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=PARTNER)
    GO
    --Partners under same domain user; login already exists in master.
    --Create a login for the witness server instance,
    --which is running as Somedomain\witnessuser:
    USE master ;
    GO
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;
    GO
    -- Grant connect permissions on endpoint to login account of witness.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];
    GO
    
  2. ミラー サーバー インスタンス (PARTNERHOST5 の既定のインスタンス) でエンドポイントを作成します。

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=ALL)
    GO
    --Partners under same domain user; login already exists in master.
    --Create a login for the witness server instance,
    --which is running as Somedomain\witnessuser:
    USE master ;
    GO
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;
    GO
    --Grant connect permissions on endpoint to login account of witness.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];
    GO
    
  3. ミラーリング監視サーバー インスタンス (WITNESSHOST4 の既定のインスタンス) でエンドポイントを作成します。

    CREATE ENDPOINT Endpoint_Mirroring
        STATE=STARTED 
        AS TCP (LISTENER_PORT=7022) 
        FOR DATABASE_MIRRORING (ROLE=WITNESS)
    GO
    --Create a login for the partner server instances,
    --which are both running as Mydomain\dbousername:
    USE master ;
    GO
    CREATE LOGIN [Mydomain\dbousername] FROM WINDOWS ;
    GO
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
  4. ミラー データベースを作成します。詳細については、「ミラーリング用のミラー データベースを準備する方法 (Transact-SQL)」を参照してください。

  5. PARTNERHOST5 のミラー サーバー インスタンスで、PARTNERHOST1 のサーバー インスタンスをパートナーとして設定します (初期プリンシパル サーバー インスタンスにします)。

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 
        'TCP://PARTNERHOST1.COM:7022'
    GO
    
  6. PARTNERHOST1 のプリンシパル サーバー インスタンスで、PARTNERHOST5 のサーバー インスタンスをパートナーとして設定します (初期ミラー サーバー インスタンスにします)。

    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'
    GO
    
  7. プリンシパル サーバーで、ミラーリング監視サーバー (WITNESSHOST4) を設定します。

    ALTER DATABASE AdventureWorks 
        SET WITNESS = 
        'TCP://WITNESSHOST4.COM:7022'
    GO