Configuration Managerの管理ポイントのデータベース レプリカ

Configuration Manager (現在のブランチ) に適用

プライマリ サイトConfiguration Managerデータベース レプリカを使用して、クライアントからの要求を処理する際に、管理ポイントによってサイト データベース サーバーに対する CPU 負荷を軽減できます。 管理ポイントは、データベース レプリカを使用すると、サイト データベース サーバーではなく、データベース レプリカをホストするSQL Server コンピューターからデータを要求します。

この構成は、クライアントに関連する頻繁な処理タスクをオフロードすることで、サイト データベース サーバーの CPU 処理要件を減らすのに役立ちます。 クライアントの頻繁な処理タスクの例としては、クライアント ポリシーを頻繁に要求するクライアントが多数存在するサイトが含まれます。

概要

  • レプリカは、サイト データベースの部分的なコピーであり、SQL Serverの別のインスタンスにレプリケートされます。

    • プライマリ サイトでは、サイトの管理ポイントごとに専用データベース レプリカがサポートされます。

    • セカンダリ サイトでは、データベース レプリカはサポートされていません。

    • 1 つのデータベース レプリカは、同じサイトの複数の管理ポイントで使用できます。

    • SQL Serverは、それぞれがSQL Serverの個別のインスタンスで実行されている限り、異なる管理ポイントで使用するために複数のデータベース レプリカをホストできます。

  • レプリカは、この目的のためにサイトのデータベース サーバーが発行するデータから、固定スケジュールでサイト データベースのコピーを同期します。

  • レプリカをインストールするときに、または後で使用するように管理ポイントを構成できます。 既存の管理ポイントの場合は、データベース レプリカを使用するように再構成します。

  • サイト データベース サーバーと各データベース レプリカ サーバーを定期的に監視して、それらの間でレプリケーションが発生することを確認します。 データベース レプリカ サーバーのパフォーマンスが、必要なサイトとクライアントのパフォーマンスに十分であることを確認します。

前提条件

SQL Server要件

  • データベース レプリカをホストするSQL Serverには、サイト データベース サーバーと同じ要件があります。 レプリカ サーバーは、サポートされているバージョンとエディションのSQL Serverを実行している限り、サイト データベース サーバーと同じバージョンまたはエディションのSQL Serverを実行する必要はありません。 詳細については、「SQL Server バージョンのサポート」を参照してください。

  • レプリカ データベースをホストするコンピューター上のSQL Server サービスは、システム アカウントとして実行する必要があります。

  • サイト データベースをホストするSQL Serverとデータベース レプリカをホストする両方のSQL Serverレプリケーションがインストールされている必要があります。

  • サイト データベースはデータベース レプリカを 発行 する必要があり、各リモート データベース レプリカ サーバーはパブリッシュされたデータを サブスクライブ する必要があります。

  • 最大 テキスト REPL サイズ 2 GB をサポートするように両方の SQL Server を構成します。 SQL Serverのこの設定の詳細と構成方法については、「サーバー構成オプションの最大テキストサイズの構成」を参照してください。

自己署名証明書

データベース レプリカを構成するには、データベース レプリカ サーバーに自己署名証明書を作成します。 この証明書を、そのデータベース レプリカ サーバーを使用する各管理ポイントで使用できるようにします。

  • 証明書は、データベース レプリカ サーバーにインストールされている管理ポイントで自動的に使用できます。

  • この証明書をリモート管理ポイントで使用できるようにするには、まず証明書をエクスポートします。 次に、リモート管理ポイントの信頼されたPeople証明書ストアに追加します。

クライアント通知

管理ポイントのデータベース レプリカでのクライアント通知をサポートするには、サイト データベース サーバーと、SQL Server Service Broker のデータベース レプリカ サーバー間の通信を構成します。

  • 他のデータベースに関する情報を使用して、各データベースを構成します。

  • セキュリティで保護された通信のために、2 つのデータベース間で証明書を交換します。

