自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

云計(jì)算數(shù)據(jù)庫的災(zāi)難恢復(fù)解決方案是如何演進(jìn)的?

譯文
數(shù)據(jù)庫 其他數(shù)據(jù)庫
本文對(duì)災(zāi)難恢復(fù)技術(shù)的發(fā)展以及如何采用這些創(chuàng)新的數(shù)據(jù)庫進(jìn)行了闡述和分析。

?譯者 | 李睿

審校 | 孫淑娟

災(zāi)難恢復(fù)(DR)是企業(yè)級(jí)數(shù)據(jù)庫的核心功能。數(shù)據(jù)庫供應(yīng)商一直在尋找改進(jìn)災(zāi)難恢復(fù)的方法,而在過去的10年里,數(shù)據(jù)庫災(zāi)難恢復(fù)也出現(xiàn)了重大的創(chuàng)新。

本文簡要介紹數(shù)據(jù)庫災(zāi)難恢復(fù)的發(fā)展歷史,重點(diǎn)介紹了基于云計(jì)算的分布式數(shù)據(jù)庫中的災(zāi)難恢復(fù)(DR)和高可用性(HA)的創(chuàng)新。

1、測(cè)量高可用性和災(zāi)難恢復(fù)

高可用性(HA)和災(zāi)難恢復(fù)(DR)的目標(biāo)是保持系統(tǒng)在操作級(jí)別上正常運(yùn)行。它們都試圖消除系統(tǒng)中的單點(diǎn)故障,并使故障切換或恢復(fù)過程實(shí)現(xiàn)自動(dòng)化。

高可用性(HA)通常由系統(tǒng)每年運(yùn)行的時(shí)間百分比來衡量。災(zāi)難恢復(fù)的重點(diǎn)是在災(zāi)難發(fā)生之后使系統(tǒng)恢復(fù)服務(wù),使數(shù)據(jù)的損失最小化。這是由兩個(gè)指標(biāo)來衡量的:恢復(fù)所需的時(shí)間或恢復(fù)時(shí)間目標(biāo)(RTO),以及數(shù)據(jù)量的丟失或恢復(fù)點(diǎn)目標(biāo)(RPO)。而恢復(fù)點(diǎn)目標(biāo)(RPO)和恢復(fù)時(shí)間目標(biāo)(RTO)應(yīng)該盡可能降低。

圖片

高可用性和災(zāi)難恢復(fù)的測(cè)量

每個(gè)災(zāi)難都是獨(dú)一無二的,因此容錯(cuò)目標(biāo)(FTT)描述了系統(tǒng)能夠承受的最大災(zāi)難范圍。通常使用的容錯(cuò)目標(biāo)(FTT)是區(qū)域級(jí)別,它表示災(zāi)難已經(jīng)影響到州或城市等地理區(qū)域。

2、災(zāi)難恢復(fù)發(fā)展簡史

數(shù)據(jù)庫的災(zāi)難恢復(fù)技術(shù)經(jīng)歷了備份和恢復(fù)、主備和多活三個(gè)階段。

(1)備份和恢復(fù)

在災(zāi)難恢復(fù)的早期階段,數(shù)據(jù)庫利用數(shù)據(jù)塊和事務(wù)日志為完整數(shù)據(jù)和增量數(shù)據(jù)創(chuàng)建備份。如果發(fā)生災(zāi)難,則從備份和應(yīng)用程序事務(wù)日志恢復(fù)數(shù)據(jù)庫。

近年來,公共云數(shù)據(jù)庫服務(wù)將存儲(chǔ)復(fù)制與傳統(tǒng)數(shù)據(jù)庫備份技術(shù)相結(jié)合,提供基于快照的跨區(qū)域自動(dòng)恢復(fù)備份。這種方法定期從源區(qū)域的數(shù)據(jù)庫生成快照,并將快照文件復(fù)制到目標(biāo)區(qū)域。如果源區(qū)域崩潰,則從目標(biāo)區(qū)域恢復(fù)數(shù)據(jù)庫,服務(wù)將會(huì)繼續(xù)。這種解決方案的恢復(fù)點(diǎn)目標(biāo)(RPO)和恢復(fù)時(shí)間目標(biāo)(RTO)可能長達(dá)幾個(gè)小時(shí),因此它最適合沒有嚴(yán)格可用性需求的應(yīng)用程序。

