内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

MySQLXtrabackup備份原理和實現(xiàn)細節(jié)-創(chuàng)新互聯(lián)

備份原理:
XtraBackup基于InnoDB的crash-recovery功能。它會復(fù)制innodb的data file,由于不鎖表,復(fù)制出來的數(shù)據(jù)是不一致的,在恢復(fù)的時候使用crash-recovery,使得數(shù)據(jù)恢復(fù)一致。
InnoDB維護了一個redo log,又稱為transaction log,事務(wù)日志,它包含了innodb數(shù)據(jù)的所有改動情況。當InnoDB啟動的時候,它會先去檢查data file和transaction log,并且會做二步操作:
XtraBackup在備份的時候, 一頁一頁地復(fù)制innodb的數(shù)據(jù),而且不鎖定表,與此同時,XtraBackup還有另外一個線程監(jiān)視著transactions log,一旦log發(fā)生變化,就把變化過的log pages復(fù)制走。
為什么要急著復(fù)制走呢? 因為transactions log文件大小有限,寫滿之后,就會從頭再開始寫,所以新數(shù)據(jù)可能會覆蓋到舊的數(shù)據(jù)。
在prepare過程中,XtraBackup使用復(fù)制到的transactions log對備份出來的innodb data file進行crash recovery。
官方原理:
在InnoDB內(nèi)部會維護一個redo日志文件,我們也可以叫做事務(wù)日志文件。事務(wù)日志會存儲每一個InnoDB表數(shù)據(jù)的記錄修改。當InnoDB啟動時,InnoDB會檢查數(shù)據(jù)文件和事務(wù)日志,
并執(zhí)行兩個步驟:它應(yīng)用(前滾)已經(jīng)提交的事務(wù)日志到數(shù)據(jù)文件,并將修改過但沒有提交的數(shù)據(jù)進行回滾操作。
xtrabackup在啟動時會記住log sequence number(LSN),并且復(fù)制所有的數(shù)據(jù)文件。復(fù)制過程需要一些時間,所以這期間如果數(shù)據(jù)文件有改動,那么將會使數(shù)據(jù)庫處于一個不同
的時間點。這時,xtrabackup會運行一個后臺進程,用于監(jiān)視事務(wù)日志,并從事務(wù)日志復(fù)制最新的修改。
xtrabackup必須持續(xù)的做這個操作,是因為事務(wù)日志是會輪轉(zhuǎn)重復(fù)的寫入,并且事務(wù)日志可以被重用。所以xtrabackup自啟動開始,就不停的將事務(wù)日志中每個數(shù)據(jù)文件的修改都記錄下來。
上面就是xtrabackup的備份過程。接下來是準備(prepare)過程。在這個過程中,xtrabackup使用之前復(fù)制的事務(wù)日志,對各個數(shù)據(jù)文件執(zhí)行災(zāi)難恢復(fù)(就像MySQL剛啟動時要做的一樣)。
當這個過程結(jié)束后,數(shù)據(jù)庫就可以做恢復(fù)還原了。
以上的過程在xtrabackup的編譯二進制程序中實現(xiàn)。程序innobackupex可以允許我們備份MyISAM表和frm文件從而增加了便捷和功能。Innobackupex會啟動xtrabackup,直到xtrabackup復(fù)制
數(shù)據(jù)文件后,然后執(zhí)行FLUSH TABLES WITH READ LOCK來阻止新的寫入進來并把MyISAM表數(shù)據(jù)刷到硬盤上,之后復(fù)制MyISAM數(shù)據(jù)文件,最后釋放鎖。
備份MyISAM和InnoDB表最終會處于一致,在準備(prepare)過程結(jié)束后,InnoDB表數(shù)據(jù)已經(jīng)前滾到整個備份結(jié)束的點,而不是回滾到xtrabackup剛開始時的點。這個時間點與執(zhí)行FLUSH TABLES WITH READ LOCK
的時間點相同,所以MyISAM表數(shù)據(jù)與InnoDB表數(shù)據(jù)是同步的。類似Oracle的,InnoDB的prepare過程可以稱為recover(恢復(fù)),
MyISAM的數(shù)據(jù)復(fù)制過程可以稱為restore(還原)。
xtrabackup和innobackupex這兩個工具都提供了許多前文沒有提到的功能特點。手冊上有對各個功能都有詳細的介紹。簡單介紹下,這些工具提供了如流(streaming)備份,增量(incremental)備份等,
通過復(fù)制數(shù)據(jù)文件,復(fù)制日志文件和提交日志到數(shù)據(jù)文件(前滾)實現(xiàn)了各種復(fù)合備份方式。

分享標題:MySQLXtrabackup備份原理和實現(xiàn)細節(jié)-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.rwnh.cn/article40/jdceo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站導(dǎo)航、網(wǎng)站維護、品牌網(wǎng)站設(shè)計、網(wǎng)站營銷、微信公眾號

廣告

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

外貿(mào)網(wǎng)站建設(shè)
资源县| 静乐县| 天长市| 尤溪县| 万山特区| 泊头市| 永靖县| 武邑县| 皋兰县| 灌云县| 新昌县| 会昌县| 勃利县| 宝丰县| 搜索| 永靖县| 根河市| 双辽市| 辽中县| 汶上县| 东阿县| 亚东县| 靖边县| 海宁市| 海原县| 惠水县| 余姚市| 峨边| 鱼台县| 鹤庆县| 新沂市| 淮滨县| 綦江县| 灵璧县| 精河县| 九龙县| 长葛市| 屯留县| 宝山区| 泰顺县| 武隆县|