SQL數(shù)據(jù)庫(kù)高可用 - 解決方案

SQL數(shù)據(jù)庫(kù)高可用 - 是什么?

  • 高可用性=可靠性
  • 高可用的本質(zhì)是通過(guò)技術(shù)和工具提高可靠性,盡可能長(zhǎng)時(shí)間保持?jǐn)?shù)據(jù)可用和系統(tǒng)運(yùn)行(正常運(yùn)行時(shí)間)。

實(shí)現(xiàn)高可用性的原則

  • 消除單點(diǎn)故障
  • 通過(guò)冗余機(jī)制實(shí)現(xiàn)快速恢復(fù)
  • 實(shí)現(xiàn)容錯(cuò)

高可用性要求的實(shí)際上是對(duì)可靠性的要求,從本質(zhì)上來(lái)說(shuō),是通過(guò)技術(shù)和工具來(lái)提高可靠性,盡可能長(zhǎng)時(shí)間保持?jǐn)?shù)據(jù)的可用和系統(tǒng)的正常運(yùn)行時(shí)間。實(shí)現(xiàn)高可用性的原則為排除單點(diǎn)故障、通過(guò)冗余實(shí)現(xiàn)快速恢復(fù),并且具有容錯(cuò)機(jī)制。

關(guān)于可靠性的關(guān)鍵詞

恢復(fù)

  • 實(shí)現(xiàn)可靠性的最簡(jiǎn)單的方法,從錯(cuò)誤中恢復(fù)。

邏輯備份

  • 逐行復(fù)制數(shù)據(jù),通常將數(shù)據(jù)從二進(jìn)制形式轉(zhuǎn)換為sQL語(yǔ)句來(lái)復(fù)制。

物理備份

  • 從磁盤存儲(chǔ)層復(fù)制數(shù)據(jù)的二進(jìn)制副本。

冗余

  • 具有兩個(gè)或多個(gè)在系統(tǒng)中扮演相同角色的組件。

可擴(kuò)展性

  • 縮短存儲(chǔ)和檢索數(shù)據(jù)的時(shí)間。

容錯(cuò)

  • 發(fā)現(xiàn)錯(cuò)誤,從事件中恢復(fù)。

SQL數(shù)據(jù)庫(kù)高可用

 

MYSQL/SQL數(shù)據(jù)庫(kù)高可用解決方案

數(shù)據(jù)庫(kù)高可用性解決方案目前大致分為5種,按照高可用的級(jí)別(99.9999%為最高級(jí))排序依次為,主從復(fù)制、具有自動(dòng)故障轉(zhuǎn)移功能的主從復(fù)制、利用共享存儲(chǔ)、OS 或虛擬化軟件實(shí)現(xiàn)主備架構(gòu)、MySQL Group Replication 群組復(fù)制,以及 MySQL NDB Cluster。

 

  • MySQL Replication:允許數(shù)據(jù)從一臺(tái)實(shí)例上復(fù)制到一臺(tái)或多臺(tái)其它的實(shí)例上。
  • MySQL Group Replication:群組復(fù)制提供更好的冗余性、自動(dòng)恢復(fù)以及寫入擴(kuò)展。
  • MySQL InnoDB Cluster:基于群組復(fù)制,提供了易于管理的 API、應(yīng)用故障轉(zhuǎn)移和路由、易于配置,提供比群組復(fù)制更高級(jí)別的可用性。
  • MySQL NDB Cluster:容易與 MySQL InnoDB Cluster 混淆,是另外一款產(chǎn)品,提供更高級(jí)別的可用性和冗余性。適用于分布式計(jì)算環(huán)境,使用內(nèi)存型的 NDB 存儲(chǔ)引擎。關(guān)于這款產(chǎn)品的詳細(xì)內(nèi)容將不會(huì)在這里介紹。

