服務(wù)無限,企業(yè)樂無優(yōu)

資深工程師咨詢熱線

400-8871-651
IT外包圖片
智能化建設(shè)
SQL高可用
當(dāng)前位置:首頁 >> 智能化建設(shè) >> SQL高可用
MICROSOFT SQL 數(shù)據(jù)庫高可用
自從SQL Server 2000以來,微軟已經(jīng)陸續(xù)提供了多種高可用性技術(shù)來減少宕機(jī)時(shí)間和增加對(duì)業(yè)務(wù)數(shù)據(jù)的保護(hù),而隨著SQL Server 200、,SQL Server 2008 R2、SQL Server 2012、SQL 2014、SQL 2016的不斷發(fā)布,SQL Server中已經(jīng)存在了滿足不同場(chǎng)景的多種高可用性技術(shù)。
依靠什么來決定使用哪一種高可用性技術(shù)?

很多企業(yè)都需要他們的全部或部分?jǐn)?shù)據(jù)高可用,比如說在線購物網(wǎng)站,在線商品數(shù)據(jù)庫必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ù)庫不可用,由于無法預(yù)估災(zāi)難出現(xiàn)的時(shí)間和形式,需要提前采取措施來預(yù)防各種突發(fā)情況,因此SQL Server提供了多種高可用性技術(shù),這些技術(shù)主要包括:集群、復(fù)制、鏡像、日志傳送、AlwaysOn可用性組以及其它諸如文件組備份還原、在線重建索引等單實(shí)例的高可用性技術(shù)。使用何種高可用性技術(shù)并不是隨意挑一個(gè)熟悉技術(shù)直接使用,而是要基于業(yè)務(wù)和技術(shù)綜合考慮。因?yàn)闆]有一項(xiàng)單獨(dú)的技術(shù)可以實(shí)現(xiàn)所有的功能。如何根據(jù)具體的業(yè)務(wù)和預(yù)算采用這些技術(shù),就是所謂的高可用性策略。

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

? RTO(Recovery Time Objective)-也就是恢復(fù)時(shí)間目標(biāo),意味著允許多少宕機(jī)時(shí)間,通常用幾個(gè)9表示,比如說99.999%的可用性意味著每年的宕機(jī)時(shí)間不超過5分鐘、99.99%的可用性意味著每年的宕機(jī)時(shí)間不超過52.5分鐘、99.9%的可用性意味著每年的宕機(jī)時(shí)間不超過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ù)庫維護(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ù)庫損壞的程度,從備份恢復(fù)數(shù)據(jù)所需要的時(shí)間會(huì)導(dǎo)致數(shù)據(jù)庫不可用,這會(huì)影響RTO的實(shí)現(xiàn)。一個(gè)早期比較著名的例子是某歐美的銀行系統(tǒng),只考慮的RPO,系統(tǒng)里只存在了完整備份和日志備份,每3個(gè)月一次完整備份,每15分鐘一次日志備份,當(dāng)災(zāi)難發(fā)生時(shí),只能夠通過完整備份和日志備份來恢復(fù)數(shù)據(jù),因此雖然沒有數(shù)據(jù)丟失,但由于恢復(fù)數(shù)據(jù)花了整整兩天時(shí)間,造成銀行系統(tǒng)2天時(shí)間不可用,因此流失了大量客戶。另外一個(gè)相反的例子是國內(nèi)某在線視頻網(wǎng)站,使用SQL Server作為后端關(guān)系數(shù)據(jù)庫,前端使用了No-SQL,定期將No-SQL的數(shù)據(jù)導(dǎo)入關(guān)系數(shù)據(jù)庫作為備份,當(dāng)災(zāi)難發(fā)生時(shí)最多允許丟失一天的數(shù)據(jù),但是要保證高可用性。

預(yù)算 –RTO和RPO統(tǒng)稱為SLA(服務(wù)水平協(xié)議),設(shè)計(jì)高可用性策略時(shí),要根據(jù)業(yè)務(wù)來衡量滿足何種程度的SLA,這要取決于預(yù)算以及衡量不同SLA在故障時(shí)所造成的損失。SLA并不是越高越好,而是要基于業(yè)務(wù)需求,通常來說,在有限的預(yù)算之下很難實(shí)現(xiàn)很高的SLA,并且即使通過復(fù)雜的架構(gòu)實(shí)現(xiàn)較高的SLA,復(fù)雜的架構(gòu)也意味著高運(yùn)維成本,因此需要在預(yù)算范圍之內(nèi)選擇合適的技術(shù)來滿足SLA。

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

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

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


故障轉(zhuǎn)移集群

