共用方式為


準備搭配使用 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:

可用性群組組態

複本成員

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

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

  • 使用 預設實例具名實例

    注意事項

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

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

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

  • 已啟用 手動故障轉移

    注意事項

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

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

    注意事項

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

複本成員位置

請在內部部署的可用性群組中裝載所有複本,或將所有複本裝載在 Microsoft Azure 上。 不支援在 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 需要的一般工作的必要條件、限制和變更。 如需設定月臺以使用可用性群組的程式,請參閱設定 可用性群組