日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQLserver的Always On 可用性组

發布時間:2023/12/8 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQLserver的Always On 可用性组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Note:

.Always On筆記:

1.always on是基于 高可用性組的。

1.1高可用性組:是一組SQLserver實例,由一個或多個主數據庫? 和? 多個輔助數據庫構成。

1.2高可用性組之間 數據是同步的,有兩種方式同步數據:同步提交模式 和 異步提交模式? 。

同步提交模式:當向主數據庫寫入數據時,主數據庫會將 事務日志記錄 發送到每個輔助數據庫,并且主數據庫會等 輔助數據庫完成事務日志同步。 可能會導致 事務的滯后。

異步提交模式 :與同步提交方式不同的是,主數據庫不會等 輔助數據庫完成事務日志同步。可能會導致輔助數據庫數據丟失。

2.故障轉移:

2.1故障轉移模式:

根據可用性組的同步方式不同分為兩種:

?轉移方式描述影響
同步提交手動手動故障轉移在數據庫管理員發出故障轉移命令之后發生,它將導致已同步的輔助副本轉換為主角色(同時確保數據受到保護),而主副本轉換為輔助角色。?手動故障轉移要求主副本和目標輔助副本都在同步提交模式下運行,并且輔助副本必須已同步數據不會丟失
自動自動故障轉移是為了響應導致已同步的輔助副本轉換為主角色(同時確保數據受到保護)的故障而執行的。?如果以前的主副本變為可用,則它將轉換為輔助角色。?自動故障轉移要求主副本和目標輔助副本都在同步提交模式下運行,并且故障轉移模式設置為“自動”。?此外,次要副本必須已同步并具有 WSFC 仲裁,且滿足由可用性組的?靈活故障轉移策略指定的條件數據不會丟失
異步提交強制在異步提交模式下,唯一的故障轉移形式為強制手動故障轉移(可能造成數據丟失),通常稱作“強制故障轉移”數據可能丟失

?

3.讀寫分離

可以減少主數據庫的負載

https://docs.microsoft.com/zh-cn/sql/database-engine/availability-groups/windows/active-secondaries-readable-secondary-replicas-always-on-availability-groups?view=sql-server-ver15

3.1必備條件:

a.可讀輔助副本(必需):即必須有備用數據庫

b.可用性組偵聽器:偵聽讀意向連接請求。

c.只讀路由:負責將偵聽到的只讀請求,發送到對應的只讀數據庫

只讀路由的必備條件:

1)。為支持只讀路由,只讀數據庫需要一個只讀路由 URL。 有對應的URL才能找到 只讀數據庫的地址

2)。主副本配置路由列表。?只讀路由列表中將包含各個 只讀路由 的URL,并且在列表的末尾具有主數據庫的 URL。

?

?

3.2具體實施方案:

?



本主題介紹用于在?Always On 可用性組?中配置和管理一個或多個可用性組的核心?SQL Server 2019 (15.x)概念。?有關可用性組提供的優勢的摘要和?Always On 可用性組?術語的概述,請參閱?AlwaysOn 可用性組 (SQL Server)。

可用性組支持的復制環境適用于一組離散用戶數據庫,稱為“可用性數據庫” 。?可以創建可用性組以實現高可用性 (HA) 或讀取縮放。?HA 可用性組是一組共同實現故障轉移的數據庫。?讀取縮放可用性組是一組復制到其他 SQL Server 實例以實現只讀工作負荷的數據庫。?一個可用性組支持一組主數據庫以及一至八組對應的輔助數據庫。?輔助數據庫?不是?備份。?應繼續定期備份您的數據庫及其事務日志。

?提示

您可以創建主數據庫的任何類型的備份。?也可以創建輔助數據庫的日志備份和僅復制完整備份。?有關詳細信息,請參閱活動次要副本:次要副本備份(Always On 可用性組)。

