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

来源:http://www.cnblogs.com/chenmh/archive/2017/08/02/6971992.html
-Advertisement-
Play Games

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


介紹

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

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

《歡迎交流討論》

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • android視圖概述 一、簡介 數據和控制項分開的作用: 便於引用 便於修改:修改的時候直接改一次數據就可以了 ...
  • 要求:載入全部的訂單,每個訂單裡面有一個或者多個產品,在列表中要展現出來, 1. xaml界面 步驟:1.這裡使用的是x:bind綁定所以要引入實體類命名空間(OrderList集合中類的命名空間): xmlns:order="using:GemallApp.Core.Models" 2. <Lis ...
  • 要求:評論寶貝的時候一個訂單裡面包含多個產品,獲取對產品的評論內容哦 1. xaml界面 要求:獲取ListView中x:Name為tbContent的值(評論內容) 第一步:綁定TextBox的值使用Mode=TwoWay <TextBox x:Name="tbContent" Text="{Bi ...
  • 1.要求: 發送驗證碼按鈕,點擊後,會倒計時60s,之後才能再次點擊。不同界面的多個驗證碼按鈕共用這個倒計時時間。 2.操作步驟 1) 從登錄界面-->忘記密碼輸入手機號-->下一步-->倒計時60s 2) 返回到註冊頁面-->輸入手機號碼-->下一步-->獲取計時器倒計時到48s,然後從48s繼續 ...
  • 1.從相冊裡面選取圖片 2.從相機裡面選取圖片 3.裁剪圖片調用的公共方法CutPicture 4.使用Windows.Web.Http命名空間下的HttpClient使用post方法,上傳圖片伺服器 參考:https://social.msdn.microsoft.com/Forums/zh-CN ...
  • 一:Redis是什麼? Redis全稱:REmote DIctionary Server(Redis) 。Redis是一個由Salvatore Sanfilippo寫的key-value存儲系統,ANSI C語言編寫; 特點:開源免費、單線程、大併發、遵守BSD協議、支持網路、可基於記憶體亦可持久化、 ...
  • 摘自:《高性能Mysql》 1. 哈希索引基於哈希表實現,只有精確的匹配索引所有列的查詢才有效,對於每一行數據,存儲引擎會對所有的索引列計算一個哈希碼,並將哈希碼存儲在索引中,同時在哈希表中保存只想每個數據行指針 mysql中,只有memory引擎顯示支持哈希索引,並且支持非唯一哈希索引。也是mem ...
  • 多表查詢必然要用到多表關聯 多表關聯 分三類: A:內部連接 join 或inner join B:外部鏈接 外部連接又分為兩類 :左外連接 left join 和右外連接 right join C:交叉連接 cross join 以下 舉例說明 有兩張表 格 一張學生的 一張老師的 一張中間表的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...