圖片

備份和恢復(fù)的災(zāi)難恢復(fù)

(2)主備

數(shù)據(jù)庫集群標(biāo)志著開發(fā)的第二個(gè)階段。在集群中,主節(jié)點(diǎn)讀取和寫入數(shù)據(jù)。一個(gè)或多個(gè)備份節(jié)點(diǎn)接收事務(wù)日志并應(yīng)用它們,提供具有一定延遲的讀取功能。

圖片

主備的災(zāi)難恢復(fù)

盡管這個(gè)解決方案涉及到集群的概念,但它仍然基于一個(gè)整體數(shù)據(jù)庫。可擴(kuò)展性僅限于讀操作,不能擴(kuò)展寫操作。當(dāng)然與前一代解決方案相比,其恢復(fù)時(shí)間目標(biāo)(RTO)減少到幾分鐘,恢復(fù)點(diǎn)目標(biāo)(RPO)減少到幾秒。

Amazon Aurora使用跨區(qū)域讀副本的邏輯復(fù)制,是建立在該技術(shù)上的早期云數(shù)據(jù)庫服務(wù)之一。

圖片

具有跨區(qū)域讀副本的Aurora邏輯復(fù)制

近年來,Aurora在這一設(shè)計(jì)的基礎(chǔ)上提供了全球數(shù)據(jù)庫服務(wù)。該服務(wù)通過存儲(chǔ)復(fù)制技術(shù),將數(shù)據(jù)從源區(qū)域異步復(fù)制到目的區(qū)域。如果源區(qū)域出現(xiàn)故障,服務(wù)可以立即切換到備份集群?;謴?fù)時(shí)間目標(biāo)(RTO)可以減少到幾分鐘,恢復(fù)點(diǎn)目標(biāo)(RPO)不到一秒。

(3)多活災(zāi)難恢復(fù)

在多活災(zāi)難恢復(fù)中,一個(gè)數(shù)據(jù)庫為同一份數(shù)據(jù)副本提供至少三個(gè)讀和寫服務(wù)節(jié)點(diǎn),并且數(shù)據(jù)庫可以根據(jù)工作負(fù)載向外或向內(nèi)擴(kuò)展。這種功能背后的需求來自廣泛的互聯(lián)網(wǎng)規(guī)模應(yīng)用程序,這些應(yīng)用程序需要更高的性能、更低的延遲、更高的可用性、彈性擴(kuò)展性和數(shù)據(jù)庫的彈性。

傳統(tǒng)的分片數(shù)據(jù)庫基于一個(gè)或多個(gè)列共享數(shù)據(jù),形成了多活。分片解決方案通過事務(wù)日志復(fù)制實(shí)現(xiàn)災(zāi)難恢復(fù)。例如,谷歌公司曾經(jīng)維護(hù)過一個(gè)非常大的MySQL分片系統(tǒng)。這個(gè)解決方案提供了某種程度的可擴(kuò)展性,但不能隨著碎片的增加而提高災(zāi)難恢復(fù)能力。其性能將顯著下降,維護(hù)成本將大幅上升。因此,分片是多活的過渡解決方案。

近年來,基于Raft或Paxos共識(shí)協(xié)議的無共享數(shù)據(jù)庫發(fā)展迅速。他們解決了以上提到的可擴(kuò)展性和可用性挑戰(zhàn)。多活的主要參與者包括TiDB和CockroachDB。他們的數(shù)據(jù)庫及其災(zāi)難恢復(fù)技術(shù)使大多數(shù)遺留數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫服務(wù)(RDS)過時(shí)。

3、具有分布式數(shù)據(jù)庫的多活災(zāi)難恢復(fù)