制限事項

  • データベース レプリカを発行するようにサイトを構成する場合は、通常のガイダンスではなく、次の手順を使用します。

  • ソフトウェア センターでのユーザー展開は、SQL Server レプリカを使用して管理ポイントに対して機能しません。

  • Configuration Manager現在のブランチへのアップグレード: サイトをアップグレードする前に、System Center 2012 Configuration Managerから現在のブランチにConfiguration Managerするか、Configuration Managerを更新します。は、管理ポイントのデータベース レプリカを無効にします。 サイトのアップグレード後は、管理ポイントのデータベース レプリカを再構成できます。

  • 1 つのSQL Server上の複数のレプリカ: 管理ポイント用に複数のデータベース レプリカをホストするようにデータベース レプリカ サーバーの個別のインスタンスを構成する場合は、変更された構成スクリプトを使用します。 データベース レプリカを構成するプロセスの手順 4 で説明したように、このアクションにより、そのサーバーで以前に構成されたデータベース レプリカによって使用されている自己署名証明書が上書きされるのを防ぎます。

Configure

データベース レプリカを構成するには、次の手順が必要です。

手順 1 - データベース レプリカを発行するようにサイト データベース サーバーを構成する

データベース レプリカを発行するようにサイト データベース サーバーを構成する方法の例として、次の手順を使用します。 特定の手順は、Windows Server のバージョンによって異なる場合があります。

サイト データベース サーバーで次の手順を実行します。

  1. SQL Server エージェントを自動的に開始するように設定します。

  2. ConfigMgr_MPReplicaAccessという名前のローカル ユーザー グループを作成します。 このサイトで使用するデータベース レプリカ サーバーごとに、そのコンピューター アカウントをこのグループに追加します。 このアクションにより、これらのデータベース レプリカ サーバーは、発行されたデータベース レプリカと同期できます。

    注:

    この目的でドメイン グループを作成することもできます。

  3. ConfigMgr_MPReplicaという名前でファイル共有を構成します。

  4. ConfigMgr_MPReplica共有に次のアクセス許可を追加します。

    注:

    SQL Server エージェントがローカル システム アカウント以外のアカウントを使用する場合は、SYSTEM を次の一覧でそのアカウント名に置き換えます。

    • 共有アクセス許可:

      • SYSTEM: 変更

      • ConfigMgr_MPReplicaAccess: 読み取り

    • NTFS アクセス許可:

      • SYSTEM: フル コントロール

      • ConfigMgr_MPReplicaAccess: フォルダーの内容の 読み取り読み取り & 実行、および フォルダーの内容の一覧表示

  5. SQL Server Management Studioを使用してサイト データベースに接続し、クエリとして次のストアド プロシージャを実行します。spCreateMPReplicaPublication

    注:

    ローカル グループではなくドメイン グループを使用している場合は、次の SQL ステートメントを 次のように変更します。 EXEC spCreateMPReplicaPublication N'<DomainName>\ConfigMgr_MPReplicaAccess'

ストアド プロシージャが完了すると、サイト データベース サーバーがデータベース レプリカを発行するように構成されます。

手順 2 - データベース レプリカ サーバーを構成する

データベース レプリカ サーバーを構成する方法の例として、次の手順を使用します。 特定の手順は、Windows Server のバージョンによって異なる場合があります。