故障轉(zhuǎn)移集群為整個(gè)SQL Server實(shí)例提供高可用性支持,這意味著在集群上某個(gè)節(jié)點(diǎn)的SQL Server實(shí)例發(fā)生了硬件錯(cuò)誤、操作系統(tǒng)錯(cuò)誤等會(huì)故障轉(zhuǎn)移到該集群上的其它節(jié)點(diǎn)。通過多個(gè)服務(wù)器(節(jié)點(diǎn))共享一個(gè)或多個(gè)磁盤來實(shí)現(xiàn)高可用性,故障轉(zhuǎn)移集群在網(wǎng)絡(luò)中出現(xiàn)的方式就像單臺(tái)計(jì)算機(jī)一樣,但是具有高可用特性。值得注意的是,由于故障轉(zhuǎn)移集群是基于共享磁盤,因此會(huì)存在磁盤單點(diǎn)故障,因此需要在磁盤層面部署SAN復(fù)制等額外的保護(hù)措施。最常見的故障轉(zhuǎn)移集群是雙節(jié)點(diǎn)的故障轉(zhuǎn)移集群,包括主主節(jié)點(diǎn)和主從節(jié)點(diǎn)。

事務(wù)日志傳送

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

數(shù)據(jù)庫鏡像

數(shù)據(jù)庫鏡像實(shí)際上是個(gè)軟件解決方案,同樣提供了數(shù)據(jù)庫級(jí)別的保護(hù),可提供幾乎是瞬時(shí)的故障轉(zhuǎn)移,以提高數(shù)據(jù)庫的可用性。數(shù)據(jù)庫鏡像可以用來維護(hù)相應(yīng)生產(chǎn)數(shù)據(jù)庫(稱為“主體數(shù)據(jù)庫”)的單個(gè)備用數(shù)據(jù)庫(或“鏡像數(shù)據(jù)庫”)。

因?yàn)?a href='http://www.sekulawhitetailranch.com/DetailInfo.aspx?nid=1923' target='_blank'>鏡像數(shù)據(jù)庫一直處于還原狀態(tài),但并不會(huì)恢復(fù)數(shù)據(jù)庫,因此無法直接訪問鏡像數(shù)據(jù)庫。但是,為了用于報(bào)表等只讀的負(fù)載,可創(chuàng)建鏡像數(shù)據(jù)庫的數(shù)據(jù)庫快照來間接地使用鏡像數(shù)據(jù)庫。數(shù)據(jù)庫快照為客戶端提供了快照創(chuàng)建時(shí)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的只讀訪問。每個(gè)數(shù)據(jù)庫鏡像配置都涉及包含主體數(shù)據(jù)庫的“主體服務(wù)器”,并且還涉及包含鏡像數(shù)據(jù)庫的鏡像服務(wù)器。鏡像服務(wù)器不斷地使鏡像數(shù)據(jù)庫隨主體數(shù)據(jù)庫一起更新。

數(shù)據(jù)庫鏡像在高安全性模式下以同步操作運(yùn)行,或在高性能模式下以異步操作運(yùn)行。在高性能模式下,事務(wù)不需要等待鏡像服務(wù)器將日志寫入磁盤便可提交,這樣可最大程度地提高性能。在高安全性模式下,已提交的事務(wù)將由伙伴雙方提交,但會(huì)延長事務(wù)滯后時(shí)間。數(shù)據(jù)庫鏡像的最簡單配置僅涉及主體服務(wù)器和鏡像服務(wù)器。在該配置中,如果主體服務(wù)器丟失,則該鏡像服務(wù)器可以用作備用服務(wù)器,但可能會(huì)造成數(shù)據(jù)丟失。高安全性模式支持具有自動(dòng)故障轉(zhuǎn)移功能的備用配置高安全性模式。這種配置涉及到稱為“見證服務(wù)器”的第三方服務(wù)器實(shí)例,它能夠使鏡像服務(wù)器用作熱備份服務(wù)器。從主體數(shù)據(jù)庫至鏡像數(shù)據(jù)庫的故障轉(zhuǎn)移通常要用幾秒鐘的時(shí)間。

數(shù)據(jù)庫鏡像可用于做暖備份和熱備份。

復(fù)制

復(fù)制嚴(yán)格來說并不算是一個(gè)為高可用性設(shè)計(jì)的功能,但的確可以被應(yīng)用于高可用性。復(fù)制提供了數(shù)據(jù)庫對(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)表或其他功能,而無需進(jìn)行查詢恢復(fù)。SQL Server 提供四種復(fù)制類型:快照復(fù)制、事務(wù)復(fù)制、對(duì)等復(fù)制以及合并復(fù)制。

AlwaysOn可用性組

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

正因?yàn)槿绱?,?shù)據(jù)庫鏡像在SQL Server 2012中被標(biāo)記為“過時(shí)”。

具體何種版本支持哪些高可用特性,請(qǐng)參閱:http://msdn.microsoft.com/zh-cn/library/cc645993.aspx

心動(dòng)不如行動(dòng),有問必答熱線40088-71651
相關(guān)解決方案
Related Solution
 
一直合宿到早上像素slg安卓下载,曰逼,排名十大黄色软件,台湾温芮欣年龄,畸形~小白,精灵探访记动漫ova动漫,西施卧床眼流泪红脸全身,799.su黑料吃瓜网app,gitv6.app,8ⅹ8x华人