每組可用性數據庫都由一個“可用性副本” 承載。?有兩種類型的可用性副本:一個“主副本” 和一到四個“輔助副本”。?它承載主數據庫和一至八個“輔助副本” ,其中每個副本承載一組輔助數據庫,并用作可用性組的潛在故障轉移目標。?可用性組在可用性副本級別進行故障轉移。?可用性副本僅在數據庫級別提供冗余(針對一個可用性組中的該組數據庫)。?故障轉移不是由諸如因數據文件丟失或事務日志損壞而使數據庫成為可疑數據庫等數據庫問題導致的。

主副本使主數據庫可用于客戶端的讀寫連接。?主副本將每個主數據庫的事務日志記錄發送到每個輔助數據庫。?此過程(稱為“數據同步”)在數據庫級別運行 。?每個次要副本緩存事務日志記錄(“硬化” 日志),然后將它們應用到相應的輔助數據庫。?主數據庫與每個連接的輔助數據庫獨立進行數據同步。?因此,一個輔助數據庫可以掛起或失敗而不會影響其他輔助數據庫,一個主數據庫可以掛起或失敗而不會影響其他主數據庫。

或者,您可以配置一個或多個輔助副本以支持對輔助數據庫進行只讀訪問,并且可以將任何輔助副本配置為允許對輔助數據庫進行備份。

SQL Server 2017 引入了用于可用性組的兩種不同的體系結構。?“AlwaysOn 可用性組”提供高可用性、災難恢復和讀取縮放均衡 。?這些可用性組需要群集管理器。?在 Windows 中,故障轉移群集提供群集管理器。?在 Linux 中可以使用 Pacemaker。?另一個體系結構是“讀取縮放可用性組” 。?讀取縮放可用性組為只讀工作負荷提供副本,但不提供高可用性。?讀取縮放可用性組中沒有群集管理器。

在 Windows 上為 HA 部署?Always On 可用性組?需要 Windows Server 故障轉移群集 (WSFC)。?給定可用性組的每個可用性副本必須位于相同 WSFC 的不同節點上。?唯一的例外是在遷移到另一個 WSFC 群集時,此時一個可用性組可能會暫時跨兩個群集。

?備注

有關 Linux 上可用性組的信息,請參閱?Linux 上的 SQL Server 的 AlwaysOn 可用性組。

HA 配置中會為創建的每個可用性組創建一個群集角色。?WSFC 群集將監視此角色,以便評估主要副本的運行狀況。?針對?Always On 可用性組?的仲裁基于 WSFC 群集中的所有節點,而與某一給定群集節點是否承載任何可用性副本無關。?與數據庫鏡像相反,在?Always On 可用性組中沒有見證服務器角色。

?備注

有關 SQL Server AlwaysOn 組件與 WSFC 群集的關系的信息,請參閱?Windows Server 故障轉移群集 (WSFC) 與 SQL Server。

下圖顯示的是一個包含一個主要副本和四個次要副本的可用性組。?支持最多八個輔助副本,包括一個主副本和兩個同步提交輔助副本。

可用性數據庫

若要將數據庫添加到可用性組,該數據庫必須是聯機的讀寫數據庫,它位于承載主副本的服務器實例上。?當您添加一個數據庫時,它將作為主數據庫加入可用性組,同時保持可用于客戶端。?除非新的主數據庫的備份還原到承載輔助副本(使用 RESTORE WITH NORECOVERY)的服務器實例,否則不存在對應的輔助數據庫。?新的輔助數據庫處于 RESTORING 狀態,直至其加入可用性組。?有關詳細信息,請參閱本主題后面的?啟動 AlwaysOn 輔助數據庫的數據移動 (SQL Server)。

加入后,輔助數據庫將進入 ONLINE 狀態,并啟動與對應主數據庫之間的數據同步。?“數據同步” 是在輔助數據庫上重新生成對主數據庫的更改的過程。?數據同步涉及主數據庫將事務日志記錄發送到輔助數據庫。

?重要

可用性數據庫在?Transact-SQL、PowerShell 和 SQL Server 管理對象 (SMO) 名稱中有時候被稱作“數據庫副本” 。?例如,“數據庫副本”一詞用于返回與可用性數據庫有關的信息的 AlwaysOn 動態管理視圖的名稱中:sys.dm_hadr_database_replica_states?和?sys.dm_hadr_database_replica_cluster_states。?但在 SQL Server 聯機叢書中,“副本”一詞通常表示可用性副本。?例如,“主副本”和“輔助副本”始終表示可用性副本。

