成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Facebook公司PB級(jí)別數(shù)據(jù)庫(kù)自動(dòng)化備份方法

運(yùn)維 系統(tǒng)運(yùn)維 自動(dòng)化
目前Facebook有著世界最大的分布式文件系統(tǒng),單個(gè)集群中的數(shù)據(jù)存儲(chǔ)量就超過100PB。在不同地區(qū)有數(shù)千個(gè)數(shù)據(jù)庫(kù)服務(wù)器。因此,備份對(duì)他們來說是個(gè)巨大的挑戰(zhàn)。那么如何做好PB級(jí)別數(shù)據(jù)庫(kù)自動(dòng)化備份呢?且看本文詳解。

  Facebook的MySQL數(shù)據(jù)庫(kù),是世界上最龐大的MySQL數(shù)據(jù)庫(kù)之一,在不同地區(qū)有數(shù)千個(gè)數(shù)據(jù)庫(kù)服務(wù)器。因此,備份對(duì)他們來說是個(gè)巨大的挑戰(zhàn)。為了解決這個(gè)問題,他們構(gòu)建了一個(gè)高度自動(dòng)化、非常有效的備份系統(tǒng),每周移動(dòng)多個(gè)PB的數(shù)據(jù)。Facebook數(shù)據(jù)團(tuán)隊(duì)的Eric Barrett通過一篇文章分享了他們的做法。

他們沒有采用大量前載(front-loaded)測(cè)試,而是強(qiáng)調(diào)快速檢測(cè)失敗,并且進(jìn)行快速、自動(dòng)化糾正。部署幾百個(gè)數(shù)據(jù)庫(kù)服務(wù)器,只需很少人力干預(yù)。使用下面的三個(gè)措施,他們做到了有節(jié)奏的增長(zhǎng),同時(shí)具備支持上十億用戶的靈活性。

措施1:二進(jìn)制日志和mysqldump

第一道防線稱為“措施1”,或“機(jī)架”備份(rack backup),簡(jiǎn)稱RBU。在每個(gè)數(shù)據(jù)庫(kù)機(jī)架上,不論其類型為何,都有兩個(gè)RBU存儲(chǔ)服務(wù)器。以RBU作為數(shù)據(jù)庫(kù)服務(wù)器放在同一個(gè)機(jī)架中,這可以保證最大的帶寬和最小的延遲,它們同時(shí)可以作為緩存,在備份的下個(gè)措施使用。

收集二進(jìn)制日志,是這些服務(wù)器的工作之一。二進(jìn)制日志會(huì)不斷以流形式,通過模擬從進(jìn)程(simulated slave process)輸送到RBU主機(jī)中。這樣一來,不需要運(yùn)行mysqld,RBU就可以接收到同樣的更新作為復(fù)制版本。

在RBU上保存同步的二進(jìn)制日志很重要:如果一個(gè)主數(shù)據(jù)庫(kù)服務(wù)器離線,該服務(wù)器上的用戶將無法更新狀態(tài)或是上傳照片。出現(xiàn)問題后,他們需要保證修復(fù)時(shí)間越短越好。有可用的二進(jìn)制日志,就能讓他們?cè)跀?shù)秒內(nèi)啟動(dòng)另一個(gè)數(shù)據(jù)庫(kù)作為主數(shù)據(jù)庫(kù)。由于RBU中有秒級(jí)的二進(jìn)制日志,即使某個(gè)舊主數(shù)據(jù)庫(kù)完全不可用,也沒有關(guān)系,只要利用將記錄下的事務(wù)恢復(fù)到上一個(gè)備份中即可完成立即恢復(fù)。

RBU服務(wù)器的第二個(gè)工作是執(zhí)行傳統(tǒng)備份。MySQL備份有兩種方式:二進(jìn)制和邏輯(mysqldump)。Facebook使用邏輯備份,因?yàn)樗c版本無關(guān),提供更好的數(shù)據(jù)完整性,更緊湊,恢復(fù)起來更省事。不過,當(dāng)為某個(gè)數(shù)據(jù)庫(kù)構(gòu)建全新復(fù)制時(shí),他們?nèi)匀皇褂枚M(jìn)制拷貝。

mysqldump的一個(gè)主要好處是:磁盤上的數(shù)據(jù)損壞不會(huì)影響到備份中。如果磁盤某個(gè)扇區(qū)出現(xiàn)問題,或是寫入錯(cuò)誤,InnoDB頁(yè)面校驗(yàn)和就會(huì)出錯(cuò)。在組合備份流時(shí),MySQL會(huì)從內(nèi)存中讀取正確的內(nèi)容,或是去磁盤讀取,然后遇到錯(cuò)誤的校驗(yàn)和,停止備份(以及數(shù)據(jù)庫(kù)進(jìn)程)。mysqldump的問題是:污染用來緩存InnoDB塊的LRU緩存。不過,新版本的MySQL中,會(huì)將LRU插入操作從掃描時(shí)放到緩存結(jié)束。

