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 に送信します。プレースホルダー情報は山かっこ (<>) で示されます。プレースホルダーには展開固有の情報を入力してください。

プリンシパル サーバーを送信接続用に設定するには

  1. プリンシパル サーバーで、証明書を作成し、ミラーリング用のポートを開きます。

    --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
    
  2. プリンシパル サーバーで、証明書をバックアップします。

    --Back up the HOST_A certificate.
    BACKUP CERTIFICATE MASTER_HostA_cert TO FILE = '<c:\MASTER_HostA_cert.cer>';
    GO
    
  3. プリンシパル サーバーで、データベースをバックアップします。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。

    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
    
  4. バックアップ ファイルをミラー サーバーにコピーします。この手順をすべてのデータベースに対して行います。

  5. セキュリティで保護されたコピー方法を利用して、バックアップした証明書ファイル (C:\HOST_HostA_cert.cer など) をミラー サーバーにコピーします。

  6. プリンシパル サーバーで、ミラー サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。

    --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
    

ミラー サーバーを送信接続用に設定するには

  1. ミラー サーバーで、証明書を作成し、ミラーリング用のポートを開きます。

    --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
    
  2. ミラー サーバーで、証明書をバックアップします。

    --Back up the HOST_B certificate.
    BACKUP CERTIFICATE <HOST_HostB> TO FILE = '<C:\HOST_HostB_cert.cer>';
    GO 
    
  3. セキュリティで保護されたコピー方法を利用して、バックアップした証明書ファイル (C:\HOST_HostB_cert.cer など) をプリンシパル サーバーにコピーします。

  4. ミラー サーバーで、データベースをバックアップ ファイルから復元します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。

    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
    

ミラー サーバーを受信接続用に設定するには

  1. ミラー サーバーで、プリンシパル サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。

    --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
    

プリンシパル サーバーを受信接続用に設定するには

  1. プリンシパル サーバーで、ミラー サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。

    --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
    

ミラーリングのパートナーを設定するには

  1. プリンシパル サーバーで、ミラーリングのパートナーシップを設定します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。

    --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
    
  2. ミラー サーバーで、ミラーリングのパートナーシップを設定します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。

    --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 に送信します。プレースホルダー情報は山かっこ (<>) で示されます。プレースホルダーには展開固有の情報を入力してください。

  1. ミラーリング監視サーバーで、証明書を設定して、ポートを開きます。

    --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
    
  2. ミラーリング監視サーバーで、証明書をバックアップします。

    --Back up the HOST_C certificate 
    BACKUP CERTIFICATE <WITNESS_HostC_cert> TO FILE = '<c:\ WITNESS_HostC_cert.cer>';
    GO
    
  3. セキュリティで保護されたコピー方法を利用して、バックアップした証明書ファイル (C:\WITNESS_HOSTC_cert.cer など) をプリンシパル サーバーとミラー サーバーにコピーします。

  4. ミラーリング監視サーバーで、プリンシパル サーバーとミラー サーバー用のログインとユーザーを作成し、証明書をそれらのユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。

    --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
    
  5. プリンシパル サーバーで、ミラーリング監視サーバー用のログインとユーザーを作成し、証明書をユーザーに関連付けて、ログイン接続権限をパートナーシップに与えます。この手順をミラー サーバーに対しても行います。

    --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
    
  6. プリンシパル サーバーで、ミラーリング監視サーバーを接続します。この例では、構成データベースを使用しています。この手順をすべてのデータベースに対して行います。

    --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) を参照してください。