可用性副本

每個可用性組定義一個包含兩個或更多故障轉移伙伴(稱為可用性副本)的集合。?“可用性副本”是可用性組的組件。?每個可用性副本都承載可用性組中的可用性數據庫的一個副本。?對于某個給定可用性組,可用性副本必須位于某一 WSFC 群集的不同節點上的單獨?SQL Server?實例上。?必須為 AlwaysOn 啟用這些服務器實例中的每個實例。

對于每個可用性組,一個給定實例只能承載一個可用性副本。?但是,每個實例可用于多個可用性組。?給定的實例可以是獨立實例或?SQL Server?故障轉移群集實例 (FCI)。?如果您要求服務器級別的冗余,則使用故障轉移群集實例。

每個可用性副本都被分配一個初始角色(“主角色”或“輔助角色”),角色由該副本的可用性數據庫繼承 。?給定副本的角色確定它承載的是讀寫數據庫還是只讀數據庫。?其中一個副本(稱為“主要副本” )被分配主角色,它承載讀寫數據庫(稱為“主數據庫” )。?至少一個其他副本(稱為“輔助副本” )被分配輔助角色。?輔助副本承載只讀數據庫(稱為輔助數據庫)。

?備注

如果可用性副本的角色是不確定的(如在故障轉移過程中),則其數據庫將臨時處于 NOT SYNCHRONIZING 狀態。?其角色設置為 RESOLVING,直至可用性副本的角色已解析。?如果可用性副本解析為主角色,則其數據庫將成為主數據庫。?如果可用性副本解析為輔助角色,則其數據庫將成為輔助數據庫。

可用性模式

可用性模式是每個可用性副本的一個屬性。?可用性模式確定主副本是否在給定的輔助副本將事務日志記錄寫入磁盤(強制寫入日志)之前,等待提交數據庫上的事務。?Always On 可用性組?支持兩種可用性模式:“異步提交模式”和“同步提交模式” 。

  • 異步提交模式

    使用此可用性模式的可用性副本稱為“異步提交副本” 。?在異步提交模式下,主副本無需等待確認異步提交輔助副本已硬化日志,便可提交事務。?異步提交模式可最大限度地減少輔助數據庫上的事務滯后時間,但允許它們滯后于主數據庫,因此可能會導致某些數據丟失。

  • 同步提交模式

    使用此可用性模式的可用性副本稱為“同步提交副本” 。?在同步提交模式下,在提交事務之前,同步提交主副本要等待同步提交輔助副本確認它已完成硬化日志。?同步提交模式可確保在給定的輔助數據庫與主數據庫同步時,充分保護已提交的事務。?這種保護的代價是延長事務滯后時間。

有關詳細信息,請參閱?可用性模式(AlwaysOn 可用性組)。

故障轉移類型

在主副本和輔助副本之間的對話上下文中,通過稱為“故障轉移” 的過程,主角色和輔助角色是潛在可互換的。?在故障轉移期間,目標輔助副本轉換為主角色,成為新的主副本。?新的主副本使其數據庫作為主數據庫聯機,而客戶端應用程序可以連接到這些數據庫。?如果以前的主副本可用,則它將轉換為輔助角色,成為輔助副本。?以前的主數據庫成為輔助數據庫,且數據同步恢復。

