SQL Server 2019高可用性解決方案優劣分析

2021-12-25 15:19:05 字數 2965 閱讀 4923

在sql server 2008資料庫中,本身就帶有不少的高可用性解決方案。如可以採用故障轉移群集、資料庫映象、日誌傳送或者複製等手段來提高資料庫的高可用性。由於解決方案多了,資料庫管理員不得不掌握各個解決方案的優點與缺陷,然後根據企業的實際應用來選擇合適的解決方案。

其實,這不僅僅是在考驗解決方案的優劣性,也是在考驗資料庫管理員的能力。

一、資料庫映象的優劣分析。

資料庫映象是乙個軟體解決方案,可以提供幾乎是瞬時的故障轉移,以提高資料庫的可用性。簡單的說,資料庫映象解決方案就是設定多個資料庫,在多個資料庫之間進行資料多同步。不同在同乙個時間內,只有乙個生產資料庫(或者叫做主體資料庫),而其他資料庫都是備用資料庫(又叫做映象資料庫)。

當主體資料庫出現故障時,系統會自動切換到映象資料庫上。此時這個映象資料庫就變為了主體資料庫。由於主體資料庫與映象資料庫之間資料進行了實時的同步,所以對於使用者訪問來說,基本不受影響。

映象伺服器解決方案最大的優點就是可以提供幾乎是瞬時的故障轉移。不過所採用的資料庫映象的方案不同,對於這個「瞬時」的影響也是不同的。資料庫映象可以具體分為高安全模式與高效能模式。

在高安全模式下,主要體現「安全」兩個字,已提交的事務會交給夥伴雙方提交,此時雖然比較安全,大那時會延長事務滯後的時間。而在高效能模式下,事務部需要等待映象伺服器將日誌寫入到硬碟中便可以提交,為此可以最大程度的提高資料庫資料不同的效能。

不過這個解決方案也有一定的缺陷,最主要是其限制條件比較多。如只能夠使用標準伺服器;只能夠使用資料庫快照對映象伺服器進行有限的報告;只能夠使用資料庫單

一、重複的副本。如果需要其他的副本的話,在可以在使用資料庫映象的同時,採用資料庫的日誌傳送功能。可見幾個不同的解決方案可以一起結合使用,吸長補短,以提高資料庫的效能與高可用性。

二、日誌傳送的優劣分析。

跟資料庫映象一樣,日誌傳送也是資料庫級別的操作。通常情況下,可以使用日誌傳送來維護相應生產資料庫的乙個或者多個備用資料庫。在日誌傳送中,這個生產伺服器叫做主資料庫伺服器,備份伺服器叫做輔助資料庫。

而在資料庫映象解決方案中,這個生產伺服器也叫做主資料庫伺服器,不過這個輔助資料庫則叫做映象資料庫。雖然他們的名字相同,但是實際上代表著同一種含義。日誌傳送配置包括乙個主伺服器(包含主資料庫),乙個或多個輔助伺服器(每個伺服器包含乙個輔助資料庫)和乙個監視伺服器。

每個輔助伺服器從主資料庫的日誌備份按設定的時間間隔更新其輔助資料庫。日誌傳送涉及到主伺服器建立主資料庫日誌備份和輔助伺服器還原日誌備份之間使用者可修改的延遲。發生故障轉移之前,必須通過手動應用全部未還原的日誌備份來完全更新輔助資料庫。

日誌傳送的優勢也很明顯,如最大的優勢可以根據需要來定義資料同步的時間,如可以將延遲的時間定義為從主伺服器備份主資料庫日誌到輔助伺服器必須還原日誌備份之間的時間。在某些特定的應用環境中,這個特性會非常的有用。而且,針對單個主資料庫可以在多個伺服器例項上支援多個輔助資料庫等等。

不過在有些情況下,這個日誌傳送解決方案往往不單獨使用。例如將日誌傳送解決方案與資料庫映象結合使用。如此的話,這兩個解決方案就能夠各自發揮彼此的優勢,以實現互補的目的。

如日誌傳送具有支援多個備用資料庫的靈活性。如果需要多個備用資料庫,可以單獨使用日誌傳送或將其作為資料庫映象的補充。當這些解決方案一起使用時,當前資料庫映象配置的主體資料庫同時也是當前日誌傳送配置的主資料庫。

三、故障轉移群集的優劣分析。

