Share via


SQL Server データベース ミラーリングを構成するためのサンプル スクリプト (SharePoint Server 2010)

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

この記事には、Microsoft SharePoint Server 2010 環境をテストするための Microsoft SQL Server ミラーリングのセットアップに使用できる一連のサンプル スクリプトが含まれます。SQL Server データベース管理者には運用環境用にミラーリングを構成することをお勧めします。

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