データベース レプリカ サーバーで次の手順を実行します。

  1. SQL Server エージェントを自動起動に設定します。

  2. SQL Server Management Studioを使用してローカル サーバーに接続します。 [レプリケーション] フォルダーを参照し、[ローカル サブスクリプション] を選択し、[新しいサブスクリプション] を選択します。 この操作により、 新しいサブスクリプション ウィザードが開始されます。

    1. [パブリケーション] ページで、[パブリッシャー SQL Server検索] を選択します。 サイト データベース サーバーの名前を入力し、[ 接続] を選択します。

    2. [ConfigMgr_MPReplica] を選択し、[次へ] を選択します。

    3. [ディストリビューション エージェント場所] ページで、[サブスクライバーで各エージェントを実行する (プル サブスクリプション)] を選択し、[次へ] を選択します。

    4. [ サブスクライバー ] ページで、次のいずれかの操作を行います。

      • データベース レプリカに使用するデータベース レプリカ サーバーから既存のデータベースを選択し、[ OK] を選択します

      • [ 新しいデータベース ] を選択して、データベース レプリカの新しいデータベースを作成します。 [ 新しいデータベース] ページで 、データベース名を指定し、[ OK] を選択します

    5. [次へ] を選んで続行します。

    6. [セキュリティのディストリビューション エージェント] ページで、ダイアログ ボックスの [サブスクライバー接続] 行の [プロパティ] ボタン (...) を選択します。 次に、接続のセキュリティ設定を構成します。

      ヒント

      [プロパティ] ボタン (...) は、表示ボックスの 4 列目にあります。

    • ディストリビューション エージェント プロセス (プロセス アカウント) を実行するアカウントを構成します。

      • SQL Server エージェントがローカル システムとして実行されている場合は、SQL Server エージェント サービス アカウントで [実行] を選択します (これは推奨されるセキュリティのベスト プラクティスではありません)。

      • SQL Server エージェントが別のアカウントを使用して実行される場合は、次の Windows アカウントで [実行] を選択し、そのアカウントを構成します。 Windows アカウントまたはSQL Server アカウントを指定できます。

      Important

      プル サブスクリプションとしてパブリッシャーにディストリビューション エージェントアクセス許可を実行するアカウントを付与します。 これらのアクセス許可の構成の詳細については、「 ディストリビューション エージェントのセキュリティ」を参照してください。

    • [ ディストリビューターに接続する] で、[ プロセス アカウントを偽装する] を選択します。

    • [ サブスクライバーに接続する] で、[ プロセス アカウントを偽装する] を選択します。

      接続セキュリティ設定を構成したら、[ OK] を 選択して保存し、[ 次へ] を選択します。

    1. [ 同期スケジュール ] ページで、[ スケジュールの定義] を選択し、[ 新しいジョブ スケジュール] を構成します。 頻度を [毎日] に設定し、 5 分ごとに繰り返し、期間を [終了日なし] に設定します。 [ 次へ ] を選択してスケジュールを保存し、もう一度 [次へ ] を選択します。

    2. [ ウィザードの操作] ページで、[サブスクリプションの 作成] オプションを有効にし、[ 次へ] を選択します。

    3. ウィザードを終了します。

  3. 新しいサブスクリプション ウィザードが完了した直後に、SQL Server Management Studioを使用してデータベース レプリカ サーバー データベースに接続します。 次のクエリを実行して、信頼できるデータベース プロパティを有効にします。 ALTER DATABASE <MP Replica Database Name> SET TRUSTWORTHY ON;

  4. 同期の状態を確認して、サブスクリプションが成功したことを確認します。

    • サブスクライバー コンピューターで次の手順を実行します。

      • SQL Server Management Studioで、データベース レプリカ サーバーに接続し、[レプリケーション] を展開します

      • [ ローカル サブスクリプション] を展開し、サイト データベース パブリケーションのサブスクリプションを右クリックし、[ 同期状態の表示] を選択します。

    • パブリッシャー コンピューターで、次の手順を実行します。

      • SQL Server Management Studioで、サイト データベース コンピューターに接続し、[レプリケーション] フォルダーを右クリックし、[レプリケーション モニターの起動] を選択します。
  5. データベース レプリカの共通言語ランタイム (CLR) 統合を有効にするには、SQL Server Management Studioを使用してデータベース レプリカ サーバー上のデータベース レプリカに接続します。 クエリとして次のストアド プロシージャを実行します。 exec sp_configure 'clr enabled', 1; RECONFIGURE WITH OVERRIDE

  6. データベース レプリカ サーバーを使用する管理ポイントごとに、その管理ポイントのコンピューター アカウントを、そのデータベース レプリカ サーバーのローカル Administrators グループに追加します。

    ヒント

    この手順は、データベース レプリカ サーバーで実行される管理ポイントには必要ありません。

これで、データベース レプリカで管理ポイントを使用する準備が整いました。

手順 3 - データベース レプリカを使用するように管理ポイントを構成する

管理ポイントの役割をインストールするときにデータベース レプリカを使用するようにプライマリ サイトで管理ポイントを構成することも、既存の管理ポイントを再構成してデータベース レプリカを使用するようにすることもできます。

