次の方法で共有


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

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

この例の前提条件

重要な注意事項重要

Windows 認証を使用してデータベース ミラーリング セッションを確立する方法 (Transact-SQL)」の「作業を開始する準備」をお読みになることをお勧めします。

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

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

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

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

権限

CREATE ENDPOINT 権限、または sysadmin 固定サーバー ロールのメンバーシップが必要です。データベースに対する ALTER 権限が必要です。

この例では、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];
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
    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];
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    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];
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    GO
    
    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];
    --Grant connect permissions on endpoint to login account of partners.
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];
    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
    
    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 AdventureWorks2008R2 
        SET PARTNER = 
        'TCP://PARTNERHOST1.COM:7022';
    GO
    
    ALTER DATABASE AdventureWorks2008R2 
        SET PARTNER = 
        'TCP://PARTNERHOST1.COM:7022';
    GO
    
  6. PARTNERHOST1 のプリンシパル サーバー インスタンスで、PARTNERHOST5 のサーバー インスタンスをパートナーとして設定します (初期ミラー サーバー インスタンスにします)。

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

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