SQL數(shù)據(jù)庫(kù)高可用 - 基本原理

  • 經(jīng)典的主從復(fù)制是 MySQL 原生的復(fù)制功能,采用異步方式,如圖片最上面顯示的原理,主服務(wù)器執(zhí)行更改數(shù)據(jù)的事務(wù)后,會(huì)產(chǎn)生 binlog,之后 binlog 會(huì)被發(fā)送到從服務(wù)器變成 relay log,與此同時(shí),主服務(wù)器會(huì)對(duì)應(yīng)用提交返回。從服務(wù)器接收到 relay log 后,會(huì)通過(guò)一個(gè) applier 的線程對(duì)日志里面的內(nèi)容進(jìn)行施放,使產(chǎn)生的數(shù)據(jù)更改寫入從服務(wù)器,之后產(chǎn)生自己的 binlog,進(jìn)行提交。
  • 采用異步的方式,在發(fā)生網(wǎng)絡(luò)問(wèn)題和服務(wù)器損壞的情況下(從服務(wù)器未接收到日志,主服務(wù)器已經(jīng)提交,并且提交后主服務(wù)器徹底損壞)會(huì)丟失數(shù)據(jù),為了防止數(shù)據(jù)丟失,半同步復(fù)制在異步的基礎(chǔ)上增加了一個(gè)日志確認(rèn)的環(huán)節(jié),在從服務(wù)器接收到日志后,返回給主服務(wù)器一個(gè)應(yīng)答,之后主服務(wù)器才能對(duì)應(yīng)用提交返回。
  • 作為 MySQL 目前最新的復(fù)制方式,群組復(fù)制 MGR 可以通過(guò)群組內(nèi)任意服務(wù)器對(duì)數(shù)據(jù)進(jìn)行更新,而不是像前面兩種有主從之分。為此群組復(fù)制增加了一個(gè)驗(yàn)證步驟,通過(guò)驗(yàn)證的事務(wù)才能進(jìn)行提交,提交后群組內(nèi)其它成員同樣對(duì)日志進(jìn)行釋放,提交。

 

依靠什么來(lái)決定使用哪一種高可用性技術(shù)?

很多企業(yè)都需要他們的全部或部分?jǐn)?shù)據(jù)高可用,比如說(shuō)在線購(gòu)物網(wǎng)站,在線商品數(shù)據(jù)庫(kù)必7*24小時(shí)在線,否則在競(jìng)爭(zhēng)激烈的市場(chǎng)環(huán)境下,宕機(jī)時(shí)間就意味著流失客戶和收入當(dāng)然,在一個(gè)理想的世界中,所有的關(guān)鍵數(shù)據(jù)都會(huì)時(shí)刻在線,但在現(xiàn)實(shí)世界中,會(huì)存在各種各樣的原因?qū)е聰?shù)據(jù)庫(kù)不可用,由于無(wú)法預(yù)估災(zāi)難出現(xiàn)的時(shí)間和形式,需要提前采取措施來(lái)預(yù)防各種突發(fā)情況,因此SQL Server提供了多種高可用性技術(shù),這些技術(shù)主要包括:集群、復(fù)制、鏡像、日志傳送、AlwaysOn可用性組以及其它諸如文件組備份還原、在線重建索引等單實(shí)例的高可用性技術(shù)。使用何種高可用性技術(shù)并不是隨意挑一個(gè)熟悉技術(shù)直接使用,而是要基于業(yè)務(wù)和技術(shù)綜合考慮。因?yàn)闆](méi)有一項(xiàng)單獨(dú)的技術(shù)可以實(shí)現(xiàn)所有的功能。如何根據(jù)具體的業(yè)務(wù)和預(yù)算采用這些技術(shù),就是所謂的高可用性策略。

SQL數(shù)據(jù)庫(kù)高可用

