您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何通過Xtrabackup日志來恢復檢查點文件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
前幾天有個朋友問我的問題,是在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!
可以看到日志里面出現了很多的LSN的信息,首先是能夠根據日志得到LSN的信息,然后是如果可以的話,這些LSN是如何做選擇的。
我們必然要引入xtrabackup的原理和過程圖
總體來說xtrabackup會通過物理拷貝的方式,然后來補充增量的數據變化。整個過程和Oracle的熱備有些類似。日志中的信息相對來說還是很全的,作為參考是足夠的。
然后如何恢復呢,我們需要知道有哪些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應該是0,如果數據庫沒有負載,或者在這個備份的過程中沒有什么寫入,那么to_lsn和last_lsn是一致的。
可是上面的日志很明顯,是在數據庫比較繁忙的情況下做的備份,所以產生了很多的臨界點的 LSN,所以通過這些細節就需要我們知道整個xtrabackup的過程中LSN的變化
我就不兜圈子了,通過模擬,得到的一個初步結論如下:
[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來備份。整個過程還是比較快的,大概半個小時內能夠驗證完成。
關于“如何通過Xtrabackup日志來恢復檢查點文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。