故障轉移群集由具有兩個或多個共享硬碟的乙個或多個節點或伺服器組成。各應用程式將安裝到乙個稱為資源組的群集服務群集組中。在任何時候,每個資源組都僅屬於群集中的乙個節點。

該應用程式服務具有乙個與節點名稱無關的虛擬名稱,稱為故障轉移群集例項名稱。應用程式可以通過引用故障轉移群集例項名稱與故障轉移群集例項連線。應用程式不必知道哪一節點承載該故障轉移群集例項。

跟上面兩個解決方案相比,這個故障轉移群集解決方案可以說是乙個基於硬體的解決方案。

故障轉移群集解決方案也有不少的限制條件。有些限制條件跟資料庫映象的解決方案是相同的。如兩個方案都只能夠利用資料庫的單個副本;需要在伺服器例項範圍內進行方案的實施(在映象解決方案中比較確切的說法是需要在伺服器作用範圍內進行實施)。

另外對於股指群集解決方案中,還有另外的一些限制。如是因為基於硬體的解決方案,為此對於硬體有比較特殊的要求,如要求硬體必須是簽名的硬體等等;另外也不能夠防止磁碟故障等等。其次就是在報告功能上的限制。

由於故障轉移群集不致此後備用部分的報告功能,這或多或少讓一些資料庫管理員感到遺憾。

不過與其他解決方案相比,這個故障轉移群集也有很大的優勢。如具有自動監測和故障轉移的特性。如在當前節點不可用時,這個解決方案可以自動監測到這種故障,並可以自動在節點之間進行故障轉移。

假設在發生作業系統故障、非磁碟硬體故障或者對作業系統或者資料庫系統進行公升級時,可以在故障轉移群集的乙個節點上配置 sql server 例項,使其故障轉移到磁碟組中的任意其他節點。不僅可以自動監測和故障轉移,有時候出於特定的目的,還可以進行手動故障轉移。如對資料庫伺服器進行公升級時,可以手動的啟動另外乙個節點等等。

另外最重要的一點就是可以透明客戶端重定向。

複製解決方案的優劣分析。

在sqlserver資料庫中,複製也是提高可用性的乙個常用的解決方案。複製使用發布-訂閱模式。這樣,主伺服器(稱為發布伺服器)便可向乙個或多個輔助伺服器(即訂閱伺服器)分發資料。

複製可在這些伺服器間提供實時的可用性和可伸縮性。它支援篩選,以便為訂閱伺服器提供資料子集,同時還支援分割槽更新。訂閱伺服器處於聯機狀態,並且可用於報告或其他功能,而無需進行查詢恢復。

sql server 提供三種複製型別:快照複製、事務複製以及合併複製。這裡需要注意一點,在寫專案文件的時候,需要注意不同解決方案中對於主伺服器與備份伺服器的稱呼都是不同的。

如果資料庫管理員在製作文件時發生張冠李戴的情況,雖然他們只是叫法不同,其代表的含義基本上相同。

筆者認為,採用複製這個解決方案,相比其他方案來說,主要的優勢有兩個。乙個是可以實現資料刷選,即可以決定在訂閱伺服器中儲存發布伺服器中的哪些資料。訂閱伺服器可以使發布伺服器的子集,包含其部分資料,而不是全部資料。

資料同步的效率就會比較高,因為可能不需要對全部資料進行同步。另外乙個優勢就是複製這個解決方案,資料滯後的時間最短,即資料同步最及時。

SQL Server 2019備份恢復總結

一 資料庫儲存概述 1 資料檔案型別 primary data files 每個資料庫都有乙個單獨的主要資料檔案,預設以.mdf副檔名。主要資料檔案不僅包含資料資訊,還包含與該資料庫結構相關的資訊。建立資料庫時,資料庫結構相關資訊不僅存在於master資料庫中,同時還包含在primary data ...

SQL Server 2019中的資料型別總結

sql server表中的每乙個欄位都只能包含乙個預先指定的特定資料型別,例如字元或數字。這個宣告叫做資料型別。在這篇文章裡,我們將比較和對照sql server 2008的各種資料型別。此外,我們還將展示各種特定環境下哪種資料型別是最好的解決方法。在sql server 2008中有超過35種的不...

SQL Server 2019連線字串寫法大全

一 net framework data provider for sql server 型別 net framework類庫 使用 system.data.sqlclient.sqlconnection 廠商 microsoft 標準安全連線 data source myserveraddress...