在設(shè)計(jì)高可用性策略時(shí)應(yīng)該首先考慮下述因素:

  • RTO(Recovery Time Objective)也就是恢復(fù)時(shí)間目標(biāo),意味著允許多少宕機(jī)時(shí)間,通常用幾個(gè)9表示,比如說(shuō)99.999%的可用性意味著每年的宕機(jī)時(shí)間不超過(guò)5分鐘、99.99%的可用性意味著每年的宕機(jī)時(shí)間不超過(guò)52.5分鐘、99.9%的可用性意味著每年的宕機(jī)時(shí)間不超過(guò)8.75小時(shí)。值得注意的是,RTO的計(jì)算方法要考慮系統(tǒng)是24*365,還是僅僅是上午6點(diǎn)到下午9點(diǎn)等。您還需要注意是否維護(hù)窗口的時(shí)間在算在宕機(jī)時(shí)間之內(nèi),如果允許在維護(hù)窗口時(shí)間進(jìn)行數(shù)據(jù)庫(kù)維護(hù)和打補(bǔ)丁,則更容易實(shí)現(xiàn)更高的可用性。
  • RPO(Recovery Point Objective)-也就是恢復(fù)點(diǎn)目標(biāo),意味著允許多少數(shù)據(jù)損失。通常只要做好備份,可以比較容易的實(shí)現(xiàn)零數(shù)據(jù)損失。但當(dāng)災(zāi)難發(fā)生時(shí),取決于數(shù)據(jù)庫(kù)損壞的程度,從備份恢復(fù)數(shù)據(jù)所需要的時(shí)間會(huì)導(dǎo)致數(shù)據(jù)庫(kù)不可用,這會(huì)影響RTO的實(shí)現(xiàn)。一個(gè)早期比較著名的例子是某歐美的銀行系統(tǒng),只考慮的RPO,系統(tǒng)里只存在了完整備份和日志備份,每3個(gè)月一次完整備份,每15分鐘一次日志備份,當(dāng)災(zāi)難發(fā)生時(shí),只能夠通過(guò)完整備份和日志備份來(lái)恢復(fù)數(shù)據(jù),因此雖然沒(méi)有數(shù)據(jù)丟失,但由于恢復(fù)數(shù)據(jù)花了整整兩天時(shí)間,造成銀行系統(tǒng)2天時(shí)間不可用,因此流失了大量客戶。另外一個(gè)相反的例子是國(guó)內(nèi)某在線視頻網(wǎng)站,使用SQL Server作為后端關(guān)系數(shù)據(jù)庫(kù),前端使用了No-SQL,定期將No-SQL的數(shù)據(jù)導(dǎo)入關(guān)系數(shù)據(jù)庫(kù)作為備份,當(dāng)災(zāi)難發(fā)生時(shí)最多允許丟失一天的數(shù)據(jù),但是要保證高可用性。
  • 預(yù)算 –RTO和RPO統(tǒng)稱為SLA(服務(wù)水平協(xié)議),設(shè)計(jì)高可用性策略時(shí),要根據(jù)業(yè)務(wù)來(lái)衡量滿足何種程度的SLA,這要取決于預(yù)算以及衡量不同SLA在故障時(shí)所造成的損失。SLA并不是越高越好,而是要基于業(yè)務(wù)需求,通常來(lái)說(shuō),在有限的預(yù)算之下很難實(shí)現(xiàn)很高的SLA,并且即使通過(guò)復(fù)雜的架構(gòu)實(shí)現(xiàn)較高的SLA,復(fù)雜的架構(gòu)也意味著高運(yùn)維成本,因此需要在預(yù)算范圍之內(nèi)選擇合適的技術(shù)來(lái)滿足SLA。

SQL Server中所支持的高可用特性

SQL Server中所支持的高可用性功能與版本息息相關(guān),企業(yè)版支持所有的高可用性功能,這些功能包括:

  • 故障轉(zhuǎn)移集群
  • 數(shù)據(jù)庫(kù)鏡像
  • 事務(wù)日志傳送
  • 數(shù)據(jù)庫(kù)快照
  • AlwaysOn可用性組
  • 熱加載內(nèi)存
  • 在線索引操作
  • 數(shù)據(jù)庫(kù)部分在線(只還原了主文件組或主文件組和額外的NDF文件)