有三種故障轉移形式:自動、手動和強制(可能造成數據丟失)。?給定輔助副本支持的故障轉移形式取決于其可用性模式,對于同步提交模式來說,取決于主副本和目標輔助副本的故障轉移模式,如下所示。

  • 同步提交模式支持兩種故障轉移形式:“計劃的手動故障轉移”和“自動故障轉移”(如果目標次要副本當前與主副本同步) 。?對這些故障轉移形式的支持取決于故障轉移伙伴上的“故障轉移模式屬性” 的設置。?如果在主副本或輔助副本上將故障轉移模式設置為“手動”,則對于該輔助副本僅支持手動故障轉移。?如果同時在主副本和輔助副本上將故障轉移模式設置為“自動”,則該輔助副本同時支持自動故障轉移和手動故障轉移。

    • 計劃的手動故障轉移?(無數據丟失)

      手動故障轉移在數據庫管理員發出故障轉移命令之后發生,它將導致已同步的輔助副本轉換為主角色(同時確保數據受到保護),而主副本轉換為輔助角色。?手動故障轉移要求主副本和目標輔助副本都在同步提交模式下運行,并且輔助副本必須已同步。

    • 自動故障轉移?(無數據丟失)

      自動故障轉移是為了響應導致已同步的輔助副本轉換為主角色(同時確保數據受到保護)的故障而執行的。?如果以前的主副本變為可用,則它將轉換為輔助角色。?自動故障轉移要求主副本和目標輔助副本都在同步提交模式下運行,并且故障轉移模式設置為“自動”。?此外,次要副本必須已同步并具有 WSFC 仲裁,且滿足由可用性組的?靈活故障轉移策略指定的條件。

      ?重要

      SQL Server 故障轉移群集實例 (FCI) 不支持通過可用性組來自動進行故障轉移,因此,只能為手動故障轉移配置任何由 FCI 承載的可用性副本。

    ?備注

    請注意,如果對已同步的輔助副本發出強制故障轉移命令,則輔助副本的行為與計劃的手動故障轉移時的行為相同。

  • 在異步提交模式下,唯一的故障轉移形式為強制手動故障轉移(可能造成數據丟失),通常稱作“強制故障轉移” 。?強制故障轉移被認為是一種手動故障轉移,因為它只能手動啟動。?強制故障轉移是一個災難恢復選項。?當目標輔助副本與主副本不同步時,強制故障轉移是唯一可能的故障轉移形式。

有關詳細信息,請參閱?故障轉移和故障轉移模式(AlwaysOn 可用性組)概念。

客戶端連接

您可以通過創建一個可用性組偵聽器來提供到給定可用性組的主副本的客戶端連接。?“可用性組偵聽器” 提供一組附加到給定可用性組的資源,以便將客戶端連接定向到相應的可用性副本。

一個可用性組偵聽器與一個唯一的 DNS 名稱(用作虛擬網絡名稱 (VNN))、一個或多個虛擬 IP 地址 (VIP) 和一個 TCP 端口號關聯。?有關詳細信息,請參閱?可用性組偵聽程序、客戶端連接和應用程序故障轉移 (SQL Server)概念。

?提示

如果一個可用性組僅擁有兩個可用性副本,并且未配置為允許對次要副本進行讀訪問,則客戶端可以通過使用?數據庫鏡像連接字符串連接到主要副本。?從數據庫鏡像將數據庫遷移到?Always On 可用性組之后,這種方法暫時非常有用。?在添加其他輔助副本之前,您需要為該可用性組創建一個可用性組偵聽器,并更新您的應用程序以使用該偵聽器的網絡名稱。

活動輔助副本

Always On 可用性組?支持活動輔助副本。?活動輔助功能包括對以下方面的支持:

  • 對輔助副本執行備份操作

    次要副本支持對完整數據庫、文件或文件組執行日志備份和?僅復制?備份。?您可以配置可用性組,以便為備份指定一個首選位置。?理解 SQL Server 不強制使用首選備份位置十分重要,因為它對即席備份沒有影響。?對此首選備份位置的解釋取決于您為給定可用性組中的每個數據庫撰寫作業腳本的邏輯(如果有)。?對于單獨的可用性副本,您可以指定對此副本(相對于同一可用性組中其他副本)執行備份的優先級。?有關詳細信息,請參閱活動次要副本:次要副本備份(Always On 可用性組)。

  • 對一個或多個輔助副本(可讀輔助副本)的只讀訪問權限

    可以對任何次要可用性副本進行配置,以便僅允許對其本地數據庫進行只讀訪問,盡管不會完全支持某些操作。?這會阻止對次要副本進行讀寫連接嘗試。?還可以通過僅允許進行讀寫訪問來阻止主要 副本上的只讀工作負載。?這會阻止對主要副本建立只讀連接。?有關詳細信息,請參閱活動次要副本:可讀次要副本(Always On 可用性組)。

    如果某一可用性組當前擁有一個可用性組偵聽程序以及一個或多個可讀次要副本,則?SQL Server?可以將讀意向連接請求路由到其中一個可讀次要副本(只讀路由)。?有關詳細信息,請參閱?可用性組偵聽程序、客戶端連接和應用程序故障轉移 (SQL Server)概念。

