Windows 認証の使用によるデータベースのミラーリング監視の追加 (Transact-SQL)
データベースのミラーリング監視を設定するには、データベース所有者が、データベース エンジンのインスタンスをミラーリング監視サーバーの役割に割り当てます。 ミラーリング監視サーバーのインスタンスは、プリンシパル サーバーまたはミラー サーバーのインスタンスと同じコンピューターで実行できますが、このようにすると、自動フェールオーバーの堅牢性が大幅に低下します。
ミラーリング監視は独立したコンピューターに常駐させることを強くお勧めします。 特定のサーバーを、同じパートナーまたは別のパートナーを含む複数の同時実行データベース ミラーリング セッションに参加させることができます。 また、特定のサーバーを、あるセッションではパートナーとし、別のセッションではミラーリング監視にすることができます。
ミラーリング監視は、自動フェールオーバーを伴う高い安全性モードでの使用だけが想定されています。 ミラーリング監視を設定する前に、SAFETY プロパティが現在 FULL に設定されていることを確認するよう強くお勧めします。
重要
構成はパフォーマンスに影響する場合があるので、データベース ミラーリングの構成はピーク タイム以外の時間に行うことをお勧めします。
ミラーリング監視を確立するには
ミラーリング監視サーバーのインスタンスで、データベース ミラーリングのエンドポイントが存在することを確認します。 サポートされるミラーリング セッションの数に関係なく、サーバー インスタンスにはデータベース ミラーリング エンドポイントが 1 つだけ存在する必要があります。 このサーバー インスタンスをデータベース ミラーリング セッションのミラーリング監視サーバーとして排他的に使用する場合は、監視の役割をエンドポイント (ROLE = WITNESS) に割り当てます。 このサーバー インスタンスを 1 つ以上の他のデータベース ミラーリング セッションのパートナーとして使用する場合、エンドポイントの役割を ALL に割り当てます。
SET WITNESS ステートメントを実行するには、データベース ミラーリング セッションが (パートナー間で) 既に開始されていて、ミラーリング監視のエンドポイントの STATE が STARTED に設定されている必要があります。
ミラーリング監視サーバーのインスタンスにデータベース ミラーリング エンドポイントがあるかどうかを把握し、そのエンドポイントの役割と状態を把握するには、インスタンスで次の Transact-SQL ステートメントを使用します。
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
重要
データベース ミラーリング エンドポイントが存在し、既に使用されている場合、サーバー インスタンスのすべてのセッションでそのエンドポイントを使用することをお勧めします。 使用中のエンドポイントを削除すると、既存のセッションの接続が切断されます。 セッションにミラーリング監視サーバーが設定されている場合、データベース ミラーリングのエンドポイントを削除すると、そのセッションのプリンシパル サーバーがクォーラムを失う可能性があります。プリンシパル サーバーがクォーラムを失うと、データベースがオフラインになりユーザー接続が切断されます。 詳細については、「クォーラム: データベースの可用性にミラーリング監視が与える影響 (データベース ミラーリング)」を参照してください。
ミラーリング監視にエンドポイントが存在しない場合は、「Windows 認証でのデータベース ミラーリング エンドポイントの作成 (Transact-SQL)」を参照してください。
パートナー インスタンスが異なるドメイン ユーザー アカウントで実行されている場合、各インスタンスの master データベースに別のアカウントのログインを作成します。 詳細については、「Windows 認証を使用してデータベース ミラーリング エンドポイントへのネットワーク アクセスを許可する (SQL Server)」を参照してください。
プリンシパル サーバーに接続し、次のステートメントを実行します。
ALTER DATABASE <database_name> SET WITNESS = <server_network_address>
はミラー化するデータベースの名前 (両方のパートナーで同一の名前にします)、 はミラーリング監視サーバー インスタンスのサーバー ネットワーク アドレスです。 サーバー ネットワーク アドレスの構文は次のとおりです。
TCP**://<system-address>:**<port>
<<system-address>> は目的のコンピューター システムを明確に指定する文字列です。また、<
> はパートナー サーバー インスタンスのミラーリング エンドポイントが使用するポート番号です。 詳細については、「サーバー ネットワーク アドレスの指定 (データベース ミラーリング)」を参照してください。たとえば、プリンシパル サーバー インスタンスでは、次の ALTER DATABASE ステートメントでミラーリング監視を設定します。 データベース名は AdventureWorks、システム アドレスは DBSERVER3 (ミラーリング監視システムの名前)、ミラーリング監視のデータベース ミラーリング エンドポイントが使用するポートは
7022
です。ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://DBSERVER3:7022'
例
次の例では、データのミラーリング監視を確立します。 ミラーリング監視サーバー インスタンス ( WITNESSHOST4
の既定のインスタンス) で、次の手順を実行します。
7022
を使用する WITNESS の役割だけにこのサーバー インスタンスのエンドポイントを作成します。CREATE ENDPOINT Endpoint_Mirroring STATE=STARTED AS TCP (LISTENER_PORT=7022) FOR DATABASE_MIRRORING (ROLE=WITNESS) GO
パートナー インスタンスのドメイン ユーザー アカウントが異なる場合は、そのログインを作成します。たとえば、ミラーリング監視サーバーが
SOMEDOMAIN\witnessuser
で実行されていて、パートナーがMYDOMAIN\dbousername
で実行されている場合などです。 パートナーのログインを作成するには、以下のステートメントを実行します。--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 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 partners GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser]; GO
プリンシパル サーバーで、ミラーリング監視サーバー (
WITNESSHOST4
) を設定します。ALTER DATABASE AdventureWorks SET WITNESS = 'TCP://WITNESSHOST4:7022' GO
注意
サーバー ネットワーク アドレスはターゲット サーバー インスタンスを、インスタンスのミラーリング エンドポイントにマップされるポート番号で示します。
セキュリティの設定、ミラー データベースの準備、パートナーの設定、およびミラーリング監視サーバーの追加をすべて含む例については、「データベース ミラーリングの設定 (SQL Server)」を参照してください。
参照
ALTER DATABASE (Transact-SQL)
Windows 認証を使用してデータベース ミラーリング エンドポイントへのネットワーク アクセスを許可する (SQL Server)
Windows 認証でのデータベース ミラーリング エンドポイントの作成 (Transact-SQL)
Windows 認証を使用してデータベース ミラーリング セッションを確立する方法 (Transact-SQL)
データベース ミラーリング セッションからのミラーリング監視の削除 (SQL Server)
データベース ミラーリング監視サーバー