事務(wù)日志傳送

  • 事務(wù)日志傳送提供了數(shù)據(jù)庫(kù)級(jí)別的高可用性保護(hù)。日志傳送可用來(lái)維護(hù)相應(yīng)生產(chǎn)數(shù)據(jù)庫(kù)(稱為“主數(shù)據(jù)庫(kù)”)的一個(gè)或多個(gè)備用數(shù)據(jù)庫(kù)(稱為“輔助數(shù)據(jù)庫(kù)”)。發(fā)生故障轉(zhuǎn)移之前,必須通過(guò)手動(dòng)應(yīng)用全部未還原的日志備份來(lái)完全更新輔助數(shù)據(jù)庫(kù)。日志傳送具有支持多個(gè)備用數(shù)據(jù)庫(kù)的靈活性。如果需要多個(gè)備用數(shù)據(jù)庫(kù),可以單獨(dú)使用日志傳送或?qū)⑵渥鳛閿?shù)據(jù)庫(kù)鏡像的補(bǔ)充。當(dāng)這些解決方案一起使用時(shí),當(dāng)前數(shù)據(jù)庫(kù)鏡像配置的主體數(shù)據(jù)庫(kù)同時(shí)也是當(dāng)前日志傳送配置的主數(shù)據(jù)庫(kù)。
  • 事務(wù)日志傳送可用于做冷備份和暖備份的方式。

常見(jiàn)備份方式
根據(jù)主機(jī)和備機(jī)之間同步數(shù)據(jù)的程度,備份可以分為三種情況,分別為冷備份、暖備份和熱備份。

冷備份

  • 冷備份也就是所謂的備份,備用服務(wù)器被配置用于接受主服務(wù)器的數(shù)據(jù),當(dāng)出故障時(shí),手動(dòng)將數(shù)據(jù)還原到主數(shù)據(jù)庫(kù),或是重新配置程序的連接字符串或權(quán)限來(lái)使得備份數(shù)據(jù)庫(kù)上線。

暖備份

  • 暖備份也就是主服務(wù)器數(shù)據(jù)會(huì)不停的將日志傳送到備用服務(wù)器(間隔不定,可以是15分鐘,30分鐘,1分鐘等等),在這方式下,主服務(wù)器到備份服務(wù)器通常是異步更新,所以不能保證主服務(wù)器和備份服務(wù)器數(shù)據(jù)一致。此外,該方案通常不會(huì)實(shí)現(xiàn)自動(dòng)故障監(jiān)測(cè)和故障轉(zhuǎn)移。

熱備份

  • 熱備份也就是主服務(wù)器的數(shù)據(jù)自動(dòng)在備份服務(wù)器上進(jìn)行同步,大多數(shù)情況下都會(huì)包含自動(dòng)的故障監(jiān)測(cè)和故障轉(zhuǎn)移,并且能夠保證主服務(wù)器和備份服務(wù)器的數(shù)據(jù)一致性。提示:隨著冷備份到暖備份到熱備份,成本會(huì)直線上升。

 

SQL數(shù)據(jù)庫(kù)高可用 - 鏡像概述

