分享方式:


Configuration Manager 管理點的資料庫複本

適用於:Configuration Manager (目前的分支)

Configuration Manager 主要月臺可以使用資料庫複本,藉由管理點在服務來自用戶端的要求時,減少放置在月臺資料庫伺服器上的 CPU 負載。 當管理點使用資料庫複本時,它會從裝載資料庫複本的 SQL Server 計算機要求數據,而不是從月臺資料庫伺服器要求數據。

此設定可藉由卸除與用戶端相關的頻繁處理工作,協助降低月台資料庫伺服器上的 CPU 處理需求。 用戶端的頻繁處理工作範例包括有大量客戶端經常要求客戶端原則的月臺。

[關於]

  • 複本是月臺資料庫的部分複本,會復寫到個別的 SQL Server 實例。

    • 主要月臺支援站臺上每個管理點的專用資料庫複本。

    • 次要月臺不支援資料庫複本。

    • 來自相同月臺的多個管理點可以使用單一資料庫複本。

    • 只要每個復本在個別的 SQL Server 實例中執行,SQL Server 就可以裝載多個資料庫復本供不同的管理點使用。

  • 復本會依固定排程,從月臺的資料庫伺服器針對此目的發佈的數據同步處理月臺資料庫的複本。

  • 您可以將管理點設定為在安裝復本時或稍後使用復本。 針對現有的管理點,將它重新設定為使用資料庫複本。

  • 定期監視月臺資料庫伺服器和每個資料庫複本伺服器,以確保它們之間發生複寫。 請確定資料庫複本伺服器的效能足以滿足您所需的月臺和用戶端效能。

必要條件

SQL Server 需求

  • 裝載資料庫複本的 SQL Server 與月臺資料庫伺服器具有相同的需求。 復本伺服器不需要執行與月臺資料庫伺服器相同的版本或版本的 SQL Server,只要執行支援的版本和版本的 SQL Server。 如需詳細資訊,請參閱支援 SQL Server 版本

  • 裝載復本資料庫之計算機上的 SQL Server 服務必須以系統帳戶身分執行。

  • 裝載月臺資料庫和裝載資料庫複本的 SQL Server 都必須安裝 SQL Server 複寫。

  • 月臺資料庫必須 發行 資料庫複本,而且每個遠端資料庫複本伺服器都必須 訂閱 已發行的數據。

  • 設定這兩部 SQL Server 以支援 最大文字重設大小 2 GB。 如需詳細資訊及如何為 SQL Server 設定此設定,請參閱設定 max text repl size 伺服器組態選項。

自我簽署憑證

若要設定資料庫複本,請在資料庫複本伺服器上建立自我簽署憑證。 讓此憑證可供將使用該資料庫複本伺服器的每個管理點使用。

  • 憑證會自動提供給安裝在資料庫複本伺服器上的管理點。

  • 若要讓此憑證可供遠端管理點使用,請先導出憑證。 然後將它新增至遠端管理點上的受信任 人員 證書存儲。

用戶端通知

若要使用管理點的資料庫復本支援用戶端通知,請為 SQL Server Service Broker 設定月臺資料庫伺服器與資料庫複本伺服器之間的通訊:

  • 使用其他資料庫的相關信息來設定每個資料庫。

  • 在兩個資料庫之間交換憑證以進行安全通訊。

限制

  • 當您將月臺設定為發行資料庫複本時,請使用下列程式,而不是一般指引:

  • 使用 SQL Server 複本時,軟體中心的使用者部署將無法對管理點運作。

  • 升級至最新分支 Configuration Manager:升級月臺之前,請先從 System Center 2012 Configuration Manager 升級至最新分支 Configuration Manager 或更新 Configuration Manager最新分支至最新版本,停用管理點的資料庫複本。 月臺升級之後,您可以重新設定管理點的資料庫複本。

  • 單一 SQL Server 上的多個復本:如果您設定資料庫複本伺服器的個別實例來裝載管理點的多個資料庫複本,請使用修改過的組態腳本。 如設定 資料庫複本程式的步驟 4 所述,此動作可防止覆寫先前在該伺服器上設定的資料庫複本所使用的自我簽署憑證。

設定

若要設定資料庫複本,需要下列步驟:

步驟 1 - 設定月臺資料庫伺服器以發佈資料庫複本

使用下列程式作為如何設定月臺資料庫伺服器以發佈資料庫複本的範例。 特定步驟可能會因 Windows Server 的版本而有所不同。

