<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • MySQL還原備份的方法是什么

            這篇文章主要介紹“MySQL還原備份的方法是什么”,在日常操作中,相信很多人在MySQL還原備份的方法是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MySQL還原備份的方法是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

            創(chuàng)新互聯(lián)公司長(zhǎng)期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為昭蘇企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),昭蘇網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

            Facebook的MySQL數(shù)據(jù)庫(kù)遍布在我們位于全球的數(shù)據(jù)中心內(nèi),我們必須能在任何時(shí)間內(nèi)從任何位置發(fā)生的故障中恢復(fù)。在發(fā)生此類(lèi)災(zāi)難事件后,不僅需要盡量快速可靠地恢復(fù)服務(wù),而且需要確保整個(gè)過(guò)程不會(huì)丟失任何數(shù)據(jù)。為此我們構(gòu)建了一套能夠?qū)膫浞葜谢謴?fù)數(shù)據(jù)庫(kù)的能力進(jìn)行持續(xù)不斷測(cè)試的系統(tǒng)。

            我們的還原系統(tǒng)包含兩個(gè)重要組件:

            • 持續(xù)還原層(Continuous Restore Tier,CRT) - 負(fù)責(zé)對(duì)所有還原操作進(jìn)行調(diào)度和監(jiān)控。該組件會(huì)查找包含新備份的數(shù)據(jù)庫(kù),為其創(chuàng)建還原作業(yè),監(jiān)控還原過(guò)程,并確保每個(gè)備份可以成功還原。

            • ORC 還原協(xié)調(diào)器(ORC) - 由負(fù)責(zé)執(zhí)行還原的工作進(jìn)程(Peon)和負(fù)載均衡器(Warchief)組成。Warchief接收來(lái)自CRT的新建還原作業(yè)并將其分配給Peon。Peon承載了負(fù)責(zé)執(zhí)行實(shí)際還原過(guò)程的本地MySQL實(shí)例。

            數(shù)據(jù)CRT會(huì)收集每個(gè)還原作業(yè)的進(jìn)度信息,借此幫助我們了解數(shù)據(jù)庫(kù)還原操作的資源需求,ORC則可以幫助我們驗(yàn)證備份的完整性。本文將側(cè)重于介紹ORC的內(nèi)部原理,尤其是內(nèi)部的Peon狀態(tài)機(jī)(State machine),以及在對(duì)單一數(shù)據(jù)庫(kù)進(jìn)行還原的過(guò)程中我們遇到并克服的挑戰(zhàn)。

            備份概述

            在構(gòu)建持續(xù)還原流程前,我們首先需要了解各種可用備份選項(xiàng)的本質(zhì)。目前我們主要進(jìn)行三種備份,所有備份內(nèi)容均存儲(chǔ)在HDFS中:

            1. 完整邏輯備份,使用mysqldump每幾天進(jìn)行一次。

            2. 差異(Diff)備份在所有未進(jìn)行完整備份的日子里進(jìn)行。備份過(guò)程中會(huì)再次創(chuàng)建完整轉(zhuǎn)儲(chǔ),但只存儲(chǔ)與上一次完整備份相比有差異的內(nèi)容。我們會(huì)通過(guò)元數(shù)據(jù)記錄每次差異備份是基于哪個(gè)完整備份進(jìn)行的。

            3. 二進(jìn)制日志(Binlog)備份從主數(shù)據(jù)庫(kù)持續(xù)不斷地流式傳輸至HDFS。

            完整和差異備份均會(huì)將--single-transaction選項(xiàng)傳遞至mysqldump,這樣我們就可以對(duì)數(shù)據(jù)庫(kù)獲得一致的快照,該快照可取自從屬(Slave)或主(Master)實(shí)例。下文會(huì)將差異和完整備份統(tǒng)稱(chēng)為轉(zhuǎn)儲(chǔ)(Dump)。

            由于每天只進(jìn)行一次轉(zhuǎn)儲(chǔ)操作,因此可通過(guò)Binlog備份確保自從備份之后,數(shù)據(jù)庫(kù)所執(zhí)行的每一筆事務(wù)都能被我們記錄在案。隨后只要對(duì)轉(zhuǎn)儲(chǔ)內(nèi)容執(zhí)行還原操作將數(shù)據(jù)庫(kù)恢復(fù)至某個(gè)時(shí)點(diǎn),隨后通過(guò)Binlog對(duì)事務(wù)進(jìn)行重播(Replay),即可順利實(shí)現(xiàn)數(shù)據(jù)庫(kù)的時(shí)點(diǎn)還原。我們的所有數(shù)據(jù)庫(kù)服務(wù)器都使用了全局事務(wù)ID(GTID),因此在從Binlog備份進(jìn)行事務(wù)重播時(shí)我們可以獲得額外的一層控制能力。

            除了將備份存儲(chǔ)在HDFS中,我們還會(huì)將其寫(xiě)入離場(chǎng)位置

            ORC:ORC還原協(xié)調(diào)器

            架構(gòu)

            ORC包含三個(gè)組件:

            1. Warchief - 負(fù)載均衡器。這是一種可暴露出Thrift接口的Python程序,通過(guò)接口可接收新的還原請(qǐng)求,并將其調(diào)度至可用的Peon。

            2. ORC DB - 負(fù)責(zé)維持分配給每個(gè)Peon的作業(yè)狀態(tài)、每個(gè)作業(yè)的當(dāng)前狀態(tài),以及Peon健康度狀態(tài)等信息的中央MySQL數(shù)據(jù)庫(kù)。Warchief會(huì)使用該數(shù)據(jù)庫(kù)中存儲(chǔ)的信息決定要將某個(gè)作業(yè)分配給哪個(gè)Peon,以及故障恢復(fù)過(guò)程中要使用的Peon。

            3. Peon - 負(fù)責(zé)還原操作的工作進(jìn)程。Peon也使用Python編寫(xiě),可暴露出Thrift接口,通過(guò)該接口接收有關(guān)Peon的各類(lèi)狀態(tài)信息。每個(gè)Peon會(huì)定期與ORC DB進(jìn)行同步,查詢分配給自己的新作業(yè),并匯報(bào)自己的健康度狀態(tài)。運(yùn)行Peon的服務(wù)器上還運(yùn)行了一個(gè)本地MySQL實(shí)例,備份將還原至該實(shí)例中。

            MySQL還原備份的方法是什么

            內(nèi)部原理:Peon

            Peon中包含了從HDFS獲取備份,將其載入自己的本地MySQL實(shí)例,通過(guò)Binlog重播將實(shí)例推進(jìn)至某一時(shí)點(diǎn)等操作的所有相關(guān)邏輯。Peon處理的每個(gè)還原作業(yè)會(huì)經(jīng)歷下列五個(gè)步驟:

            1. 選擇(SELECT) - 決定需要用哪個(gè)備份進(jìn)行還原(例如完整或增量,HDFS或離場(chǎng)等)。

            2. 下載(DOWNLOAD) - 將所選文件下載至磁盤(pán)。如果要還原的是完整備份,只需下載一個(gè)文件。對(duì)于差異備份,首先需要下載完整和差異備份,隨后在完整備份的基礎(chǔ)上應(yīng)用差異備份,并將最終結(jié)果存儲(chǔ)到磁盤(pán)上。無(wú)論備份類(lèi)型為何,至此我們已經(jīng)在磁盤(pán)上有了一個(gè)mysqldump輸出的內(nèi)容。

            3. 加載(LOAD) - 將下載的備份載入Peon的本地MySQL實(shí)例。按照與備份文件中每張表有關(guān)的語(yǔ)句進(jìn)行解析,并行恢復(fù)每張表,這一過(guò)程類(lèi)似于Percona的Mydumper。

            4. 驗(yàn)證(VERIFY) - 針對(duì)載入MySQL的數(shù)據(jù)執(zhí)行健康檢查(Sanity check)。

            5. 重播(REPLAY) - 如果有必要,在已還原備份的基礎(chǔ)上,下載二進(jìn)制日志備份并進(jìn)行事務(wù)重播。我們會(huì)使用mysqlbinlog程序篩選掉來(lái)自其他共置數(shù)據(jù)庫(kù)以及空事務(wù)的Binlog事件,隨后對(duì)同一個(gè)MySQL實(shí)例重播所需的事務(wù)。

            每個(gè)步驟有自己對(duì)應(yīng)的失敗狀態(tài),因此如果某個(gè)作業(yè)在DOWNLOAD步驟失敗,將顯示為DOWNLOAD_FAILED狀態(tài),并且不會(huì)繼續(xù)進(jìn)入到LOAD步驟中。

            Binlog的選擇邏輯

            還原過(guò)程中最具挑戰(zhàn)的部分可能就是確定所要下載并重播的Binlog。完整和差異備份可以從主或從屬數(shù)據(jù)庫(kù)獲取,然而我們只從主數(shù)據(jù)庫(kù)創(chuàng)建Binlog備份。這意味著簡(jiǎn)單的時(shí)間戳對(duì)比已經(jīng)無(wú)法用于確定要重播的Binlog。

            我們于2014年在所有服務(wù)器上部署了GTID,因此每筆事務(wù)都可以獲得一個(gè)全局唯一標(biāo)識(shí)符。此外每臺(tái)運(yùn)行MySQL的服務(wù)器也維持了一個(gè)gtid_executed(GTID集)變量,可將其作為對(duì)應(yīng)實(shí)例目前已執(zhí)行事務(wù)數(shù)量的計(jì)數(shù)器。

            在具備GTID的情況下,從主數(shù)據(jù)庫(kù)重播至從屬數(shù)據(jù)庫(kù)的事務(wù)可以維持自己的GTID,這也意味著我們可以清楚地知道每筆事務(wù)是否包含在某個(gè)GTID集中。此外還可以針對(duì)服務(wù)器的gtid_executed值進(jìn)行超集/子集(Superset/subset)比較,因?yàn)樵撝祵?shí)際上就是一種嚴(yán)格遞增的計(jì)數(shù)器和數(shù)學(xué)意義上的函數(shù)。

            通過(guò)配合使用這些技術(shù),即可在創(chuàng)建轉(zhuǎn)儲(chǔ)時(shí)記錄服務(wù)器的gtid_executed值,同時(shí)記錄每個(gè)Binlog文件中包含的GTID集,借此執(zhí)行一致的比較并確定Binlog中的哪些事務(wù)需要重播。此外一旦需要重播的第一筆事務(wù)確定后,無(wú)需重新對(duì)比其他GTID即可確定需要重播的所有后續(xù)事務(wù)。我們還會(huì)使用mysqlbinlog的--stop-datetime選項(xiàng)確定Binlog流要在何處停止。

            到此,關(guān)于“MySQL還原備份的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

            當(dāng)前標(biāo)題:MySQL還原備份的方法是什么
            新聞來(lái)源:http://www.jbt999.com/article18/jhdidp.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)網(wǎng)站制作、網(wǎng)站改版

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

            網(wǎng)站托管運(yùn)營(yíng)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 成人自拍偷拍 | 国产亲子伦一级A片 | 激情五月天丁香 | 国产色婷婷久久 | 国产精品人妻无码久久 |