數(shù)據(jù)庫(kù)鏡像維護(hù)一個(gè)數(shù)據(jù)庫(kù)的兩個(gè)副本,這兩個(gè)副本必須駐留在不同的 SQL Server 數(shù)據(jù)庫(kù)引擎服務(wù)器實(shí)例上。 通常,這些服務(wù)器實(shí)例駐留在不同位置的計(jì)算機(jī)上。 啟動(dòng)數(shù)據(jù)庫(kù)上的數(shù)據(jù)庫(kù)鏡像操作時(shí),在這些服務(wù)器實(shí)例之間形成一種關(guān)系,稱為“數(shù)據(jù)庫(kù)鏡像會(huì)話”。
其中一個(gè)服務(wù)器實(shí)例使數(shù)據(jù)庫(kù)服務(wù)于客戶端(“主體服務(wù)器”), 另一個(gè)服務(wù)器實(shí)例則根據(jù)鏡像會(huì)話的配置和狀態(tài),充當(dāng)熱備用或溫備用服務(wù)器(“鏡像服務(wù)器”)。 同步數(shù)據(jù)庫(kù)鏡像會(huì)話時(shí),數(shù)據(jù)庫(kù)鏡像提供熱備用服務(wù)器,可支持在已提交事務(wù)不丟失數(shù)據(jù)的情況下進(jìn)行快速故障轉(zhuǎn)移。 未同步會(huì)話時(shí),鏡像服務(wù)器通常用作熱備用服務(wù)器(可能造成數(shù)據(jù)丟失)。
在“數(shù)據(jù)庫(kù)鏡像會(huì)話”中,主體服務(wù)器和鏡像服務(wù)器作為“伙伴”進(jìn)行通信和協(xié)作。 兩個(gè)伙伴在會(huì)話中扮演互補(bǔ)的角色:“主體角色”和“鏡像角色”。 在任何給定的時(shí)間,都是一個(gè)伙伴扮演主體角色,另一個(gè)伙伴扮演鏡像角色。 每個(gè)伙伴擁有其當(dāng)前角色。 擁有主體角色的伙伴稱為“主體服務(wù)器”,其數(shù)據(jù)庫(kù)副本為當(dāng)前的主體數(shù)據(jù)庫(kù)。 擁有鏡像角色的伙伴稱為“鏡像服務(wù)器”,其數(shù)據(jù)庫(kù)副本為當(dāng)前的鏡像數(shù)據(jù)庫(kù)。 如果數(shù)據(jù)庫(kù)鏡像部署在生產(chǎn)環(huán)境中,則主體數(shù)據(jù)庫(kù)即為“生產(chǎn)數(shù)據(jù)庫(kù)”。
數(shù)據(jù)庫(kù)鏡像涉及盡快將對(duì)主體數(shù)據(jù)庫(kù)執(zhí)行的每項(xiàng)插入、更新和刪除操作“重做”到鏡像數(shù)據(jù)庫(kù)中。 重做通過(guò)將活動(dòng)事務(wù)日志記錄的流發(fā)送到鏡像服務(wù)器來(lái)完成,這會(huì)盡快將日志記錄按順序應(yīng)用到鏡像數(shù)據(jù)庫(kù)中。 與邏輯級(jí)別執(zhí)行的復(fù)制不同,數(shù)據(jù)庫(kù)鏡像在物理日志記錄級(jí)別執(zhí)行。 從 SQL Server 2008 開(kāi)始,在事務(wù)日志記錄的流發(fā)送到鏡像服務(wù)器之前,主體服務(wù)器會(huì)先將其壓縮。 在所有鏡像會(huì)話中都會(huì)進(jìn)行這種日志壓縮。

?數(shù)據(jù)庫(kù)鏡像的優(yōu)點(diǎn)

數(shù)據(jù)庫(kù)鏡像是一種簡(jiǎn)單的策略,具有下列優(yōu)點(diǎn):

  • 提高數(shù)據(jù)庫(kù)的可用性

發(fā)生災(zāi)難時(shí),在具有自動(dòng)故障轉(zhuǎn)移功能的高安全性模式下,自動(dòng)故障轉(zhuǎn)移可快速使數(shù)據(jù)庫(kù)的備用副本聯(lián)機(jī)(而不會(huì)丟失數(shù)據(jù))。 在其他運(yùn)行模式下,數(shù)據(jù)庫(kù)管理員可以選擇強(qiáng)制服務(wù)(可能丟失數(shù)據(jù)),以替代數(shù)據(jù)庫(kù)的備用副本。 有關(guān)詳細(xì)信息,請(qǐng)參閱本主題后面的角色切換。

  • 增強(qiáng)數(shù)據(jù)保護(hù)功能

在 SQL Server 2008 Enterprise 或更高版本上運(yùn)行的數(shù)據(jù)庫(kù)鏡像伙伴會(huì)自動(dòng)嘗試解決某些阻止讀取數(shù)據(jù)頁(yè)的錯(cuò)誤。 無(wú)法讀取頁(yè)的伙伴會(huì)向其他伙伴請(qǐng)求新副本。 如果此請(qǐng)求成功,則將以新副本替換不可讀的頁(yè),這通常會(huì)解決該錯(cuò)誤。

  • 提高生產(chǎn)數(shù)據(jù)庫(kù)在升級(jí)期間的可用性

 