在月臺資料庫伺服器上執行下列步驟:

  1. 將 SQL Server Agent 設定為自動啟動。

  2. 建立名稱為 ConfigMgr_MPReplicaAccess 的本機使用者群 。 針對您在此月臺使用的每個資料庫複本伺服器,將其計算機帳戶新增至此群組。 此動作可讓這些資料庫複本伺服器與已發行的資料庫複本同步處理。

    注意事項

    您也可以為此目的建立網域群組。

  3. 設定名稱為 ConfigMgr_MPReplica 的檔案共用。

  4. 將下列權限新增至 ConfigMgr_MPReplica 共用:

    注意事項

    如果 SQL Server Agent 使用本機系統帳戶以外的帳戶,請將 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 Agent 設定為自動啟動。

  2. 使用 SQL Server Management Studio 連線到本地伺服器。 流覽至 [ 複寫] 資料夾,選取 [ 本機訂用帳戶],然後選取 [ 新增訂閱]。 此動作會啟動 [新增訂閱精靈]

    1. 在 [發行集] 頁面上,選取 [尋找 SQL Server 發行者]。 輸入月臺資料庫伺服器的名稱,然後選取 [ 連線]

    2. 取 [ConfigMgr_MPReplica],然後選取 [ 下一步]

    3. 在 [散發代理程式 位置] 頁面上,選取 [在其訂閱者端執行每個代理程式 (提取訂閱) ,然後選取 [下一步]

    4. 在 [ 訂閱者] 頁面上,執行下列其中一個動作:

      • 從資料庫複本伺服器選取要用於資料庫複本的現有資料庫,然後選取 [ 確定]

      • 取 [新增資料庫 ] 以建立資料庫複本的新資料庫。 在 [ 新增資料庫] 頁面上,指定資料庫名稱,然後選取 [ 確定]

    5. 選取 [下一步] 繼續。

    6. 在 [散發代理程式 安全性] 頁面上,選取對話方塊之 [訂閱者連線] 數據列中的 [屬性] 按鈕 (...) 。 然後設定連線的安全性設定。

      提示

      屬性按鈕 (...) 位於顯示方塊的第四欄。

    • 設定執行 散發代理程式行程 (行程帳戶的帳戶) :

      • 如果 SQL Server Agent 以本機系統身分執行,請選取 [SQL Server Agent 服務帳戶] 底下的 [執行] (這不是建議的安全性最佳做法。)

      • 如果 SQL Server Agent 使用不同的帳戶執行,請選取 [在下列 Windows 帳戶下執行],然後設定該帳戶。 您可以指定 Windows 帳戶或 SQL Server 帳戶。

      重要事項

      將執行 散發代理程式許可權的帳戶授與發行者作為提取訂閱。 如需設定這些許可權的詳細資訊,請參閱 散發代理程序安全性

    • 針對 [連線到散發者],選取 [藉 由模擬進程帳戶]

    • 針對 [連線到訂閱者],選取 [藉 由模擬進程帳戶]

      設定連線安全性設定之後,請選取 [ 確定 ] 儲存它們,然後選取 [ 下一步]

    1. 在 [ 同步處理排程 ] 頁面上,選取 [ 定義排程],然後設定 [新增作業排程]。 將頻率設定為 [每日]每隔 5 分鐘重複 () ,並將持續時間設定為 [沒有結束日期]。 選 取 [下一步 ] 以儲存排程,然後再次選取 [ 下一步]

    2. 在 [ 精靈動作] 頁面上,啟用 [ 建立訂用帳戶 () 的選項,然後選取 [ 下一步]

    3. 完成精靈。

  3. 完成 [新增訂閱精靈] 之後,立即使用 SQL Server Management Studio 連線到資料庫複本伺服器資料庫。 執行下列查詢以啟用 TRUSTWORTHY 資料庫屬性: ALTER DATABASE <MP Replica Database Name> SET TRUSTWORTHY ON;

  4. 檢閱同步處理狀態,以驗證訂用帳戶是否成功:

    • 在訂閱者電腦上:

      • SQL Server Management Studio 中,連接到資料庫複本伺服器,然後展開 [複寫]

      • 展開 [ 本機訂閱],以滑鼠右鍵按兩下網站資料庫發行集的訂閱,然後選 取 [檢視同步處理狀態]

    • 在發行者電腦上:

      • SQL Server Management Studio 中,連線到月台資料庫計算機,以滑鼠右鍵按兩下 [複寫] 資料夾,然後選取 [啟動複寫監視器]
  5. 若要啟用資料庫複本的 Common Language Runtime (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 角色。

除了設定管理點以使用資料庫複本伺服器,請在管理點的 IIS 中啟用 Windows 驗證

  1. 啟 Internet Information Services (IIS) Manager

  2. 選取管理點所使用的網站,然後開啟 [驗證]

  3. [Windows 驗證] 設定為 [ 已啟用],然後關閉 [ IIS) 管理員] (Internet Information Services

步驟 4 -設定資料庫複本伺服器的自我簽署憑證

使用下列程式作為如何在資料庫複本伺服器上設定自我簽署憑證的範例。 特定步驟可能會因 Windows Server 的版本而有所不同。

設定資料庫複本伺服器的自我簽署憑證

  1. 在資料庫複本伺服器上,以系統管理許可權開啟 PowerShell 命令提示字元,然後執行下列命令: Set-ExecutionPolicy Unrestricted

  2. 複製下列 PowerShell 腳本,並將其儲存為名 稱為CreateMPReplicaCert.ps1的檔案。 將此檔案的複本放在資料庫複本伺服器之系統分割區的根資料夾中。

    重要事項

    如果您要在單一 SQL Server 上設定多個資料庫複本,請針對您設定的每個後續復本,針對此程式使用此腳本的修改版本。 如需詳細資訊,請參閱單一 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 Agent 正在執行。 如果沒有,請重新啟動 SQL Server Agent。

設定遠端管理點以使用資料庫複本伺服器的自我簽署憑證

資料庫複本伺服器 上執行下列步驟,以匯出伺服器的自我簽署憑證:

  1. 移至 [ 開始 ] 選單,選擇 [ 執行],然後輸入 mmc.exe。 在空白控制台中,選取 [檔案],然後選取 [新增/移除嵌入式管理單元]

  2. 在 [新增或移除嵌入式管理單元] 對話框中,從 [可用的嵌入式管理單元] 列表中選取 [憑證],然後選取 [新增]

  3. 在 [ 憑證嵌入式 管理單元] 對話框中,選取 [ 計算機帳戶],然後選取 [ 下一步]

  4. 在 [ 選取計算機 ] 對話框中,確定已選取 [ 本機計算機: () 上執行此控制台的計算機 ],然後選取 [ 完成]

  5. 在 [ 新增或移除嵌入式 管理單元] 對話框中,選取 [ 確定]

  6. 在控制台中,展開 [ 本機計算機 (憑證) ],展開 [ 個人],然後選取 [ 憑證]

  7. 以滑鼠右鍵按兩下具有 [識別憑證] SQL Server 易記名稱的憑證,選取 [所有工作],然後選取 [導出]

  8. 使用預設選項完成 [ 憑證匯出精靈 ]。 儲存擴展名為 .cer 的憑證。

管理點伺服器上執行下列步驟,將資料庫複本伺服器的自我簽署憑證新增至受信任 人員 證書存儲:

  1. 重複上述步驟,在管理點計算機上開啟 憑證 嵌入式管理單元 MMC。

  2. 在 [憑證] 控制台中,依序展開 [憑證 (本機計算機) ]、[信任 人員]、以滑鼠右鍵按兩下 [憑證]、[所有工作] ,然後選取 [匯入]。 此動作會啟動 [ 憑證匯入精靈]

  3. 在 [ 要匯入的檔案] 頁面上,選取儲存的憑證,然後選取 [ 下一步]

  4. 在 [證書存儲] 頁面上,選取 [放置下列存放區中的所有憑證],並將 [證書存儲] 設定為 [受信任 人員],然後選取 [下一步]

  5. 取 [完成 ] 以關閉精靈,並在管理點上完成憑證設定。

步驟 5 - 設定資料庫複本伺服器的 SQL Server Service Broker

若要使用管理點的資料庫復本支援用戶端通知,請為 SQL Server Service Broker 設定月臺資料庫伺服器與資料庫複本伺服器之間的通訊。 使用另一個資料庫的相關信息設定每個資料庫,並在兩個資料庫之間交換憑證以進行安全通訊。

注意事項

資料庫複本伺服器必須先成功完成月臺資料庫伺服器的初始同步處理,才能使用下列程式。

下列程式不會修改月臺資料庫伺服器或資料庫複本伺服器 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 憑證。 執行 SQL Server 預存程式,以設定 Service Broker 並將憑證匯出為單一動作。 當您執行預存程式時,請指定資料庫複本伺服器的 FQDN、資料庫複本資料庫的名稱,並指定匯出憑證檔案的位置。

    執行下列查詢,以在資料庫複本伺服器上設定必要的詳細數據,以及匯出資料庫複本伺服器的憑證: EXEC sp_BgbConfigSSBForReplicaDB '<Replica SQL Server FQDN>', '<Replica Database Name>', '<Certificate Backup File Path>'

    注意事項

    當資料庫複本伺服器不在 SQL Server 的預設實例上時,也請使用複本資料庫名稱指定實例名稱。 在範例命令中,將 取代 <Replica Database Name><Instance 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 的預設實例上時,也請使用複本資料庫名稱指定實例名稱。 在範例命令中,將 取代 <Replica Database Name><Instance 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 交談。

單一 SQL Server 上其他資料庫複本的補充腳本

當您使用步驟 4 中的腳本,在已經有您打算繼續使用之資料庫複本的 SQL Server 上設定資料庫複本伺服器的自我簽署憑證時,請使用已修改的原始腳本版本。 下列修改可防止腳本刪除伺服器上的現有憑證,並建立具有唯一易記名稱的後續憑證。 編輯原始文稿,如下所示:

  • 將腳本項目 # Delete existing cert if one exists# Create the new cert之間的每一行批注化。 將井字型大小 (#) 為每個適用行的第一個字元。

  • 針對您使用此腳本來設定的每個後續資料庫複本,更新憑證的易記名稱。 編輯列 $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. 切換至 [管理點資料庫] 索引標籤 。選 取 [使用月台資料庫 ],將管理點設定為使用月臺資料庫,而不是資料庫複本。 選取 [確定 ] 以儲存設定。

  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 - 設定資料庫複本伺服器