準備搭配使用SQL Server Always On可用性群組與Configuration Manager

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

使用本文來準備Configuration Manager,以針對月臺資料庫使用SQL Server Always On可用性群組。 此功能提供高可用性和災害復原解決方案。

Configuration Manager支援使用可用性群組:

  • 在主要月臺和管理中心網站。
  • 內部部署,或Microsoft Azure 中。

當您在 Microsoft Azure 中使用可用性群組時,可以使用Azure 可用性設定組進一步增加月臺資料庫的可用性。 如需 Azure 可用性設定組的詳細資訊,請 參閱管理虛擬機器的可用性

重要事項

繼續之前,請先熟悉設定SQL Server和可用性群組。 本文參考SQL Server文件庫,並提供詳細資訊和程式。

支援的案例

下列案例支援搭配使用可用性群組與Configuration Manager。 如需每個案例的詳細資訊和程式,請參閱設定Configuration Manager的可用性群組

先決條件

下列必要條件適用于所有案例。 如果特定案例適用其他必要條件,則會詳細說明該案例。

Configuration Manager帳戶和許可權

安裝帳戶

您用來執行Configuration Manager設定的帳戶必須是:

  • 每部屬於可用性群組成員之電腦上的本機 Administrators 群組成員。
  • 裝載月臺資料庫的每個SQL Server實例上的系統管理員

月臺伺服器對複本成員的存取

月臺伺服器的電腦帳戶必須是每部可用性群組成員電腦上本機 Administrators 群組的成員。

SQL Server

版本

可用性群組中的每個複本都必須執行您版本Configuration Manager所支援的SQL Server版本。 當SQL Server支援時,可用性群組的不同節點可以執行不同版本的SQL Server。 如需詳細資訊,請參閱 Configuration Manager 的支援SQL Server版本

版本

使用企業版的 SQL Server。

帳戶

每個SQL Server實例都可以在網域使用者帳戶 (服務帳戶) 或非網域帳戶下執行。 群組中的每個複本都可以有不同的組態。

Database

在新的複本上設定資料庫

只在主要複本上進行這些設定。 若要設定次要複本,請先將主要複本容錯移轉至次要複本。 此動作會將次要複本設為新的主要複本。

使用下列設定來設定每個複本的資料庫:

  • 啟用 CLR 整合

    sp_configure 'show advanced options', 1;  
    GO  
    RECONFIGURE;  
    GO  
    sp_configure 'clr enabled', 1;  
    GO  
    RECONFIGURE;  
    GO
    

    如需詳細資訊,請參閱 CLR 整合

  • [文字複寫大小上限 ] 設定為 2147483647

    EXECUTE sp_configure 'max text repl size (B)', 2147483647
    
  • 將資料庫擁有者設定為 SA 帳戶。 您不需要啟用此帳戶。

  • TRUSTWORTHY 設定:

    ALTER DATABASE [CM_xxx] SET TRUSTWORTHY ON;
    

    如需詳細資訊,請參閱 TRUSTWORTHY 資料庫屬性

  • 啟用 Service Broker

    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER
    

    注意事項

    您無法在已經是可用性群組一部分的資料庫上啟用 Service Broker 選項。 您必須先啟用該選項,再將其新增至可用性群組。

  • 設定 Service Broker 優先順序:

    ALTER DATABASE [CM_xxx] SET HONOR_BROKER_PRIORITY ON;
    ALTER DATABASE [CM_xxx] SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE
    

資料庫驗證腳本