為了盡量減少鏡像服務(wù)器的停機(jī)時(shí)間,您可以按順序升級(jí)承載故障轉(zhuǎn)移伙伴的 SQL Server 實(shí)例。 這樣只會(huì)導(dǎo)致一個(gè)故障轉(zhuǎn)移的停機(jī)時(shí)間。 這種形式的升級(jí)稱為“滾動(dòng)升級(jí)”。數(shù)據(jù)庫(kù)鏡像實(shí)際上是個(gè)軟件解決方案,同樣提供了數(shù)據(jù)庫(kù)級(jí)別的保護(hù),可提供幾乎是瞬時(shí)的故障轉(zhuǎn)移,以提高數(shù)據(jù)庫(kù)的可用性。數(shù)據(jù)庫(kù)鏡像可以用來(lái)維護(hù)相應(yīng)生產(chǎn)數(shù)據(jù)庫(kù)(稱為“主體數(shù)據(jù)庫(kù)”)的單個(gè)備用數(shù)據(jù)庫(kù)(或“鏡像數(shù)據(jù)庫(kù)”)。因?yàn)殓R像數(shù)據(jù)庫(kù)一直處于還原狀態(tài),但并不會(huì)恢復(fù)數(shù)據(jù)庫(kù),因此無(wú)法直接訪問(wèn)鏡像數(shù)據(jù)庫(kù)。但是,為了用于報(bào)表等只讀的負(fù)載,可創(chuàng)建鏡像數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)快照來(lái)間接地使用鏡像數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)快照為客戶端提供了快照創(chuàng)建時(shí)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的只讀訪問(wèn)。每個(gè)數(shù)據(jù)庫(kù)鏡像配置都涉及包含主體數(shù)據(jù)庫(kù)的“主體服務(wù)器”,并且還涉及包含鏡像數(shù)據(jù)庫(kù)的鏡像服務(wù)器。鏡像服務(wù)器不斷地使鏡像數(shù)據(jù)庫(kù)隨主體數(shù)據(jù)庫(kù)一起更新。數(shù)據(jù)庫(kù)鏡像在高安全性模式下以同步操作運(yùn)行,或在高性能模式下以異步操作運(yùn)行。在高性能模式下,事務(wù)不需要等待鏡像服務(wù)器將日志寫入磁盤便可提交,這樣可較大程度地提高性能。在高安全性模式下,已提交的事務(wù)將由伙伴雙方提交,但會(huì)延長(zhǎng)事務(wù)滯后時(shí)間。數(shù)據(jù)庫(kù)鏡像的最簡(jiǎn)單配置僅涉及主體服務(wù)器和鏡像服務(wù)器。在該配置中,如果主體服務(wù)器丟失,則該鏡像服務(wù)器可以用作備用服務(wù)器,但可能會(huì)造成數(shù)據(jù)丟失。高安全性模式支持具有自動(dòng)故障轉(zhuǎn)移功能的備用配置高安全性模式。這種配置涉及到稱為“見(jiàn)證服務(wù)器”的第三方服務(wù)器實(shí)例,它能夠使鏡像服務(wù)器用作熱備份服務(wù)器。從主體數(shù)據(jù)庫(kù)至鏡像數(shù)據(jù)庫(kù)的故障轉(zhuǎn)移通常要用幾秒鐘的時(shí)間。數(shù)據(jù)庫(kù)鏡像可用于做暖備份和熱備份。

SQL數(shù)據(jù)庫(kù)高可用

