共用方式為


在可用性複本上設定備份 (SQL Server)

本主題描述如何使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 2014 中的 PowerShell,在 AlwaysOn 可用性群組的次要複本上設定備份。

備註

如需次要副本備份的簡介,請參閱使用中次要副本:次要副本上的備份(AlwaysOn 可用性群組)。

開始之前

先決條件

您必須連接到裝載主複本的伺服器執行個體。

安全

權限

任務 權限
在建立可用性群組時設定次要復本的備份 需要 系統管理員 (sysadmin) 固定伺服器角色的成員資格,以及 CREATE AVAILABILITY GROUP 伺服器權限、ALTER ANY AVAILABILITY GROUP 權限或 CONTROL SERVER 權限。
若要修改可用性群組或可用性複本 需要有對可用性群組的 ALTER AVAILABILITY GROUP 權限、CONTROL AVAILABILITY GROUP 權限、ALTER ANY AVAILABILITY GROUP 權限,或是對 CONTROL SERVER 的權限。

使用 SQL Server Management Studio

若要設定次要複本的備份

  1. 在 [物件總管] 中,連接到裝載主要副本的伺服器執行個體,然後按一下伺服器名稱以展開伺服器樹。

  2. 展開 [ AlwaysOn 高可用性 ] 節點和 [ 可用性群組] 節點。

  3. 按一下您要配置備份偏好設定的可用性群組,然後選取 [屬性命令]。

  4. 在 [ 可用性群組屬性 ] 對話框中,選取 [備份喜好設定 ] 頁面。

  5. 在 [ 應該在哪裡進行備份?] 面板上,選取可用性群組的自動備份喜好設定,其中一個:

    偏好次要
    指定應該在次要複本上進行備份,但是主要複本是唯一線上複本的情況例外。 在此情況下,應該在主要複本上進行備份。 這是預設選項。

    僅次要
    指定絕對不能在主要複本上執行備份。 如果主要複本是唯一的線上複本,不應該進行備份。

    Primary
    指定備份一定要在主要複本上進行。 當備份在次要復本上執行時,如果需要如建立差異備份等備份功能,這個選項將非常有用,因為次要復本不支援這些功能。

    這很重要

    如果您打算使用記錄傳送來準備可用性群組的任何輔助資料庫,請將自動備份喜好設定 Primary 設定為 ,直到所有輔助資料庫都準備好並加入可用性群組為止。

    任何複本
    指定您偏好備份作業在選擇執行備份的副本時忽略可用性副本的角色。 請注意,備份作業可能會評估其他因素,例如每個可用性複本的備份優先權,搭配其操作狀態和連接狀態。

    這很重要

    不會強制執行自動備份喜好設定。 此偏好設定的詮釋取決於您在特定可用性群組中編寫資料庫備份作業腳本時所在的邏輯。 自動備份喜好設定不會影響臨機作備份。 如需詳細資訊,請參閱本主題稍後的 後續作:在次要複本上設定備份之後

  6. 使用 [ 複本備份優先順序 ] 方格來變更可用性復本的備份優先順序。 此方格會顯示裝載可用性群組複本之每個伺服器實例的目前備份優先順序。 格網欄位如下所示:

    伺服器執行個體
    裝載可用性複本的 SQL Server 執行個體名稱。

    備份優先順序 (最低=1,最高=100)
    指定在這個複本上執行備份的優先權 (相對於相同可用性群組中的其他複本)。 這個值是 0 到 100 範圍之間的整數。 1 表示最低優先權,100 表示最高優先權。 如果 備份優先順序 = 1,只有在目前沒有較高的優先順序可用性複本可用時,才會選擇可用性復本來執行備份。

    排除複本
    如果您永遠不希望選擇這個可用性副本來執行備份,請選擇。 例如,這對於您永遠不希望將備份容錯移轉到其中的遠端可用性複本十分有用。

  7. 若要認可變更,請按兩下 [ 確定]。

存取 [備份喜好設定] 頁面的替代方式

使用 Transact-SQL

若要設定次要複本的備份

  1. 連接到主要複本所在的伺服器實例。

  2. 針對新的可用性群組,請使用 CREATE AVAILABILITY GROUP (Transact-SQL) 語句。 如果您要修改現有的可用性群組,請使用 ALTER AVAILABILITY GROUP (Transact-SQL) 語句。

使用 PowerShell