以下了解應(yīng)用于分布式數(shù)據(jù)庫的多活災(zāi)難恢復(fù)。例如,TiDB是一個(gè)開源的、高可用性的分布式數(shù)據(jù)庫。它將每個(gè)表或分區(qū)劃分為較小的TiDB區(qū)域,并將這些TiDB區(qū)域中的數(shù)據(jù)的多個(gè)副本存儲(chǔ)在不同的TiKV節(jié)點(diǎn)上。這就是所謂的數(shù)據(jù)冗余。TiDB采用Raft共識(shí)協(xié)議,因此當(dāng)數(shù)據(jù)發(fā)生更改時(shí),只有在事務(wù)日志同步到大多數(shù)數(shù)據(jù)副本時(shí)才返回事務(wù)提交。這極大地提高了數(shù)據(jù)庫恢復(fù)點(diǎn)目標(biāo)(RPO)。事實(shí)上,在大多數(shù)情況下恢復(fù)點(diǎn)目標(biāo)(RPO)是0。這確保了數(shù)據(jù)的一致性。此外,TiDB的架構(gòu)將其存儲(chǔ)引擎和計(jì)算引擎分離開來。這允許用戶根據(jù)工作負(fù)載的變化擴(kuò)展TiDB節(jié)點(diǎn)和TiKV存儲(chǔ)節(jié)點(diǎn)。

圖片

TiDB的存儲(chǔ)架構(gòu)

(1)典型的多區(qū)域容災(zāi)解決方案

下圖顯示了TiDB如何交付典型的多區(qū)域?yàn)?zāi)難恢復(fù)解決方案。

圖片

TiDB的多區(qū)域容災(zāi)解決方案

以下是TiDB容災(zāi)架構(gòu)的關(guān)鍵術(shù)語:

  • TiDB區(qū)域:TiDB的調(diào)度和存儲(chǔ)單元。
  • 區(qū)域:兩個(gè)地點(diǎn)或城市。
  • 可用性區(qū)域(AZ):獨(dú)立的高可用性(HA)分區(qū)。在大多數(shù)情況下,可用性區(qū)域(AZ)是一個(gè)區(qū)域中相距較近的兩個(gè)數(shù)據(jù)中心或城市。
  • L:Raft組的Leader副本。
  • F:Raft組中的Follower副本。

在上圖中,每個(gè)區(qū)域包含數(shù)據(jù)的兩個(gè)副本。它們位于不同的可用性區(qū)域(AZ)中,整個(gè)集群跨越三個(gè)區(qū)域。區(qū)域1通常處理讀寫請(qǐng)求。區(qū)域2用于在區(qū)域1發(fā)生災(zāi)難后的故障轉(zhuǎn)移,它還可以處理一些對(duì)延遲不敏感的讀負(fù)載。區(qū)域3是保證即使在區(qū)域1完成時(shí)仍能達(dá)成共識(shí)的副本。這種典型的配置稱為“2-2-1”架構(gòu)。這種架構(gòu)不僅確保了災(zāi)難恢復(fù),而且為業(yè)務(wù)提供了多活能力。在這一架構(gòu)中:

  • 最大的容錯(cuò)目標(biāo)可以位于區(qū)域級(jí)別。
  • 可以擴(kuò)展寫作能力。
  • 恢復(fù)點(diǎn)目標(biāo)(RPO)為0。
  • 恢復(fù)時(shí)間目標(biāo)(RTO)可以設(shè)置為1分鐘甚至更短。

許多分布式數(shù)據(jù)庫供應(yīng)商經(jīng)常向他們的用戶推薦這種架構(gòu)作為災(zāi)難恢復(fù)解決方案。例如,CockroachDB推薦他們的3-3-3配置來實(shí)現(xiàn)區(qū)域級(jí)災(zāi)難恢復(fù);Spanner為多區(qū)域部署提供2-2-1配置。但是,當(dāng)區(qū)域1和2同時(shí)不可用時(shí),這一解決方案不能保證高可用性。一旦區(qū)域1完全關(guān)閉,如果區(qū)域2上的任何一個(gè)存儲(chǔ)節(jié)點(diǎn)出現(xiàn)問題,則可能會(huì)導(dǎo)致系統(tǒng)性能下降,甚至數(shù)據(jù)丟失。如果需要多區(qū)域級(jí)別的容錯(cuò)目標(biāo)(FTT),或者需要嚴(yán)格的系統(tǒng)響應(yīng)時(shí)間,則仍然需要將這一解決方案與事務(wù)日志復(fù)制技術(shù)相結(jié)合。

(2)使用變更數(shù)據(jù)捕獲增強(qiáng)的多區(qū)域?yàn)?zāi)難恢復(fù)