?數(shù)據(jù)庫(kù)鏡像術(shù)語(yǔ)和定義

  • 自動(dòng)故障轉(zhuǎn)移 (automatic failover)? ?一種過(guò)程,當(dāng)主體服務(wù)器不可用時(shí),該過(guò)程將導(dǎo)致鏡像服務(wù)器接管主體服務(wù)器的角色,并使其數(shù)據(jù)庫(kù)的副本聯(lián)機(jī)以作為主體數(shù)據(jù)庫(kù)。
  • 故障轉(zhuǎn)移伙伴 (failover partners)? ? ?充當(dāng)鏡像數(shù)據(jù)庫(kù)的角色切換伙伴的兩個(gè)服務(wù)器實(shí)例(主體服務(wù)器或鏡像服務(wù)器)。是指在負(fù)責(zé)將服務(wù)傳輸?shù)界R像數(shù)據(jù)庫(kù)(但它處于未知狀態(tài))的主體服務(wù)器出現(xiàn)故障時(shí)數(shù)據(jù)庫(kù)所有者啟動(dòng)的故障轉(zhuǎn)移。
  • 高性能模式 (High-performance mode)? 數(shù)據(jù)庫(kù)鏡像會(huì)話異步運(yùn)行并僅使用主體服務(wù)器和鏡像服務(wù)器。 唯一的角色切換形式是強(qiáng)制服務(wù)(可能造成數(shù)據(jù)丟失)。

SQL數(shù)據(jù)庫(kù)高可用 – 解決方案插圖(3)

  • 高安全性模式 (High-safety mode)

數(shù)據(jù)庫(kù)鏡像會(huì)話同步運(yùn)行并可以選擇使用見(jiàn)證服務(wù)器、主體服務(wù)器和鏡像服務(wù)器。

SQL數(shù)據(jù)庫(kù)高可用 – 解決方案插圖(4)

  • 手動(dòng)故障轉(zhuǎn)移 (manual failover)

是指在負(fù)責(zé)將服務(wù)從主體數(shù)據(jù)庫(kù)傳輸?shù)界R像數(shù)據(jù)庫(kù)(處于同步狀態(tài))的主體服務(wù)器仍在運(yùn)行時(shí)數(shù)據(jù)庫(kù)所有者啟動(dòng)的故障轉(zhuǎn)移。

  • 鏡像數(shù)據(jù)庫(kù) (mirror database)

通常與主體數(shù)據(jù)庫(kù)完全同步的數(shù)據(jù)庫(kù)副本。

  • 鏡像服務(wù)器 (mirror server)

在數(shù)據(jù)庫(kù)鏡像配置中,鏡像數(shù)據(jù)庫(kù)所在的服務(wù)器實(shí)例。

  • 鏡像服務(wù)器 (mirror server)

在數(shù)據(jù)庫(kù)鏡像配置中,鏡像數(shù)據(jù)庫(kù)所在的服務(wù)器實(shí)例。

  • 主體數(shù)據(jù)庫(kù) (principal database)

數(shù)據(jù)庫(kù)鏡像中的一種讀寫數(shù)據(jù)庫(kù),其事務(wù)日志記錄將應(yīng)用到數(shù)據(jù)庫(kù)的只讀副本(鏡像數(shù)據(jù)庫(kù))。

  • 主體服務(wù)器 (principal server)

在數(shù)據(jù)庫(kù)鏡像中,是指當(dāng)前作為主體數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)所屬于的伙伴。

  • 重做隊(duì)列 (redo queue)

收到的等待鏡像服務(wù)器磁盤的事務(wù)日志記錄。

  • 角色 (role)

主體服務(wù)器和鏡像服務(wù)器擔(dān)任互補(bǔ)的主體角色和鏡像角色。 也可以由第三個(gè)服務(wù)器實(shí)例來(lái)?yè)?dān)任見(jiàn)證服務(wù)器角色。

  • 角色切換 (role switching)

鏡像接管主體角色。

  • 發(fā)送隊(duì)列 (send queue)

在主體服務(wù)器的日志磁盤累積的未發(fā)送的事務(wù)日志記錄。

  • 會(huì)話 (session)

是指主體服務(wù)器、鏡像服務(wù)器和見(jiàn)證服務(wù)器(如果存在)之間進(jìn)行數(shù)據(jù)庫(kù)鏡像期間形成的關(guān)系。