在次要複本上設定備份

  1. 將預設 (cd) 設定為裝載主要複本的伺服器實例。

  2. 您可以選擇性地設定您要新增或修改之每個可用性複本的備份優先順序。 裝載主要複本的伺服器實例會使用此優先順序來決定哪些複本應該在可用性群組中的資料庫上服務自動備份要求(選擇優先順序最高的複本)。 此優先順序可以是介於 0 到 100 之間的任何數位,包含。 優先順序 0 表示複本不應視為維護備份要求的候選專案。 默認設定為 50。

    將可用性復本新增至可用性群組時,請使用 New-SqlAvailabilityReplica Cmdlet。 修改現有的可用性複本時,請使用 Set-SqlAvailabilityReplica Cmdlet。 在任一情況下,請指定 BackupPriorityn 參數,其中 n 是介於 0 到 100 的值。

    例如,下列命令會將可用性復 MyReplica 本的備份優先順序設定為 60

    Set-SqlAvailabilityReplica -BackupPriority 60 -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica  
    
  3. 或者,為您要建立或修改的可用性群組設定自動備份喜好設定。 此喜好設定會指出備份作業在選擇要執行備份的位置時,應該如何評估主要複本。 默認設定是偏好次要複本。

    建立可用性群組時,請使用 New-SqlAvailabilityGroup Cmdlet。 修改現有的可用性群組時,請使用 Set-SqlAvailabilityGroup Cmdlet。 在任一情況下,請指定 AutomatedBackupPreference 參數。

    其中

    Primary
    指定備份一定要在主要複本上進行。 此選項在您需要備份功能時非常有用,例如在次要副本上執行備份時不支援的差異備份功能。

    這很重要

    如果您打算使用記錄傳送來準備可用性群組的任何輔助資料庫,請將自動備份喜好設定 Primary 設定為 ,直到所有輔助資料庫都準備好並加入可用性群組為止。

    SecondaryOnly
    指定絕對不能在主要複本上執行備份。 如果主要複本是唯一的線上複本,不應該進行備份。

    Secondary
    指定應該在次要複本上進行備份,但是主要複本是唯一線上複本的情況例外。 在此情況下,應該在主要複本上進行備份。 此為預設行為。

    None
    指定您偏好備份作業在選擇執行備份的副本時忽略可用性副本的角色。 請注意,備份作業可能會評估其他因素,例如每個可用性複本的備份優先權,搭配其操作狀態和連接狀態。

    這很重要

    不會強制執行 AutomatedBackupPreference。 此偏好設定的解釋取決於您在特定可用性群組中為資料庫安排備份作業時所編寫的邏輯。 自動備份喜好設定不會影響臨機作備份。 如需詳細資訊,請參閱本主題稍後的 後續作:在次要複本上設定備份之後

    例如,下列命令會將可用性群組MyAg上的 屬性設定AutomatedBackupPreferenceSecondaryOnly。 此可用性群組中的資料庫自動備份永遠不會發生在主要複本上,但會重新導向至具有最高備份優先順序設定的次要複本。

    Set-SqlAvailabilityGroup -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg `  
     -AutomatedBackupPreference SecondaryOnly  
    

備註

若要檢視 Cmdlet 的語法,請使用 Get-Help SQL Server PowerShell 環境中的 Cmdlet。 如需詳細資訊,請參閱 Get Help SQL Server PowerShell

若要設定及使用 SQL Server PowerShell 提供者,請參閱 SQL Server PowerShell 提供者取得 SQL Server PowerShell 的說明

後續作:在次要複本上設定備份之後

若要將給定可用性群組的自動備份喜好設定納入考慮,請在裝載備份優先順序大於零 (>0) 的可用性複本的每個伺服器實例上,為可用性群組中的資料庫編寫備份作業腳本。 若要判斷目前複本是否為慣用的備份複本,請在備份腳本中使用 sys.fn_hadr_backup_is_preferred_replica 函式。 如果目前伺服器實例裝載的可用性複本是備份的慣用複本,此函式會傳回 1。 如果沒有,函式會傳回 0。 藉由在每個查詢此函式的可用性複本上執行簡單的文稿,您可以判斷哪個複本應該執行指定的備份作業。 例如,備份作業腳本的典型代碼段看起來會像這樣:

IF (NOT sys.fn_hadr_backup_is_preferred_replica(@DBNAME))  
BEGIN  
      Select 'This is not the preferred replica, exiting with success';  
      RETURN 0 - This is a normal, expected condition, so the script returns success  
END  
BACKUP DATABASE @DBNAME TO DISK=<disk>  
   WITH COPY_ONLY;  

使用此邏輯來編寫備份任務,可以讓您將任務排程為在每個可用性複本上按相同的時程表運行。 每個作業都會查看相同的數據,以判斷應該執行的作業,因此只有其中一個排程工作實際上會繼續進行備份階段。 發生故障轉移時,任何腳本或作業都不需要修改。 此外,如果您重新設定可用性群組以新增可用性複本,管理備份作業只需要複製或排程備份作業即可。 如果您移除可用性複本,只要從裝載該複本的伺服器實例中刪除備份作業。

小提示

如果您使用維護計劃精靈來建立指定的備份作業,作業會自動包含呼叫並檢查 sys.fn_hadr_backup_is_preferred_replica 函式的腳本邏輯。 不過,備份作業不會傳回「這不是慣用的複本...」消息。請務必在每一個裝載可用性群組可用性複本的伺服器實例上,為每一個可用性資料庫建立作業。

取得備份喜好設定的相關資訊

下列適用於取得與次要備份相關的資訊。

查看 資訊 相關欄位
sys.fn_hadr_backup_is_preferred_replica 當前的複本是否為首選的備份複本? 不適用。
sys.availability_groups 自動備份喜好設定 自動備份偏好設定

automated_backup_preference_desc
sys.availability_replicas 指定可用性複本的備份優先順序 備份優先級
sys.dm_hadr_availability_replica_states 伺服器實例的複本是否為本地?

目前的角色

作業狀態

線上狀態

可用性復本的同步健康狀況
is_local

rolerole_desc

operational_state, operational_state_desc

connected_state, connected_state_desc

同步健康, 同步健康描述

相關內容

另請參閱

AlwaysOn 可用性群組概觀 (SQL Server)
作用中次要副本:次要複本上的備份(AlwaysOn 可用性群組)