為可用性組計劃備份作業
在 MS SQL Server 2014 AlwaysOn AG 設置中,我想為給定的可用性組安排備份作業。最終目標是讓定期備份在同步的輔助節點上執行,最重要的是,不受特定輔助節點的可用性限制。
到目前為止,我看到的方法是使用 SQL Server 調度程序,在所有正在執行的實例上設置相同的作業,並將條件邏輯引入調度程序步驟,以確定角色是主要的還是次要的。由於以下幾個原因,這不適用於我的案例:
- 我只想在輔助設備上執行計劃的操作一次,但我有多個輔助設備
- 我想確保它最終執行,無論是否有任何輔助節點 - 如果沒有輔助節點,它應該在主節點上執行
備份作業包括
BACKUP LOG [...] WITH COMPRESSION, NOINIT, NOFORMAT
每 15 分鐘執行一次。現在,我正在考慮創建一個綁定到相應 AG 的故障轉移集群角色的集群計劃任務,但想知道是否有更簡單和簡化的方法來實現它。
在 MS SQL Server 2014 AlwaysOn AG 設置中,我想為給定的可用性組安排備份作業。最終目標是讓定期備份在同步的輔助節點上執行,最重要的是,不受特定輔助節點可用性的限制。
這可以毫無問題地完成。請記住,您的系統應該被指定為能夠承擔 AlwaysOn 可用性組的同步機制的全部負載,以及所需的重做以及備份。您最不想做的事情是壓倒您的 IO 系統並導致中斷或大型重做隊列。這是假設它沒有被主動用作可讀的輔助 - 如果是,您將需要考慮它並註意阻塞的重做執行緒。
1.我只想在輔助節點上執行計劃的操作一次,但我有多個輔助節點 2.我想確保它最終執行,無論是否有任何輔助節點都剩下 - 如果沒有輔助節點,它應該在主伺服器上執行
有一個可用性組設置和一個系統功能可用於在您預期的指導方針內完成此操作。
第一個是根據 AG 呼叫的設置,
AUTOMATED_BACKUP_PREFERENCE
它有四個不同的選項。您所描述的那個被稱為SECONDARY
它將首選任何輔助節點而不是主節點。選擇的輔助節點是由BACKUP_PRIORITY
每個副本設置的,範圍為 0-100,其中數字越大,它的權重越大。如果次要副本的權重相同,則將選擇根據系統排序規則首先排序的副本。如果所有輔助副本都失敗,則將選擇主副本。等式的第二部分是系統函式,用於根據上一段中的值檢查執行作業的副本是否是首選副本。此系統函式稱為sys.fn_hadr_backup_is_preferred_replica()。給定一個數據庫名稱(AG 中的任何數據庫),如果它不是首選副本,則返回值 0,如果它是首選,則返回值 1。
在創建代理作業以完成此操作時,您需要將備份邏輯包裝在
IF
條件中以檢查首選副本。而已。將相同的代理作業放在所有副本上。請務必測試這確實是您想要和期望的。