鏡像會(huì)話啟動(dòng)或繼續(xù)后,將累積在主體服務(wù)器上的主體數(shù)據(jù)庫(kù)日志記錄發(fā)送給鏡像服務(wù)器的過(guò)程,此過(guò)程將這些日志記錄盡快寫入磁盤,以便與主體服務(wù)器保持同步。

  • 事務(wù)安全 (Transaction safety)

一種鏡像特定的數(shù)據(jù)庫(kù)屬性,用于確定數(shù)據(jù)庫(kù)鏡像會(huì)話是同步運(yùn)行還是異步運(yùn)行。 有兩種安全級(jí)別:FULL 和 OFF。

  • 見(jiàn)證服務(wù)器 (Witness)

僅用于高安全性模式,SQL Server 的一個(gè)可選實(shí)例,它能使鏡像服務(wù)器識(shí)別何時(shí)要啟動(dòng)自動(dòng)故障轉(zhuǎn)移。 與這兩個(gè)故障轉(zhuǎn)移伙伴不同的是,見(jiàn)證服務(wù)器并不能用于數(shù)據(jù)庫(kù)。 見(jiàn)證服務(wù)器的唯一角色是支持自動(dòng)故障轉(zhuǎn)移。

 

復(fù)制嚴(yán)格來(lái)說(shuō)并不算是一個(gè)為高可用性設(shè)計(jì)的功能,但的確可以被應(yīng)用于高可用性。復(fù)制提供了數(shù)據(jù)庫(kù)對(duì)象級(jí)別的保護(hù)。復(fù)制使用的是發(fā)布-訂閱模式,即由主服務(wù)器(稱為發(fā)布服務(wù)器)向一個(gè)或多個(gè)輔助服務(wù)器或訂閱服務(wù)器發(fā)布數(shù)據(jù)。復(fù)制可在這些服務(wù)器間提供實(shí)時(shí)的可用性和可伸縮性。它支持篩選,以便為訂閱服務(wù)器提供數(shù)據(jù)子集,同時(shí)還支持分區(qū)更新。訂閱服務(wù)器處于聯(lián)機(jī)狀態(tài),并且可用于報(bào)表或其他功能,而無(wú)需進(jìn)行查詢恢復(fù)。SQL Server 提供四種復(fù)制類型:快照復(fù)制、事務(wù)復(fù)制、對(duì)等復(fù)制以及合并復(fù)制。

AlwaysOn可用性組

AlwaysOn可用性組是SQL Server 2012推出的新功能。同樣提供了數(shù)據(jù)庫(kù)級(jí)別的保護(hù)。它取數(shù)據(jù)庫(kù)鏡像和故障轉(zhuǎn)移集群之長(zhǎng),使得業(yè)務(wù)上有關(guān)聯(lián)的數(shù)據(jù)庫(kù)作為一個(gè)可用性組共同故障轉(zhuǎn)移,該功能還拓展了數(shù)據(jù)庫(kù)鏡像只能1對(duì)1的限制,使得1個(gè)主副本可以對(duì)應(yīng)最多4個(gè)輔助副本(在SQL Server 2014中,該限制被拓展到8個(gè)),其中2個(gè)輔助副本可以被作為熱備份和主副本實(shí)時(shí)同步,而另外兩個(gè)異步輔助副本可以作為暖備份。此外,輔助副本還可以被配置為只讀,并可用于承擔(dān)備份的負(fù)載。

SQL數(shù)據(jù)庫(kù)高可用 – 解決方案插圖(5)

相關(guān)案例:

VMware vSAN 存儲(chǔ)虛擬化

IT系統(tǒng)集成 & 弱電系統(tǒng)

容災(zāi)備份解決方案

企業(yè)服務(wù)

VMware服務(wù)器虛擬化 & 解決方案

 

煜企智能在網(wǎng)絡(luò)安全和虛擬化、系統(tǒng)集成、弱電系統(tǒng)、系統(tǒng)集成、機(jī)房建設(shè)中擁有豐富的案例,您有任何想法和需求,隨時(shí)致電煜企智能獲得咨詢和支持。

微信掃碼 | 加入我們

上網(wǎng)行為管理 系統(tǒng)集成插圖(6)