執行下列 SQL 腳本來驗證主要和次要複本的資料庫設定。 請先將次要複本變更為主要複本,才能修正次要複本的問題。

    SET NOCOUNT ON

    DECLARE @dbname NVARCHAR(128)

    SELECT @dbname = sd.name FROM sys.sysdatabases sd WHERE sd.dbid = DB_ID()

    IF (@dbname = N'master' OR @dbname = N'model' OR @dbname = N'msdb' OR @dbname = N'tempdb' OR @dbname = N'distribution' ) BEGIN
    RAISERROR(N'ERROR: Script is targeting a system database.  It should be targeting the DB you created instead.', 0, 1)
    GOTO Branch_Exit;
    END ELSE
    PRINT N'INFO: Targeted database is ' + @dbname + N'.'

    PRINT N'INFO: Running verifications....'

    IF NOT EXISTS (SELECT * FROM sys.configurations c WHERE c.name = 'clr enabled' AND c.value_in_use = 1)
    PRINT N'ERROR: CLR is not enabled!'
    ELSE
    PRINT N'PASS: CLR is enabled.'

    DECLARE @repltable TABLE (
    name nvarchar(max),
    minimum int,
    maximum int,
    config_value int,
    run_value int )

    INSERT INTO @repltable
    EXEC sp_configure 'max text repl size (B)'

    IF NOT EXISTS(SELECT * from @repltable where config_value = 2147483647 and run_value = 2147483647 )
    PRINT N'ERROR: Max text repl size is not correct!'
    ELSE
    PRINT N'PASS: Max text repl size is correct.'

    IF NOT EXISTS (SELECT db.owner_sid FROM sys.databases db WHERE db.database_id = DB_ID() AND db.owner_sid = 0x01)
    PRINT N'ERROR: Database owner is not sa account!'
    ELSE
    PRINT N'PASS: Database owner is sa account.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_trustworthy_on = 1 )
    PRINT N'ERROR: Trustworthy bit is not on!'
    ELSE
    PRINT N'PASS: Trustworthy bit is on.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_broker_enabled = 1 )
    PRINT N'ERROR: Service broker is not enabled!'
    ELSE
    PRINT N'PASS: Service broker is enabled.'

    IF NOT EXISTS( SELECT * FROM sys.databases db WHERE db.database_id = DB_ID() AND db.is_honor_broker_priority_on = 1 )
    PRINT N'ERROR: Service broker priority is not set!'
    ELSE
    PRINT N'PASS: Service broker priority is set.'

    PRINT N'Done!'

    Branch_Exit:

可用性群組組態