データベース レプリカを使用するように管理ポイントを構成するには、次の情報を使用します。

  • 新しい管理ポイントを構成するには:

    1. ウィザードの [ 管理ポイント データベース] ページで、管理ポイントをインストールするには、[ データベース レプリカを使用する] を選択します。
    2. データベース レプリカをホストするコンピューターの FQDN を指定します。
    3. [ConfigMgr サイト データベース名] には、そのコンピューター上のデータベース レプリカのデータベース名を指定します。
  • 以前にインストールした管理ポイントを構成するには:

    1. 管理ポイントの [プロパティ] ページを開き、[ 管理ポイント データベース ] タブに切り替えます。
    2. [ データベース レプリカを使用する] を選択し、データベース レプリカをホストするコンピューターの FQDN を指定します。
    3. 次に、[ ConfigMgr サイト データベース名] に、そのコンピューター上のデータベース レプリカのデータベース名を指定します。

データベース レプリカを使用する管理ポイントごとに、管理ポイント サーバーのコンピューター アカウントをデータベース レプリカの db_datareader ロールに手動で追加します。

データベース レプリカ サーバーを使用するように管理ポイントを構成するだけでなく、管理ポイントで IISWindows 認証を有効にします。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. 管理ポイントで使用されている Web サイトを選択し、[ 認証] を開きます。

  3. [Windows 認証] を [有効] に設定し、インターネット インフォメーション サービス (IIS) マネージャーを閉じます。

手順 4 - データベース レプリカ サーバーの自己署名証明書を構成する

データベース レプリカ サーバーで自己署名証明書を構成する方法の例として、次の手順を使用します。 特定の手順は、Windows Server のバージョンによって異なる場合があります。