對(duì)在自己權(quán)限范圍內(nèi)的所有數(shù)據(jù)庫(kù),每個(gè)RBU都有一個(gè)夜間備份。盡管有著天量級(jí)別的數(shù)據(jù),F(xiàn)acebook的團(tuán)隊(duì)還是可以在幾個(gè)小時(shí)內(nèi)完成對(duì)所有數(shù)據(jù)的備份。

如果RBU失敗,自動(dòng)化軟件會(huì)將其職責(zé)分配給同一集群中其他系統(tǒng)。當(dāng)它恢復(fù)上線后,職責(zé)會(huì)自動(dòng)返回到最初的RBU主機(jī)。

Facebook團(tuán)隊(duì)不會(huì)過分擔(dān)心單個(gè)系統(tǒng)的數(shù)據(jù)保留問題,因?yàn)樗麄冇写胧?。

措施2:Hadoop DFS

在每個(gè)備份和二進(jìn)制日志收集完成后,他們會(huì)馬上將其復(fù)制到他們的大型定制化Hadoop集群中。這些集群是非常穩(wěn)定的復(fù)制數(shù)據(jù)集,并有固定的保留時(shí)間。因?yàn)榇疟P大小增長(zhǎng)很快,較老的RBU可能不足以保存一到兩天的備份。不過他們會(huì)按需要增長(zhǎng)Hadoop集群,同時(shí)不需要擔(dān)心底層硬件情況。Hadoop的分布式特性讓他們有足夠帶寬,完成快速數(shù)據(jù)恢復(fù)。

不久,他們會(huì)把非實(shí)時(shí)數(shù)據(jù)分析放到這些Hadoop集群中。這可以降低數(shù)據(jù)庫(kù)中非關(guān)鍵讀的次數(shù),讓Facebook網(wǎng)站的響應(yīng)速度更快。

措施3:長(zhǎng)期存儲(chǔ)

每周,他們會(huì)從Hadoop備份移動(dòng)到另一個(gè)地區(qū)的分散存儲(chǔ)中。這些系統(tǒng)是最新而且安全的存儲(chǔ)系統(tǒng),在他們的日常數(shù)據(jù)管理工具流程之外。

監(jiān)控

除常用的系統(tǒng)監(jiān)控外,他們還會(huì)捕捉很多特定的統(tǒng)計(jì)數(shù)據(jù),比如binlog集合延遲、系統(tǒng)容量等等。

為備份失敗打分,是他們最有價(jià)值的工具。因?yàn)镕acebook的數(shù)據(jù)庫(kù)和同時(shí)運(yùn)行的維護(hù)任務(wù)量級(jí),錯(cuò)過某些備份也不奇怪。廣泛的失敗和多日沒有成功的單個(gè)備份,這都是他們要注意的重點(diǎn)。因此,某個(gè)錯(cuò)過備份的得分會(huì)隨著時(shí)間呈指數(shù)級(jí)增長(zhǎng),這些得分的不同聚合,讓團(tuán)隊(duì)能對(duì)備份的整體健康度有一個(gè)有效而快速的了解。

比如,在一天內(nèi),某個(gè)數(shù)據(jù)錯(cuò)失一次備份,得1分,一天錯(cuò)失50次備份,就是50分。但在三天內(nèi)的一次數(shù)據(jù)庫(kù)錯(cuò)失,就是27分(3的3次冪),三天內(nèi)50次,這是很嚴(yán)重的問題,得分就是1350(50乘以3的3次冪)。這會(huì)在他們的監(jiān)控圖上出現(xiàn)一個(gè)巨大的波峰,團(tuán)隊(duì)會(huì)馬上對(duì)其采取行動(dòng)。

恢復(fù)

在系統(tǒng)管理員中有句老話:“如果你沒有測(cè)試過你的備份,就等于沒有備份。”

因此,F(xiàn)acebook團(tuán)隊(duì)構(gòu)建了一個(gè)測(cè)試系統(tǒng),會(huì)持續(xù)地從措施2開始,將數(shù)據(jù)恢復(fù)到測(cè)試服務(wù)器上。恢復(fù)完成后,他們會(huì)執(zhí)行多次數(shù)據(jù)完整性檢查。如果有任何反復(fù)出現(xiàn)的問題,系統(tǒng)就會(huì)報(bào)警,提醒相關(guān)人員關(guān)注、審核。該系統(tǒng)可以發(fā)現(xiàn)所有問題,包括MySQL的bug,到備份過程中的紕漏,并可以讓他們更靈活地應(yīng)對(duì)備份環(huán)境中的變化。