複本成員

  • 可用性群組必須有一個主要複本。

  • 在可用性群組中使用與您版本SQL Server支援的相同複本數目和類型。

  • 您可以使用非同步認可複本來復原同步複本。 如需詳細資訊,請參閱 月臺資料庫復原選項

    警告

    Configuration Manager不支援容錯移轉使用非同步認可複本作為月臺資料庫。 如需詳細資訊,請參閱) (Always On可用性群組的容錯移轉和容錯移轉模式

Configuration Manager不會驗證非同步認可複本的狀態,以確認其為最新狀態。 使用非同步認可複本作為月臺資料庫,可能會使網站和資料的完整性面臨風險。 根據設計,此複本可能不同步。 如需詳細資訊,請參閱SQL Server Always On可用性群組概觀

每個複本成員都必須具有下列設定:

  • 使用 預設實例具名實例

    注意事項

    伺服器上沒有與SQL Server實例名稱同名的檔案共用。

  • [ 主要角色中的聯 機] 設定為 [允許所有連線]

  • [可讀取次要] 設定為[是]

  • 已啟用 手動容錯移轉

    注意事項

    Configuration Manager在設定為自動容錯移轉時,支援使用可用性群組同步複本。 設定 手動容錯移轉 時機:

    • 您執行Configuration Manager設定以指定可用性群組中月臺資料庫的使用。
    • 您會安裝任何更新以Configuration Manager。 (不只是套用至月臺資料庫) 的更新。
  • 所有成員都需要相同的 植入模式Configuration Manager安裝套裝程式含必要條件檢查,可在透過安裝或復原建立資料庫時驗證此設定。

    注意事項

    當安裝程式建立資料庫,而且您設定 自動 植入時,可用性群組必須具有建立資料庫的許可權。 這項需求同時適用于新的資料庫或復原。 如需詳細資訊,請參閱 自動植入次要複本

複本成員位置

請在內部部署的可用性群組中裝載所有複本,或將其全部裝載在 Azure Microsoft。 不支援在 Azure 中包含內部部署成員和成員的群組。

注意事項

如果您使用 Azure 虛擬機器進行SQL Server,請啟用浮動 IP。 如需詳細資訊,請參閱在 Azure 虛擬機器中設定SQL Server Always On可用性群組的負載平衡器

Configuration Manager安裝程式必須連線到每個複本。 當您在 Azure 中設定可用性群組,且群組位於內部或外部負載平衡器後方時,請開啟下列預設埠:

  • RPC 端點對應程式: TCP 135

  • SQL Server Service Broker:TCP 4022

  • SQL over TCP: TCP 1433

安裝程式完成之後,這些埠必須保持開啟,Configuration Manager和複寫連結分析器。

您可以針對這些設定使用自訂埠。 依端點和可用性群組中的所有複本使用相同的自訂埠。

若要SQL Server在月臺之間複寫資料,請為 Azure 負載平衡器中的每個埠建立負載平衡規則。 如需詳細資訊, 請參閱設定內部負載平衡器的高可用性埠

聽眾

可用性群組必須至少有一個 可用性群組接聽程式。 當您將Configuration Manager設定為使用可用性群組中的月臺資料庫時,它會使用此接聽程式的虛擬名稱。 雖然可用性群組可以包含多個接聽程式,Configuration Manager只能使用一個接聽程式。 如需詳細資訊,請參閱建立或設定SQL Server可用性群組接聽程式

檔案路徑

當您執行Configuration Manager設定來設定月臺以使用可用性群組中的資料庫時,每個次要複本伺服器都必須有SQL Server檔案路徑,與目前主要複本上月臺資料庫檔案的檔案路徑相同。 如果不存在相同的路徑,安裝程式將無法將可用性群組的實例新增為月臺資料庫的新位置。

本機SQL Server服務帳戶必須具有此資料夾的完全控制權限。

當您使用Configuration Manager安裝程式來指定可用性群組中的資料庫實例時,次要複本伺服器只需要此檔案路徑。 在可用性群組中完成月臺資料庫的設定之後,您可以從次要複本 severs 刪除未使用的路徑。

例如,請考量下列情境:

  • 您會建立使用三部 SQL Server 的可用性群組。

  • 您的主要複本伺服器是 SQL Server 2014 的新安裝。 根據預設,它會將資料庫 MDF 和 LDF 檔案儲存在 中 C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA

  • 您已將兩部次要複本伺服器從舊版升級至 SQL Server 2014。 升級之後,這些伺服器會保留原始檔案路徑來儲存資料庫檔案: C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA

  • 將月臺資料庫移至這個可用性群組之前,請在每個次要複本伺服器上建立下列檔案路徑: C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA 。 此路徑是主要複本上所使用路徑的複本,即使次要複本不會使用此檔案位置也一般。

  • 然後,您會將每個次要複本上的SQL Server服務帳戶,授與該伺服器上新建立檔案位置的完整控制存取權。

  • 您現在可以成功執行Configuration Manager設定,將月臺設定為使用可用性群組中的月臺資料庫。

多重子網容錯移轉

您可以在 SQL Server 中啟用 MultiSubnetFailover 連接字串關鍵字。 您也需要手動將下列值新增至月臺伺服器上的 Windows 登錄:

HKLM:\SOFTWARE\Microsoft\SMS\Identification
HKLM:\SOFTWARE\Microsoft\SMS\SQL Server

MSF Enabled : 1 (DWORD)

警告

使用具有多重子網容錯移轉的月臺伺服器高可用性和SQL Server Always On可用性群組,並不會針對災害復原案例提供自動容錯移轉的完整功能。

如果您需要在遠端位置中建立具有成員的可用性群組,請根據最低的網路延遲設定優先順序。 高網路延遲可能會導致複寫失敗。

限制和已知問題

下列限制適用于所有案例。

不支援的SQL Server選項和設定

裝載其他可用性群組的 SQL Server

當SQL Server除了您用於Configuration Manager的群組之外,還裝載一或多個可用性群組時,它需要在您執行Configuration Manager設定時的特定設定。 安裝 Configuration Manager 的更新時,也需要這些設定。 每個可用性群組中的每個複本都必須具有下列設定:

  • 手動容錯移轉

  • 允許任何唯讀連線

注意事項

Configuration Manager在設定為自動容錯移轉時,支援使用可用性群組同步複本。 設定 手動容錯移轉 時機:

  • 您執行Configuration Manager設定以指定可用性群組中月臺資料庫的使用。
  • 您會安裝任何更新以Configuration Manager。 (不只是套用至月臺資料庫) 的更新。

不支援的資料庫使用

Configuration Manager只支援可用性群組中的月臺資料庫

可用性群組中的Configuration Manager不支援下列資料庫:

  • 報表資料庫

  • WSUS 資料庫

預先存在的資料庫

您無法使用在複本上建立的新資料庫。 當您設定可用性群組時,請將現有Configuration Manager資料庫的複本還原至主要複本。

ConfigMgrSetup.log 中的安裝程式錯誤

當您執行Configuration Manager安裝程式將月臺資料庫移至可用性群組時,它會嘗試在可用性群組的次要複本上處理資料庫角色。 ConfigMgrSetup.log檔案會顯示下列錯誤:

ERROR: SQL Server error: [25000][3906][Microsoft][SQL Server Native Client 11.0][SQL Server]Failed to update database "CM_AAA" because the database is read-only. Configuration Manager Setup 1/21/2016 4:54:59 PM 7344 (0x1CB0)

這些錯誤可以放心忽略。

網站擴充

如果您將獨立主要月臺的月臺資料庫設定為使用可用性群組,則無法擴充月臺以包含管理中心網站。 如果您嘗試此程式,則會失敗。 若要展開月臺,請暫時從可用性群組中移除主要月臺資料庫。

新增次要月臺時,您不需要對設定進行任何變更。

月臺備份的變更

備份資料庫檔案

當月臺資料庫使用可用性群組時,請執行內建的備份月臺伺服器維護工作,以備份一般Configuration Manager設定和檔案。 請勿使用該備份所建立的 MDF 或 LDF 檔案。 相反地,請使用 SQL Server直接備份這些資料庫檔案。

您仍然可以使用SQL Server備份,但無法直接將它還原至SQL Server Always On叢集。 您必須在獨立伺服器上還原它,並將其移回SQL Server Always On。

交易記錄

將月臺資料庫的復原模式設定為 [完整]。 此設定是Configuration Manager可用性群組中使用的需求。 規劃監視和維護月臺資料庫交易記錄的大小。 在完整復原模式中,在完整備份資料庫或交易記錄之前,不會強化交易。 如需詳細資訊,請參閱備份和還原SQL Server資料庫

月臺復原的變更

如果可用性群組至少有一個節點仍在運作,請使用月臺復原選項略過 資料庫復原 (如果月臺資料庫未受影響,請使用此選項)

月臺復原可以重新建立可用性群組中的資料庫。 此程式適用于手動和自動植入。

提示

當您執行安裝/復原精靈時, [新增可用性群組資料庫 ] 頁面僅適用于手動植入設定。 使用自動植入時,不會有共用資料庫備份,因此不會顯示精靈的頁面。

如需詳細資訊,請參閱 備份和復原

報告的變更

安裝 Reporting Service 點

Reporting Services 點不支援使用可用性群組的接聽程式虛擬名稱。 它也不支援將其資料庫裝載在可用性群組中。

  • 根據預設,Reporting Services 點安裝會將 月臺資料庫伺服器名稱 設定為指定為接聽程式的虛擬名稱。 變更此設定以指定可用性群組中複本的電腦名稱稱和實例。

  • 若要卸載報告,並在複本節點離線時提高可用性,請考慮在每個複本節點上安裝額外的 Reporting Services 點。 然後將每個 Reporting Services 點設定為使用自己的電腦名稱稱。 當您在可用性群組的每個複本上安裝報表服務點時,報表一律可以連線到作用中的報告點伺服器。

切換主控台所使用的 Reporting Services 點

  1. 在Configuration Manager主控台中,移至 [監視] 工作區,展開 [報告],然後選取 [報告]節點。

  2. 在功能區中,選取 [報表選項]

  3. 在 [報表選項] 對話方塊中,選取您要使用的 Reporting Services 點。

後續步驟

本文說明當您使用可用性群組時,Configuration Manager需要的一般工作的必要條件、限制和變更。 如需設定月臺以使用可用性群組的程式,請參閱設定 可用性群組