TiCDC是TiDB的增量數(shù)據(jù)復(fù)制工具。它獲取TiKV節(jié)點(diǎn)上的數(shù)據(jù)變化,并與下游系統(tǒng)同步。TiCDC具有與事務(wù)日志復(fù)制系統(tǒng)類似的架構(gòu),但它具有更強(qiáng)的可擴(kuò)展性,并且在災(zāi)難恢復(fù)場(chǎng)景中與TiDB協(xié)同工作良好。

以下配置包含兩個(gè)TiDB集群。區(qū)域1和區(qū)域2共同組成集群1,這是一個(gè)由5個(gè)副本組成的集群。區(qū)域1包含兩個(gè)副本,用于提供讀寫操作,區(qū)域2包含兩個(gè)副本,用于在區(qū)域1發(fā)生災(zāi)難時(shí)進(jìn)行快速故障轉(zhuǎn)移。區(qū)域3包含一個(gè)用于在Raft組中達(dá)到quorum的副本。區(qū)域3中的集群2作為災(zāi)難恢復(fù)集群。它包含三個(gè)副本,以便在區(qū)域1和區(qū)域2發(fā)生災(zāi)難時(shí)提供快速故障轉(zhuǎn)移。TiCDC處理兩個(gè)集群之間數(shù)據(jù)更改的同步。這種增強(qiáng)的架構(gòu)可以稱為2-2-1:1。

圖片

使用TiCDC的TiDB多區(qū)域?yàn)?zāi)難恢復(fù)

這種看似復(fù)雜的配置實(shí)際上具有更高的可用性。它可以實(shí)現(xiàn)多區(qū)域級(jí)別的最大容錯(cuò)目標(biāo),恢復(fù)點(diǎn)目標(biāo)(RPO)以秒為單位,恢復(fù)時(shí)間目標(biāo)(RTO)以分鐘為單位。對(duì)于單個(gè)區(qū)域,如果完全不可用,恢復(fù)時(shí)間目標(biāo)(RTO)為0。

(3)災(zāi)難恢復(fù)解決方案比較

在下表中,對(duì)本文中提到的容災(zāi)解決方案進(jìn)行了比較:

圖片

4、結(jié)語

經(jīng)過30多年的發(fā)展和幾個(gè)不同的發(fā)展階段,災(zāi)難恢復(fù)技術(shù)如今已經(jīng)進(jìn)入了多活階段。

而使用無共享架構(gòu),TiDB等分布式數(shù)據(jù)庫結(jié)合了多副本技術(shù)和日志復(fù)制工具,將數(shù)據(jù)庫容災(zāi)帶入多區(qū)域時(shí)代。

原文鏈接:https://dzone.com/articles/how-the-disaster-recovery-solutions-for-cloud-data

責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2016-08-23 00:54:35

云計(jì)算基礎(chǔ)架構(gòu)災(zāi)難恢復(fù)

2014-06-18 14:33:58

數(shù)據(jù)保護(hù)

2011-05-18 10:49:53

Oralce數(shù)據(jù)庫

2022-07-19 14:41:00

安全

2014-12-17 09:18:29

賽門鐵克

2019-04-26 13:51:38

災(zāi)難恢復(fù)云計(jì)算數(shù)據(jù)

2012-11-02 13:25:04

云計(jì)算災(zāi)難恢復(fù)

2018-05-22 14:16:35

云計(jì)算數(shù)據(jù)庫云原生

2019-03-04 14:48:44

云計(jì)算互聯(lián)網(wǎng)解決方案

2011-07-29 09:25:42

云計(jì)算災(zāi)難恢復(fù)

2012-08-27 09:47:11

云計(jì)算災(zāi)難恢復(fù)

2011-04-12 15:44:08

Oracle數(shù)據(jù)庫

2021-07-15 13:57:34

災(zāi)難恢復(fù)DRaaS數(shù)據(jù)中心

2014-11-13 10:05:42

云計(jì)算IaaS

2013-08-08 10:20:04

云計(jì)算災(zāi)難恢復(fù)反思

2020-07-01 09:33:37

云計(jì)算疫情數(shù)據(jù)中心

2011-08-09 09:31:10

云計(jì)算災(zāi)難恢復(fù)

2010-05-27 18:24:09

MySQL數(shù)據(jù)庫密碼

2011-03-28 13:11:18

MySQL數(shù)據(jù)庫安全

2011-03-03 18:09:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)