會話超時期限

會話超時期限是一個可用性副本屬性,它決定在連接關閉前與另一個可用性副本的連接可處于不活動狀態多長時間。?主副本和輔助副本相互 ping 以表示它們還處于活動狀態。?在超時期限內從其他副本收到 ping 指示連接仍是打開的,且服務器實例正在進行通信。?收到 ping 后,可用性副本將重置此連接的會話超時計數器。

會話超時期限防止副本無限制等待接收來自另一個副本的 ping。?如果在會話超時期限內沒有收到來自另一個副本的 ping,該副本將超時。連接將關閉,超時的副本進入 DISCONNECTED 狀態。?即使為同步提交模式配置了斷開連接的副本,事務也將不等待該副本重新連接和重新同步。

每個可用性副本的默認會話超時期限為 10 秒。?用戶可配置此值,最小值為 5 秒。?通常我們建議您將超時期限保持為 10 秒或更長。?如果將值設置為低于 10 秒,則可能使高負荷系統聲明虛假故障。

?備注

在“正在解析”角色中,會話超時期限不適用,因為不進行 ping。

自動頁修復

每個可用性副本都通過解決阻止讀取數據頁的一定類型的錯誤,自動嘗試從本地數據庫上損壞的頁中恢復。?如果輔助副本無法讀取某頁,則該副本從主副本請求該頁的新副本。?如果主副本無法讀取某頁,該副本將向所有輔助副本廣播索取新副本的請求,并從響應的第一個副本中獲取該頁。?如果此請求成功,則將以新副本替換不可讀的頁,這通常會解決該錯誤。

有關詳細信息,請參閱自動頁修復(可用性組:數據庫鏡像)。

  • AlwaysOn 可用性組入門 (SQL Server)
  • 博客:

    Always On - HADRON 學習系列:啟用了 HADRON 的數據庫的工作線程池用法

    SQL Server Always On 團隊博客:SQL Server Always On 團隊官方博客

    CSS SQL Server 工程師博客

  • 視頻:

    Microsoft SQL Server Code-Named "Denali" Always On Series,Part 1:Introducing the Next Generation High Availability Solution(Microsoft SQL Server Code-Named "Denali" Always On 系列,第 1 部分:介紹下一代高可用性解決方案)

    Microsoft SQL Server Code-Named "Denali" Always On Series,Part 2:Building a Mission-Critical High Availability Solution Using Always On(Microsoft SQL Server Code-Named "Denali" Always On 系列,第 2 部分:使用 Always On 生成關鍵任務高可用性解決方案)

  • 白皮書:

    用于高可用性和災難恢復的 Microsoft SQL Server AlwaysOn 解決方案指南

    針對 SQL Server 2012 的 Microsoft 白皮書

    SQL Server 客戶咨詢團隊白皮書

另請參閱

可用性模式(AlwaysOn 可用性組)
故障轉移和故障轉移模式(AlwaysOn 可用性組)
AlwaysOn 可用性組的 Transact-SQL 語句概述 (SQL Server)
AlwaysOn 可用性組的 PowerShell Cmdlet 概述 (SQL Server)
對內存中 OLTP 數據庫的高可用性支持
針對 AlwaysOn 可用性組的先決條件、限制和建議 (SQL Server)
創建和配置可用性組 (SQL Server)
活動次要副本:可讀次要副本(Always On 可用性組)
活動次要副本:次要副本備份(AlwaysOn 可用性組)
可用性組偵聽程序、客戶端連接和應用程序故障轉移 (SQL Server)

總結

以上是生活随笔為你收集整理的SQLserver的Always On 可用性组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。