データベース レプリカ サーバーの自己署名証明書を構成する

  1. データベース レプリカ サーバーで、管理者権限で PowerShell コマンド プロンプトを開き、次のコマンドを実行します。 Set-ExecutionPolicy Unrestricted

  2. 次の PowerShell スクリプトをコピーし 、CreateMPReplicaCert.ps1という 名前のファイルとして保存します。 このファイルのコピーを、データベース レプリカ サーバーのシステム パーティションのルート フォルダーに配置します。

    Important

    1 つのSQL Serverで複数のデータベース レプリカを構成する場合は、以降に構成するレプリカごとに、この手順でこのスクリプトの変更されたバージョンを使用します。 詳細については、「1 つのSQL Server上の追加のデータベース レプリカの補足スクリプト」を参照してください。

    # Script for creating a self-signed certificate for the local machine and configuring SQL Server to use it.  
    
    Param($SQLInstance)  
    
    $ConfigMgrCertFriendlyName = "ConfigMgr SQL Server Identification Certificate"  
    
    # Get local computer name  
    $computerName = "$env:computername"  
    
    # Get the SQL Server name  
    #$key="HKLM:\SOFTWARE\Microsoft\SMS\MP"  
    #$value="SQL Server Name"  
    #$sqlServerName= (Get-ItemProperty $key).$value  
    #$dbValue="Database Name"  
    #$sqlInstance_DB_Name= (Get-ItemProperty $key).$dbValue  
    
    $sqlServerName = [System.Net.Dns]::GetHostByName("localhost").HostName   
    $sqlInstanceName = "MSSQLSERVER"  
    $SQLServiceName = "MSSQLSERVER"  
    
    if ($SQLInstance -ne $Null)  
    {  
        $sqlInstanceName = $SQLInstance  
        $SQLServiceName = "MSSQL$" + $SQLInstance  
    }  
    
    # Delete existing cert if one exists  
    function Get-Certificate($storename, $storelocation)  
    {   
        $store=new-object System.Security.Cryptography.X509Certificates.X509Store($storename,$storelocation)   
        $store.Open([Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)   
        $store.Certificates   
    }   
    
    $cert = Get-Certificate "My" "LocalMachine" | ?{$_.FriendlyName -eq $ConfigMgrCertFriendlyName}   
    if($cert -is [Object])  
    {  
        $store = new-object System.Security.Cryptography.X509Certificates.X509Store("My","LocalMachine")   
        $store.Open([Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)   
        $store.Remove($cert)  
        $store.Close()  
    
        # Remove this cert from Trusted People too...  
        $store = new-object System.Security.Cryptography.X509Certificates.X509Store("TrustedPeople","LocalMachine")   
        $store.Open([Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)   
        $store.Remove($cert)  
        $store.Close()      
    }  
    
    # Create the new cert  
    $name = new-object -com "X509Enrollment.CX500DistinguishedName.1"  
    $name.Encode("CN=" + $sqlServerName, 0)  
    
    $key = new-object -com "X509Enrollment.CX509PrivateKey.1"  
    $key.ProviderName = "Microsoft RSA SChannel Cryptographic Provider"  
    $key.KeySpec = 1  
    $key.Length = 1024  
    $key.SecurityDescriptor = "D:PAI(A;;0xd01f01ff;;;SY)(A;;0xd01f01ff;;;BA)(A;;0x80120089;;;NS)"  
    $key.MachineContext = 1  
    $key.Create()  
    
    $serverauthoid = new-object -com "X509Enrollment.CObjectId.1"  
    $serverauthoid.InitializeFromValue("1.3.6.1.5.5.7.3.1")  
    $ekuoids = new-object -com "X509Enrollment.CObjectIds.1"  
    $ekuoids.add($serverauthoid)  
    $ekuext = new-object -com "X509Enrollment.CX509ExtensionEnhancedKeyUsage.1"  
    $ekuext.InitializeEncode($ekuoids)  
    
    $cert = new-object -com "X509Enrollment.CX509CertificateRequestCertificate.1"  
    $cert.InitializeFromPrivateKey(2, $key, "")  
    $cert.Subject = $name  
    $cert.Issuer = $cert.Subject  
    $cert.NotBefore = get-date  
    $cert.NotAfter = $cert.NotBefore.AddDays(3650)  
    $cert.X509Extensions.Add($ekuext)  
    $cert.Encode()  
    
    $enrollment = new-object -com "X509Enrollment.CX509Enrollment.1"  
    $enrollment.InitializeFromRequest($cert)  
    $enrollment.CertificateFriendlyName = "ConfigMgr SQL Server Identification Certificate"  
    $certdata = $enrollment.CreateRequest(0x1)  
    $enrollment.InstallResponse(0x2, $certdata, 0x1, "")  
    
    # Add this cert to the trusted peoples store  
    [Byte[]]$bytes = [System.Convert]::FromBase64String($certdata)  
    
    $trustedPeople = new-object System.Security.Cryptography.X509certificates.X509Store "TrustedPeople", "LocalMachine"  
    $trustedPeople.Open([Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)  
    $trustedPeople.Add([Security.Cryptography.X509Certificates.X509Certificate2]$bytes)  
    $trustedPeople.Close()  
    
    # Get thumbprint from cert  
    $sha = new-object System.Security.Cryptography.SHA1CryptoServiceProvider  
    $certHash = $sha.ComputeHash($bytes)  
    $certHashCharArray = "";  
    $certThumbprint = "";  
    
    # Format the bytes into a hexadecimal string  
    foreach($byte in $certHash)  
    {  
        $temp = ($byte | % {"{0:x}" -f $_}) -join ""  
        $temp = ($temp | % {"{0,2}" -f $_})  
        $certHashCharArray = $certHashCharArray+ $temp;  
    }  
    $certHashCharArray = $certHashCharArray.Replace(' ', '0');  
    
    # SQL Server needs the thumbprint in lower case  
    foreach($char in $certHashCharArray)  
    {  
        [System.String]$myString = $char;  
        $certThumbprint = $certThumbprint + $myString.ToLower();  
    }  
    
    # Configure SQL Server to use this cert  
    $path = "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL"  
    $subKey = (Get-ItemProperty $path).$sqlInstanceName  
    $realPath = "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\" + $subKey + "\MSSQLServer\SuperSocketNetLib"  
    $certKeyName = "Certificate"  
    Set-ItemProperty -path $realPath -name $certKeyName -Type string -Value $certThumbprint  
    
    # restart SQL Server service  
    Restart-Service $SQLServiceName -Force  
    
  3. データベース レプリカ サーバーで、SQL Serverの構成に適用される次のコマンドを実行します。

    • SQL Serverの既定のインスタンスの場合: PowerShell セッションで次のコマンドを入力します。 .\CreateMPReplicaCert.ps1 スクリプトを実行すると、自己署名証明書が作成され、証明書を使用するようにSQL Serverが構成されます。

    • SQL Serverの名前付きインスタンスの場合: PowerShell を使用して次のコマンドを実行します。.\CreateMPReplicaCert.ps1 <SQL Server instance name>

    スクリプトが完了したら、SQL Server エージェントが実行されていることを確認します。 そうでない場合は、SQL Server エージェントを再起動します。

データベース レプリカ サーバーの自己署名証明書を使用するようにリモート管理ポイントを構成する

データベース レプリカ サーバーで次の手順を実行して、サーバーの自己署名証明書をエクスポートします。

  1. [スタート] メニューに移動し、[実行] を選択し、「」と入力しますmmc.exe。 空のコンソールで [ ファイル] を選択し、[ スナップインの追加と削除] を選択します。

  2. [スナップインの追加と削除] ダイアログ ボックスで、[使用可能なスナップイン] の一覧から [証明書] を選択し、[追加] を選択します。

  3. [ 証明書スナップイン ] ダイアログ ボックスで、[ コンピューター アカウント] を選択し、[ 次へ] を選択します。

  4. [ コンピューターの選択 ] ダイアログ ボックスで、[ ローカル コンピューター: (このコンソールが実行されているコンピューター)] が選択されていることを確認し、[完了] を選択 します

  5. [ スナップインの追加と削除 ] ダイアログ ボックスで、[OK] を選択します

  6. コンソールで、[ 証明書 (ローカル コンピューター)] を展開し、[ 個人用] を展開して、[証明書] を選択 します

  7. ConfigMgr SQL Server識別証明書のフレンドリ名を持つ証明書を右クリックし、[すべてのタスク] を選択し、[エクスポート] を選択します

  8. 既定のオプションを使用して 証明書のエクスポート ウィザード を完了します。 証明書を .cer ファイル名拡張子で保存します。

管理ポイント サーバーで次の手順を実行して、データベース レプリカ サーバーの自己署名証明書を信頼されたPeople証明書ストアに追加します。

  1. 前の手順を繰り返して、管理ポイント コンピューターで 証明書 スナップイン MMC を開きます。

  2. [証明書] コンソールで、[証明書 (ローカル コンピューター)] を展開し、[信頼されたPeople] を展開し、[証明書] を右クリックし、[すべてのタスク] を選択して、[インポート] を選択します。 この操作により、 証明書のインポート ウィザードが開始されます。

  3. [ インポートするファイル ] ページで、保存した証明書を選択し、[ 次へ] を選択します。

  4. [証明書ストア] ページで、[証明書ストア] が [信頼されたPeople] に設定されている状態で、[次のストアにすべての証明書を配置する] を選択し、[次へ] を選択します。

  5. [ 完了] を選択 してウィザードを閉じ、管理ポイントで証明書の構成を完了します。

手順 5 - データベース レプリカ サーバーのSQL Server Service Broker を構成する

管理ポイントのデータベース レプリカでのクライアント通知をサポートするには、サイト データベース サーバーと、SQL Server Service Broker のデータベース レプリカ サーバー間の通信を構成します。 他のデータベースに関する情報を使用して各データベースを構成し、セキュリティで保護された通信のために 2 つのデータベース間で証明書を交換します。

注:

次の手順を使用する前に、データベース レプリカ サーバーがサイト データベース サーバーとの初期同期を正常に完了する必要があります。

次の手順では、サイト データベース サーバーまたはデータベース レプリカ サーバーのSQL Serverで構成されている Service Broker ポートは変更されません。 この手順では、適切な Service Broker ポートを使用して、他のデータベースと通信するように各データベースを構成します。

サイト データベース サーバーとデータベース レプリカ サーバーの Service Broker を構成するには、次の手順に従います。

  1. レプリカ サーバー データベースに接続するには、SQL Server Management Studioを使用します。 次に、次のクエリを実行して、データベース レプリカ サーバーで Service Broker を有効にします。 ALTER DATABASE <Replica Database Name> SET ENABLE_BROKER, HONOR_BROKER_PRIORITY ON WITH ROLLBACK IMMEDIATE

  2. データベース レプリカ サーバーで、クライアント通知用に Service Broker を構成し、Service Broker 証明書をエクスポートします。 Service Broker を構成し、証明書を 1 つのアクションとしてエクスポートするSQL Server ストアド プロシージャを実行します。 ストアド プロシージャを実行するときは、データベース レプリカ サーバーの FQDN、データベース レプリカ データベースの名前を指定し、証明書ファイルのエクスポートの場所を指定します。

    次のクエリを実行して、データベース レプリカ サーバーで必要な詳細を構成し、データベース レプリカ サーバーの証明書をエクスポートします。 EXEC sp_BgbConfigSSBForReplicaDB '<Replica SQL Server FQDN>', '<Replica Database Name>', '<Certificate Backup File Path>'

    注:

    データベース レプリカ サーバーが SQL Server の既定のインスタンスにない場合は、レプリカ データベース名を使用してインスタンス名も指定します。 このコマンドの例では、 を に<Instance name>\<Replica Database Name>置き換えます<Replica Database Name>

    データベース レプリカ サーバーから証明書をエクスポートした後、プライマリ サイト データベース サーバーに証明書のコピーを配置します。

  3. SQL Server Management Studioを使用してプライマリ サイト データベースに接続します。 プライマリ サイト データベースに接続したら、クエリを実行して証明書をインポートし、データベース レプリカ サーバーで使用されている Service Broker ポート、データベース レプリカ サーバーの FQDN、およびデータベース レプリカ データベースの名前を指定します。 このアクションは、Service Broker を使用してデータベース レプリカ サーバーのデータベースと通信するようにプライマリ サイト データベースを構成します。

    次のクエリを実行して、データベース レプリカ サーバーから証明書をインポートし、必要な詳細を指定します。 EXEC sp_BgbConfigSSBForRemoteService 'REPLICA', '<SQL Service Broker Port>', '<Certificate File Path>', '<Replica SQL Server FQDN>', '<Replica Database Name>'

    注:

    データベース レプリカ サーバーが SQL Server の既定のインスタンスにない場合は、レプリカ データベース名を使用してインスタンス名も指定します。 このコマンドの例では、 を に<Instance name>\<Replica Database Name>置き換えます<Replica Database Name>

  4. サイト データベース サーバーで、次のコマンドを実行して、サイト データベース サーバーの証明書をエクスポートします。EXEC sp_BgbCreateAndBackupSQLCert '<Certificate Backup File Path>'

    サイト データベース サーバーから証明書をエクスポートした後、データベース レプリカ サーバーに証明書のコピーを配置します。

  5. レプリカ サーバー データベースに接続するには、SQL Server Management Studioを使用します。 レプリカ サーバー データベースに接続したら、クエリを実行して証明書をインポートし、サイト データベース サーバーで使用されているプライマリ サイトと Service Broker ポートのサイト コードを指定します。 このアクションは、Service Broker を使用してプライマリ サイトのデータベースと通信するようにデータベース レプリカ サーバーを構成します。

    次のクエリを実行して、サイト データベース サーバーから証明書をインポートします。 EXEC sp_BgbConfigSSBForRemoteService '<Site Code>', '<SQL Service Broker Port>', '<Certificate File Path>'

サイト データベースとデータベース レプリカ データベースの構成が完了した数分後、プライマリ サイトの通知マネージャーは、プライマリ サイト データベースからデータベース レプリカへのクライアント通知の Service Broker 会話を設定します。

1 つのSQL Server上の他のデータベース レプリカの補足スクリプト

手順 4 のスクリプトを使用して、引き続き使用する予定のデータベース レプリカが既に存在するSQL Server上のデータベース レプリカ サーバーの自己署名証明書を構成する場合は、元のスクリプトの変更されたバージョンを使用します。 次の変更により、スクリプトによってサーバー上の既存の証明書が削除されるのを防ぎ、一意のフレンドリ名を持つ後続の証明書が作成されます。 元のスクリプトを次のように編集します。

  • スクリプト エントリと # Create the new certの間の各行をコメント アウトします# Delete existing cert if one exists。 該当する各行の最初の文字としてポンド記号 (#) を追加します。

  • このスクリプトを使用して構成する後続のデータベース レプリカごとに、証明書のフレンドリ名を更新します。 行 $enrollment.CertificateFriendlyName = "ConfigMgr SQL Server Identification Certificate" を編集し、新しい名前に置き換えます ConfigMgr SQL Server Identification Certificate 。 たとえば、「 ConfigMgr SQL Server Identification Certificate1 」のように入力します。

データベース レプリカ構成を管理する

サイトでデータベース レプリカを使用する場合は、次のセクションの情報を使用して、データベース レプリカのアンインストール、データベース レプリカを使用するサイトのアンインストール、またはサイト データベースを SQL Server の新しいインストールに移動するプロセスを補完します。 パブリケーションを削除する場合は、データベース レプリカに使用するSQL Serverのバージョンのトランザクション レプリケーションを削除するためのガイダンスを使用します。 詳細については、「 パブリケーションの削除」を参照してください。

注:

データベース レプリカ用に構成されたサイト データベースを復元した後、データベース レプリカを使用する前に、各データベース レプリカを再構成し、パブリケーションとサブスクリプションの両方を再作成します。

データベース レプリカをアンインストールする

管理ポイントにデータベース レプリカを使用する場合は、それをアンインストールしてから、使用できるように再構成することが必要になる場合があります。 たとえば、Configuration Managerを最新バージョンに更新する前に、データベース レプリカを削除します。 サイトの更新が完了したら、使用するためにデータベース レプリカを復元します。

データベース レプリカをアンインストールするには、次の手順に従います。

  1. Configuration Manager コンソールの [管理] ワークスペースで、[サイトの構成] を展開し、[サーバーとサイト システムの役割] を選択します。 詳細ウィンドウで、アンインストールするデータベース レプリカを使用する管理ポイントをホストするサイト システム サーバーを選択します。

  2. [ サイト システムの役割] ウィンドウで、 管理ポイント の役割を選択します。 リボンの [ サイト ロール ] タブで、[プロパティ] を選択 します

  3. [ 管理ポイント データベース ] タブに切り替えます。[ サイト データベースを使用する] を選択して、データベース レプリカではなくサイト データベースを使用するように管理ポイントを構成します。 [ OK] を選択 して構成を保存します。

  4. SQL Server Management Studioを使用して、次のタスクを実行します。

    • サイト サーバー データベースからデータベース レプリカのパブリケーションを削除します。

    • データベース レプリカ サーバーからデータベース レプリカのサブスクリプションを削除します。

    • データベース レプリカ サーバーからレプリカ データベースを削除します。

    • サイト データベース サーバーでの発行と配布を無効にします。 発行と配布を無効にするには、[ レプリケーション ] フォルダーを右クリックし、[ 発行と配布の無効化] を選択します。

パブリケーション、サブスクリプション、レプリカ データベースを削除し、サイト データベース サーバーでの発行を無効にすると、データベース レプリカがアンインストールされます。

データベース レプリカを発行するサイト サーバーをアンインストールする

データベース レプリカを発行するサイトをアンインストールする前に、次の手順に従ってパブリケーションとサブスクリプションをクリーンします。

  1. SQL Server Management Studioを使用して、サイト サーバー データベースからデータベース レプリカ パブリケーションを削除します。

  2. SQL Server Management Studioを使用して、このサイトのデータベース レプリカをホストする各リモート SQL Serverからデータベース レプリカ サブスクリプションを削除します。

  3. サイトをアンインストールします。

データベース レプリカを発行するサイト サーバー データベースを移動する

サイト データベースを新しいコンピューターに移動する場合は、次の手順を使用します。

  1. SQL Server Management Studioを使用して、サイト サーバー データベースからデータベース レプリカのパブリケーションを削除します。

  2. SQL Server Management Studioを使用して、このサイトの各データベース レプリカ サーバーからデータベース レプリカのサブスクリプションを削除します。

  3. データベースを新しいSQL Server コンピューターに移動します。 詳細については、「 サイト データベースの構成を変更する」を参照してください。

  4. サイト データベース サーバー上のデータベース レプリカのパブリケーションを再作成します。 詳細については、「 手順 1 - データベース レプリカを発行するようにサイト データベース サーバーを構成する」を参照してください。

  5. 各データベース レプリカ サーバーでデータベース レプリカのサブスクリプションを再作成します。 詳細については、「 手順 2 - データベース レプリカ サーバーの構成」を参照してください