他們構(gòu)建了一個(gè)名為ORC(ORC恢復(fù)協(xié)調(diào)器的遞歸縮寫)的系統(tǒng),工程師如何需要恢復(fù)他們所用工具的數(shù)據(jù)庫(kù)的過去版本,就可以以自服務(wù)方式使用該系統(tǒng)恢復(fù)數(shù)據(jù)。對(duì)于快速開發(fā)來說還是挺方便的。

在結(jié)尾,Eric Barrett說道:

  備份不是最迷人的工程工作。它們即是技術(shù)活,又是重復(fù)性的,如果一切正常,沒人會(huì)注意。它們也是跨學(xué)科和團(tuán)隊(duì)的,需要懂得系統(tǒng)、網(wǎng)絡(luò)和軟件等多方面的專業(yè)知識(shí)。但是,確保你的記憶和聯(lián)系安全無誤,這是無比重要的事情,而且到最后,也是充滿回報(bào)的事情。

 

有網(wǎng)友問到:

  在不運(yùn)行mysqld的RBU上,你們?nèi)绾瓮瓿啥M(jìn)制日志的流傳送?什么是模擬從進(jìn)程?

  Facebook的MySQL性能工程師Harrison Fisk給出了答案:

  我們使用mysqlbinlog的--never--選項(xiàng),并有一個(gè)用python開發(fā)的小包裝程序,會(huì)監(jiān)控并保證mysqlbinlog運(yùn)行成功。
責(zé)任編輯:黃丹 來源: infoq
相關(guān)推薦

2012-02-27 17:34:12

Facebook自動(dòng)化

2015-05-28 10:46:22

shellBackupdatabase

2019-12-13 10:31:45

數(shù)據(jù)庫(kù)SQLMySQL

2017-01-17 15:14:49

MySQL數(shù)據(jù)庫(kù)自動(dòng)化

2011-03-22 15:47:14

自動(dòng)化數(shù)據(jù)庫(kù)表結(jié)構(gòu)差異

2011-04-01 15:07:29

數(shù)據(jù)庫(kù)自動(dòng)化

2021-12-08 09:00:00

數(shù)據(jù)庫(kù)Liquibase腳本

2011-05-17 15:02:15

ORACLE數(shù)據(jù)庫(kù)備份

2011-03-30 13:57:41

MySQL數(shù)據(jù)庫(kù)自動(dòng)備份

2021-12-30 07:33:03

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

2013-12-02 12:44:28

Facebook自動(dòng)化管理

2011-08-25 09:33:25

MySQL運(yùn)維

2010-12-21 13:13:10

BMC數(shù)據(jù)庫(kù)自動(dòng)化服務(wù)

2018-10-09 15:10:18

數(shù)據(jù)庫(kù)MySQL備份方法

2011-03-15 17:13:49

SQL Server 自動(dòng)化數(shù)據(jù)采集

2024-06-17 10:34:12

2016-09-23 09:22:12

2019-06-12 08:57:43

Oracle數(shù)據(jù)庫(kù)恢復(fù)

2011-07-26 13:55:01

MongoDB備份與恢復(fù)

2013-05-24 13:24:46

Mysql數(shù)據(jù)庫(kù)自動(dòng)備份
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 91精品国产91久久综合桃花 | 久久精品久久久 | www97影院| 一区二区久久精品 | 九九久久99 | 福利视频二区 | 手机av在线| 免费国产视频 | 欧美一级欧美三级在线观看 | 日韩欧美亚洲 | 91精品国产91久久久久游泳池 | 天天天天天天操 | 久久精品视频一区二区 | 亚洲精品在线视频 | 在线观看国产www | 久久国产日本 | 久久99一区二区 | 成人精品一区二区 | 91精品福利 | 瑞克和莫蒂第五季在线观看 | 久久久久久亚洲精品 | 国产精品久久久久久一区二区三区 | 日本三级电影在线看 | 国产综合久久久久久鬼色 | 亚洲欧洲精品一区 | 国产精品a久久久久 | 久久精品视频在线观看 | 蜜桃精品在线 | 国产成人精品视频在线观看 | 成人av网站在线观看 | 亚洲精品无 | 成人午夜影院 | 精品久久久久久久久久久久久久 | 国产精品污污视频 | 成人伊人 | 中文字幕不卡视频在线观看 | 成人精品区 | 亚洲精品一区二区网址 | 日本精品视频在线 | 欧美精品91爱爱 | 中文字幕在线三区 |