在教室伦流澡到高潮hgl视频-成人免费无码视频在线网站-被绑在打桩机上抹春药-狂野欧美激情性xxxx

English

MySQL全方位災(zāi)備保護(hù) Ⅲ 物理備份

【編者按:上期我們分析和了解了鼎甲對(duì)MySQL的邏輯備份。本期我們重點(diǎn)解析鼎甲對(duì)MySQL的物理備份?!?/span>

上期回顧:

MySQL全方位災(zāi)備保護(hù) Ⅰ 應(yīng)用趨勢(shì)

MySQL全方位災(zāi)備保護(hù) Ⅱ 邏輯備份

在實(shí)現(xiàn)MySQL的邏輯備份后,鼎甲即刻投入對(duì)MySQL數(shù)據(jù)庫(kù)物理備份的研究和實(shí)現(xiàn),通過對(duì)數(shù)據(jù)庫(kù)文件的備份來提高備份效率和解決鎖表問題。

物理備份包括了完全備份、增量備份、日志備份。

主要是通過定制作業(yè)策略來備份MySQL的數(shù)據(jù)文件和日志文件,由于是基于數(shù)據(jù)文件的復(fù)制,所以物理備份比邏輯備份的速度快很多,而且采用的是熱備份,在備份過程中也減少影響業(yè)務(wù)系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的使用。

DBackup在進(jìn)行物理備份時(shí),支持自適應(yīng)MyISAM、InnoDB等多種存儲(chǔ)引擎,根據(jù)不同的引擎來提取對(duì)應(yīng)的文件進(jìn)行備份。

在MyISAM存儲(chǔ)引擎中,每張數(shù)據(jù)表都有3個(gè)文件,分別為表結(jié)構(gòu)定義文件(frm),表索引文件(MYI),表數(shù)據(jù)文件(MYD)。

對(duì)于InnoDB存儲(chǔ)引擎,增加了事務(wù)處理、回滾、崩潰修復(fù)能力和多版本并發(fā)控制的事務(wù)安全,數(shù)據(jù)文件更為復(fù)雜,每個(gè)InnoDB都會(huì)存在表結(jié)構(gòu)定義文件(frm),而表索引和表數(shù)據(jù)存放在表空間文件【共享表空間文件(ibdata1),獨(dú)享表空間(ibd)】中,另外還有相關(guān)的日志文件(binary log、redo log、undo log、errorlog等)。

在MySQL的物理備份中包括兩部分的備份數(shù)據(jù):對(duì)數(shù)據(jù)文件的完全備份和增量備份,對(duì)二進(jìn)制日志文件的復(fù)制。

這兩部分備份數(shù)據(jù)的備份處理流程不一樣,需要配置在不同的備份任務(wù)中完成。

數(shù)據(jù)文件備份

DBackup同時(shí)支持對(duì)InnoDB和MyISAM引擎的數(shù)據(jù)文件和表數(shù)據(jù)進(jìn)行備份,對(duì)InnoDB引擎中的數(shù)據(jù)文件,采用文件復(fù)制方式一頁一頁地復(fù)制InnoDB的數(shù)據(jù),而且不鎖定表,在文件復(fù)制的過程中,需要時(shí)刻監(jiān)控著redo log的變化,一旦log發(fā)生變化,就即刻同步添加到事務(wù)日志文件中,直至復(fù)制完所有數(shù)據(jù)文件,才停止對(duì)redo log的監(jiān)控和同步。

完成對(duì)ibd文件的備份后,將開始對(duì)非InnoDB表數(shù)據(jù)進(jìn)行備份,包括MyISAM表和InnoDB表結(jié)構(gòu)等信息,需要采用flush tables with lock來獲得一個(gè)讀鎖,保障復(fù)制數(shù)據(jù)的一致性位點(diǎn),復(fù)制完成后將進(jìn)行解鎖。

DBackup對(duì)數(shù)據(jù)文件的備份處理,通過同步事務(wù)日志信息,并整合到備份集中,在進(jìn)行數(shù)據(jù)恢復(fù)時(shí)將保障數(shù)據(jù)文件和日志文件的一致性。

而對(duì)備份中的加鎖處理,也進(jìn)行了優(yōu)化,實(shí)現(xiàn)定向備份鎖技術(shù),只有在備份非InnoDB表數(shù)據(jù)的時(shí)候才啟動(dòng)加鎖處理,這有效地縮短了備份中的鎖表時(shí)間,大大降低了因?yàn)閿?shù)據(jù)庫(kù)備份對(duì)業(yè)務(wù)服務(wù)的中斷影響。

日志備份

日志備份是對(duì)二進(jìn)制日志(binary log)文件的定制備份,二進(jìn)制日志文件用來記錄所有用戶對(duì)數(shù)據(jù)庫(kù)操作,即記錄用戶對(duì)數(shù)據(jù)庫(kù)操作的sql語句。

binary log的文件有兩種類型:index文件有.index的后綴;log文件用.NNNNNN后綴命名,如mysql-bin.000001等。

對(duì)二進(jìn)制日志文件的備份,首先需要啟動(dòng)開啟 MySQL 的二進(jìn)制日志記錄,常規(guī)的啟動(dòng)方式是需要在MySQL的服務(wù)器上,通過后臺(tái)指令輸入來進(jìn)行配置啟動(dòng)。

DBackup為了簡(jiǎn)化配置流程,提升用戶使用感知,把二進(jìn)制日志的啟動(dòng)設(shè)置,整合到前臺(tái)的配置頁面中,用戶只需做簡(jiǎn)單配置后即可啟動(dòng)。

物理備份的實(shí)現(xiàn),雖然提升了MySQL的備份效率,且降低了備份過程中對(duì)業(yè)務(wù)訪問數(shù)據(jù)的影響。

但由于備份是定時(shí)策略,無法做到密集型的備份,也就是在災(zāi)難恢復(fù)時(shí),會(huì)丟失上次備份到故障點(diǎn)發(fā)生之間的數(shù)據(jù)。

為了提升數(shù)據(jù)恢復(fù)的RPO,鼎甲開始MySQL連續(xù)日志實(shí)時(shí)保護(hù)的研究和實(shí)現(xiàn)。

下期預(yù)告:MySQL全方位災(zāi)備保護(hù) Ⅳ 連續(xù)日志備份


聯(lián)系我們