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> |
プリンシパル サーバー インスタンス (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
ミラー サーバー インスタンス (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
ミラーリング監視サーバー インスタンス (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
ミラー データベースを作成します。詳細については、「ミラーリング用のミラー データベースを準備する方法 (Transact-SQL)」を参照してください。
PARTNERHOST5 のミラー サーバー インスタンスで、PARTNERHOST1 のサーバー インスタンスをパートナーとして設定します (初期プリンシパル サーバー インスタンスにします)。
ALTER DATABASE AdventureWorks2008R2 SET PARTNER = 'TCP://PARTNERHOST1.COM:7022'; GO ALTER DATABASE AdventureWorks2008R2 SET PARTNER = 'TCP://PARTNERHOST1.COM:7022'; GO
PARTNERHOST1 のプリンシパル サーバー インスタンスで、PARTNERHOST5 のサーバー インスタンスをパートナーとして設定します (初期ミラー サーバー インスタンスにします)。
ALTER DATABASE AdventureWorks2008R2 SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'; GO ALTER DATABASE AdventureWorks2008R2 SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'; GO
プリンシパル サーバーで、ミラーリング監視サーバー (WITNESSHOST4) を設定します。
ALTER DATABASE AdventureWorks2008R2 SET WITNESS = 'TCP://WITNESSHOST4.COM:7022'; GO ALTER DATABASE AdventureWorks2008R2 SET WITNESS = 'TCP://WITNESSHOST4.COM:7022'; GO
関連項目