SQL Server ミラーリングを構成するスクリプトの例 (SharePoint Foundation 2010)
適用先: SharePoint Foundation 2010
この記事では、Microsoft SharePoint Foundation 2010 のテスト環境に Microsoft SQL Server のミラーリングを設定する際に使用できる一連のサンプル スクリプトについて説明します。SQL Server データベースの管理者は、運用環境にミラーリングを構成することをお勧めします。
SharePoint Foundation 2010 でデータベースのミラーリングを設定するには、ミラー化する各データベースを個別に操作する必要があります。
この記事の内容
証明書と完全復旧を使用して、データベースのミラーリングを構成する
ミラーリング監視サーバーを設定する
権限をミラー サーバーに転送する
以下のセクションに記載される手順は、次のサーバー ファーム トポロジに適用されます。
1 台以上のフロントエンド Web サーバー
SQL Server 2008 を実行する 3 台のサーバー: プリンシパル サーバー、ミラー サーバー、ミラーリング監視サーバー
1 つの構成データベース
複数のコンテンツ データベース
1 つ以上のサービス アプリケーション データベース
証明書と完全復旧を使用して、データベースのミラーリングを構成する
各手順には、その手順を実行する必要があるサーバーが示されます。Transact-SQL を使用して、これらのコマンドを SQL Server に送信します。プレースホルダー情報は山かっこ (<>) で示されます。プレースホルダーには展開固有の情報を入力してください。
プリンシパル サーバーを送信接続用に設定するには
プリンシパル サーバーで、証明書を作成し、ミラーリング用のポートを開きます。
--On the master database, create the database master key, if needed CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<test1234->'; GO -- Make a certificate for this server instance. USE master; CREATE CERTIFICATE <MASTER_HostA_cert> WITH SUBJECT = '<Master_HostA certificate>'; GO --Create a mirroring endpoint for server instance by using the certificate CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=5024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE <MASTER_HostA_cert> , ENCRYPTION = REQUIRED ALGORITHM RC4 , ROLE = ALL ); GO
プリンシパル サーバーで、証明書をバックアップします。
--Back up the HOST_A certificate. BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>'; GO
プリンシパル サーバーで、データベースをバックアップします。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。
USE master; --Ensure that SharePoint_Config uses the full recovery model. ALTER DATABASE SharePoint_Config SET RECOVERY FULL; GO USE SharePoint_Config BACKUP DATABASE SharePoint_Config TO DISK = '<c:\SharePoint_Config.bak>' WITH FORMAT GO BACKUP Log SharePoint_Config TO DISK = '<c:\SharePoint_Config_log.bak>' WITH FORMAT GO
バックアップ ファイルをミラー サーバーにコピーします。この手順をすべてのデータベースに対して行います。
セキュリティで保護されたコピー方法を利用して、バックアップした証明書ファイル (C:\HOST_HostA_cert.cer など) をミラー サーバーにコピーします。
プリンシパル サーバーで、ミラー サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。
--Create a login on HOST_A for HOST_B USE master; CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>'; GO --Create a user for that login. CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>; GO --Associate the certificate with the user CREATE CERTIFICATE <HOST_HostB_cert> AUTHORIZATION <HOST_HostB_user> FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid GO --Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>]; GO
ミラー サーバーを送信接続用に設定するには
ミラー サーバーで、証明書を作成し、ミラーリング用のポートを開きます。
--On the master database, create the database master key, if needed. USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234-test>'; GO -- Make a certificate on the HOST_B server instance. CREATE CERTIFICATE <HOST_HostB> WITH SUBJECT = '<HOST_HostB certificate for database mirroring>'; GO --Create a mirroring endpoint for the server instance on HOST_B. CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=5024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE <HOST_HostB> , ENCRYPTION = REQUIRED ALGORITHM RC4 , ROLE = ALL ); GO
ミラー サーバーで、証明書をバックアップします。
--Back up the HOST_B certificate. BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>'; GO
セキュリティで保護されたコピー方法を利用して、バックアップした証明書ファイル (C:\HOST_HostB_cert.cer など) をプリンシパル サーバーにコピーします。
ミラー サーバーで、データベースをバックアップ ファイルから復元します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。
RESTORE DATABASE SharePoint_Config FROM DISK = '<c:\SharePoint_Config.bak>' WITH NORECOVERY GO RESTORE log SharePoint_Config FROM DISK = '<c:\SharePoint_Config_log.bak>' WITH NORECOVERY GO
ミラー サーバーを受信接続用に設定するには
ミラー サーバーで、プリンシパル サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。
--Create a login on HOST_B for HOST_A USE master; CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->'; GO --Create a user for that login. CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>; GO --Associate the certificate with the user CREATE CERTIFICATE <MASTER_HostA_cert> AUTHORIZATION <MASTER_HostA_user> FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid GO --Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>]; GO
プリンシパル サーバーを受信接続用に設定するには
プリンシパル サーバーで、ミラー サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。
--Create a login on HOST_A for HOST_B USE master; CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>'; GO --Create a user for that login. CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>; GO --Associate the certificate with the user CREATE CERTIFICATE <HOST_HostB_cert> AUTHORIZATION <HOST_HostB_user> FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid GO --Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>]; GO
ミラーリングのパートナーを設定するには
プリンシパル サーバーで、ミラーリングのパートナーシップを設定します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。
--At HOST_A, set the server instance on HOST_B as a partner (mirror server). ALTER DATABASE SharePoint_Config SET PARTNER = '<TCP://databasemirror.adatum.com:5024>'; GO
ミラー サーバーで、ミラーリングのパートナーシップを設定します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。
--At HOST_B, set the server instance on HOST_A as a partner (principal server): ALTER DATABASE SharePoint_Config SET PARTNER = '<TCP://databasemaster.adatum.com:5024>'; GO
ミラーリング監視サーバーを設定する
各手順には、その手順を実行する必要があるサーバーが示されます。Transact-SQL を使用して、これらのコマンドを SQL Server に送信します。プレースホルダー情報は山かっこ (<>) で示されます。プレースホルダーには展開固有の情報を入力してください。
ミラーリング監視サーバーで、証明書を設定して、ポートを開きます。
--On the master database, create the database master key, if needed CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1234test->'; GO -- Make a certificate for this server instance. USE master; CREATE CERTIFICATE <WITNESS_HostC_cert> WITH SUBJECT = '<Witness_HostC certificate>'; GO --Create a mirroring endpoint for server instance by using the certificate CREATE ENDPOINT Endpoint_Mirroring STATE = STARTED AS TCP ( LISTENER_PORT=5024 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE <WITNESS_HostC_cert , ENCRYPTION = REQUIRED ALGORITHM RC4 , ROLE = ALL ); GO
ミラーリング監視サーバーで、証明書をバックアップします。
--Back up the HOST_C certificate BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>'; GO
セキュリティで保護されたコピー方法を利用して、バックアップした証明書ファイル (C:\WITNESS_HOSTC_cert.cer など) をプリンシパル サーバーとミラー サーバーにコピーします。
ミラーリング監視サーバーで、プリンシパル サーバーとミラー サーバー用のログインとユーザーを作成し、証明書をそれらのユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。
--Create a login on witness HOST_C for principal HOST_A USE master; CREATE LOGIN <MASTER_HostA_login> WITH PASSWORD = '<test1234->'; GO --Create a user for that login. CREATE USER <MASTER_HostA_user> FOR LOGIN <MASTER_HostA_login>; GO --Associate the certificate with the user CREATE CERTIFICATE <MASTER_HostA_cert> AUTHORIZATION <MASTER_HostA_user> FROM FILE = '<c:\MASTER_HostA_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid GO --Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<MASTER_HostA_login>]; GO --Create a login for the mirror Host_B CREATE LOGIN <HOST_HostB_login> WITH PASSWORD = '<1234-test>'; GO --Create a user for that login. CREATE USER <HOST_HostB_user> FOR LOGIN <HOST_HostB_login>; GO --Associate the certificate with the user CREATE CERTIFICATE <HOST_HostB_cert> AUTHORIZATION <HOST_HostB_user> FROM FILE = '<c:\HOST_HostB_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid GO --Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<HOST_HostB_login>]; GO
プリンシパル サーバーで、ミラーリング監視サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。この手順をミラー サーバーに対しても行います。
--Create a login on master HostA for witness HostC USE master; CREATE LOGIN <WITNESS_HostC_login> WITH PASSWORD = '<1234test->'; GO --Create a user for that login. CREATE USER <WITNESS_HostC_user> FOR LOGIN <WITNESS_HostC_login>; GO --Associate the certificate with the user CREATE CERTIFICATE <WITNESS_HostC_cert> AUTHORIZATION <WITNESS_HostC_user> FROM FILE = '<c:\WITNESS_HostC_cert.cer>' --do not use a network path, SQL Server will give an error about the key not being valid GO --Grant CONNECT permission on the login for the remote mirroring endpoint. GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [<WITNESS_HostC_login>]; GO
プリンシパル サーバーで、ミラーリング監視サーバーを接続します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。
--Set up the witness server ALTER DATABASE SharePoint_Config SET WITNESS = '<TCP://databasewitness.adatum.com:5024>' GO
権限をミラー サーバーに転送する
ミラー化されたデータベースを設定しても、そのデータベースを SharePoint ファームで使用するための SQL Server のログインおよび権限がミラー サーバーの master データベースや msdb データベースで自動的に構成されることはありません。代わりに、必要なログインの権限を構成する必要があります。
ログインと権限をプリンシパル サーバーからミラー サーバーに転送するには、スクリプトを実行することをお勧めします。使用する推奨スクリプトは、サポート技術情報の記事 918992「SQL Server 2005 のインスタンス間でログインおよびパスワードを転送する方法」 (https://go.microsoft.com/fwlink/?linkid=122053&clcid=0x411) で参照できます。
ミラーリングをサーバーから削除する
ミラーリングをサーバーから削除するには、「データベース ミラーリングを削除する方法 (Transact-SQL)」 (https://go.microsoft.com/fwlink/?linkid=185070&clcid=0x411) を参照してください。