溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何通過Xtrabackup日志來恢復(fù)檢查點(diǎn)文件

發(fā)布時間:2021-11-01 11:12:58 來源:億速云 閱讀:167 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)如何通過Xtrabackup日志來恢復(fù)檢查點(diǎn)文件,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

前幾天有個朋友問我的問題,是在xtrabackup的時候,沒有特別保留checkpoints文件,想問問能否通過日志來推理得到里面的LSN信息呢,背景條件是做全備。

一個參考的日志如下:

171208 11:21:54 [01] Copying ./sbtest/dba_xtrabackupresult.frm to /data/backup/sbtest/dba_xtrabackupresult.frm

171208 11:21:54 [01] ...done

171208 11:21:54 Finished backing up non-InnoDB tables and files

171208 11:21:54 [00] Writing /data/backup/xtrabackup_binlog_info

171208 11:21:54 [00] ...done

171208 11:21:54 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...

xtrabackup: The latest check point (for incremental): ' 3985406424'

xtrabackup: Stopping log copying thread.

....171208 11:21:55 >> log scanned up to ( 4060591382)

171208 11:21:55 >> log scanned up to ( 4060591382) 171208 11:21:55 Backup created in directory '/data/backup/'

MySQL binlog position: filename 'mysqlbin.000017', position ' 96607849'

171208 11:21:55 [00] Writing /data/backup/backup-my.cnf

171208 11:21:55 [00] ...done

171208 11:21:55 [00] Writing /data/backup/xtrabackup_info

171208 11:21:55 [00] ...done

xtrabackup: Transaction log of lsn ( 3597739074) to ( 4060591382) was copied.

171208 11:21:57 completed OK!

可以看到日志里面出現(xiàn)了很多的LSN的信息,首先是能夠根據(jù)日志得到LSN的信息,然后是如果可以的話,這些LSN是如何做選擇的。

我們必然要引入xtrabackup的原理和過程圖

如何通過Xtrabackup日志來恢復(fù)檢查點(diǎn)文件

總體來說xtrabackup會通過物理拷貝的方式,然后來補(bǔ)充增量的數(shù)據(jù)變化。整個過程和Oracle的熱備有些類似。日志中的信息相對來說還是很全的,作為參考是足夠的。

然后如何恢復(fù)呢,我們需要知道有哪些LSN是需要的。

一般來說,一個checkpoints文件需要如下的LSN信息

[root@tk-dba-mysql10-202 backup]# cat *checkpoints

backup_type = full-backuped

from_lsn = xx

to_lsn = xx

last_lsn = xx

compact = 0

recover_binlog_info = 0

為了避免干擾,我做了一些過濾,可以看到基本是由FROM_LSN,TO_LSN,LAST_LSN組成的,如果是全備,from_lsn應(yīng)該是0,如果數(shù)據(jù)庫沒有負(fù)載,或者在這個備份的過程中沒有什么寫入,那么to_lsn和last_lsn是一致的。

可是上面的日志很明顯,是在數(shù)據(jù)庫比較繁忙的情況下做的備份,所以產(chǎn)生了很多的臨界點(diǎn)的 LSN,所以通過這些細(xì)節(jié)就需要我們知道整個xtrabackup的過程中LSN的變化

我就不兜圈子了,通過模擬,得到的一個初步結(jié)論如下:

[root@tk-dba-mysql10-202 backup]# cat *checkpoints

backup_type = full-backuped

from_lsn = 0

to_lsn = 3985406424

last_lsn = 4060591382

compact = 0

recover_binlog_info = 0

這個過程是怎么模擬的呢,是在前端通過sysbench做壓力測試,然后使用xtrabackup來備份。整個過程還是比較快的,大概半個小時內(nèi)能夠驗(yàn)證完成。

關(guān)于“如何通過Xtrabackup日志來恢復(fù)檢查點(diǎn)文件”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI