1. 程式人生 > >SQL Server Alwayson創建代理作業註意事項

SQL Server Alwayson創建代理作業註意事項

配置 好處 連接 當前 是否 優先級 span 生產 數據庫

介紹

Always On 可用性組活動輔助功能包括支持在輔助副本上執行備份操作。 備份操作可能會給 I/O 和 CPU 帶來很大的壓力(使用備份壓縮)。 將備份負荷轉移到已同步或正在同步的輔助副本後,您可以使用承載第一層工作負荷的主副本的服務器實例上的資源,您可以創建主數據庫的任何類型的備份。 也可以創建輔助數據庫的日誌備份和僅復制完整備份。

一、概念

1.輔助副本上支持的備份類型

  • BACKUP DATABASE :在輔助副僅支持數據庫、文件或文件組的僅復制完整備份。 請註意,僅復制備份不影響日誌鏈,也不清除差異位圖。
  • 輔助副本不支持差異備份。
  • BACKUP LOG 僅支持常規日誌備份(輔助副本上的日誌備份不支持 COPY_ONLY 選項)。
  • 若要備份輔助數據庫,輔助副本必須能夠與主副本進行通信,並且狀態必須為 SYNCHRONIZED 或 SYNCHRONIZING。

2.配置運行備份作業的位置

在輔助副本上執行備份以減輕主生產服務器的備份工作負荷非常有好處。 但是,對輔助副本執行備份會顯著增加用於確定應在何處運行備份作業的過程的復雜性。 要解決這個問題,請按如下所示配置備份作業運行的位置:

  • 配置可用性組以便指定要對其執行備份的可用性副本。
  • 為承載作為執行備份候選的可用性副本的每個服務器實例上的每個可用性數據庫都創建編寫了腳本的備份作業。

3.備份首選項

優先輔助副本
指定備份應在輔助副本上發生,但在主副本是唯一聯機的副本時除外。 在該情況下,備份應在主副本上發生。 這是默認選項。

僅輔助副本
指定備份應該永遠不會在主副本上執行。 如果主副本是唯一的聯機副本,則備份應不會發生。

主副本
指定備份應該始終在主副本上發生。 如果您需要在對輔助副本運行備份時存在不支持的備份功能,例如創建差異備份,此選項將很有用。

任意副本
指定您希望在選擇要執行備份的副本時備份作業將忽略可用性副本的角色。請註意,備份作業可能評估其他因素,例如每個可用性副本的備份優先級及其操作狀態和已連接狀態。

註意:如果您計劃使用日誌傳送為可用性組準備任何輔助數據庫,請將自動備份首選項設置為Primary,直到準備好所有輔助數據庫並將其加入可用性組。沒有強制的自動備份首選項設置。 對此首選項的解釋取決於您為給定可用性組中的數據庫撰寫備份作業腳本的邏輯(如果有)。 自動備份首選項設置對即席備份沒有影響。

二、判斷語句

若要為某一給定可用性組考慮使用自動備份首選項,則對於承載備份優先級大於零 (>0) 的可用性副本的每個服務器實例,您需要為該可用性組中的數據庫的備份作業編寫腳本。若要確定當前副本是否為首選備份副本,請在備份腳本中使用 sys.fn_hadr_backup_is_preferred_replica 函數。如果當前實例上的數據庫位於首選副本上,則返回 1否則返回 0。 通過對查詢此函數的每個可用性副本運行判斷腳本,可以確定哪個副本應運行給定的備份作業。

If sys.fn_hadr_backup_is_preferred_replica(@dbname)=1
BEGIN
BACKUP DATABASE @DBNAME TO DISK=<disk> 
END 
ELSE 
PRINT(當前副本不是備份首選副本)

在所有可能執行的備份的副本上面創建相同的備份語句,在發生故障轉移時,無需修改任何腳本或作業

三、創建代理作業

技術分享

註意:

1.這裏的數據庫要選擇“master”,如果當前的alwayson配置了只讀路由而你這裏選擇的是可用性數據庫的話那麽在輔助副本上面創建的作業會執行失敗,因為只讀路由連接輔助副本可用性數據庫需要readonly連接屬性。創建非備份的其它作業也是一樣。

2.當前我的備份腳本放在master數據庫中,如果是執行其它數據庫下的腳本也是一樣,這裏需要將數據庫名帶上。

3. 如果if判斷這裏指定的是一個非可用性組的數據庫返回的結果同樣是1,因為對於實例來說非可用性的數據庫也是備份的首先副本。

判斷是否是主副本命令

If sys.fn_hadr_is_primary_replica (@dbname) =1  
BEGIN  
    PRINT(1)
END 
ELSE
    PRINT(當前副本不是主副本)

備註:判斷是否是主副本命令和判斷是否是備份主副本命令不一樣,如果指定的數據庫是非可用性組數據庫判斷是否是主副本返回的結果是NULL,而判斷是否是備份主副本返回的是1。

總結

1.在可用性組的主數據庫或輔助數據庫上不允許 RESTORE 語句。

2.備份首選項只是給出一個備份的判斷選項,無論你手動在哪個副本上備份都可以,唯一的限制就是輔助副本的完整備份只支持“復制”備份。由於輔助副本只支持僅復制備份,所以輔助副本無法進行差異備份。要進行差異備份那麽首先備份副本應該選擇主副本。

3.無論是在主副本上備份日誌還是在輔助副本上備份日誌最終都會截斷所有副本上的日誌鏈。

備註:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接。

《歡迎交流討論》

SQL Server Alwayson創建代理作業註意事項