Mysql

像 MySQL 的酒保一樣備份/恢復

  • July 3, 2013

我想為 MySQL (MariaDB/Percona) 伺服器提供一個備份/恢復工具,該工具具有與barman為 postgresql提供的相同功能

  • 定期進行完整備份(xtrabackup,但與其他人的生活也很酷)
  • 收集二進制日誌(複製它們或作為從屬連接…)
  • 一些“簡單”的方法,將一台伺服器恢復到特定事務或時間點的狀態(在完美的世界中,此工具將複製基本備份,然後自動重播日誌直到有問題的時間點)

會很好的事情:

  • 將新伺服器添加到備份系統的簡單方法
  • 備份的還原

任何提示,想法,…?

如果要進行增量備份,請使用 innobackupex

使用 innobackupex 創建增量備份

首先,您需要將完整備份作為後續增量備份的 BASE:

$ innobackupex /data/backups

這將在 /data/backups 中創建一個帶時間戳的目錄。假設備份是在一年的最後一天完成的,例如,BASEDIR 將是 /data/backups/2013-03-31_23-01-18。

注意您可以使用 innobackupex –no-timestamp 選項來覆蓋此行為,並且將在給定目錄中創建備份。如果您檢查 BASE-DIR 中的 xtrabackup-checkpoints 文件,您應該會看到如下內容:

backup_type = full-backuped
from_lsn = 0
to_lsn = 1291135

要在第二天創建增量備份,請使用 –incremental 選項並提供 BASEDIR:

$ innobackupex --incremental /data/backups --incremental-basedir=BASEDIR

另一個時間戳目錄將在 /data/backups 中創建,在本例中,

/data/backups/2013-04-01_23-01-18 包含增量備份。我們將此稱為 INCREMENTAL-DIR-1。

如果您檢查 INCREMENTAL-DIR-1 中的 xtrabackup-checkpoints 文件,您應該會看到如下內容:

backup_type = incremental
from_lsn = 1291135
to_lsn = 1352113

第二天創建另一個增量備份將是類似的,但這次之前的增量備份將是基礎:

$ innobackupex --incremental /data/backups --incremental-basedir=INCREMENTAL-DIR-1

產生(在本例中)/data/backups/2013-04-02_23-01-18。為簡單起見,我們將使用 INCREMENTAL-DIR-2。

引用自:https://serverfault.com/questions/520448