Percona XtraBackup是個相當方便的InnoDB及MyISAM儲存格式的資料庫備份軟體, 通常安裝Percona Server我們都會強烈建議裝上XtraBackup, 使得資料庫備份工作簡單許多。

安裝Percona XtraBackup
apt-get install percona-xtrabackup


安裝前提是您需要Percona的套件伺服器, 可參考這裡增加到/etc/apt/sources.list


確認XtraBackup已經裝好, 命令是innobackupex。


用法也很簡單, 下達命令就會備份整個Percona Server的資料檔案,  連同當時的my.cnf。

以下是備份範例
innobackupex --user=root --password=qwerty12345 /var/backups/mysql

解說各參數:
--user=root (MySQL root帳號)
--password=qwerty12345 (MySQL root的密碼)
/var/backups/mysql (備份目錄, 請設定為您自己要存放的目錄, innobackupex會再此目錄產生一個現在時間點的子目錄來放備份檔)

以下是執行的過程, 有很多訊息。


可以看到innobackupex產生了"/var/backups/mysql/2014-07-25_11-15-44"的子目錄, 顯示"completed OK!"才代表執行無誤!

接著跑innobackupex --apply-log, 才代表做完完整備份:
innobackupex --apply-log /var/backups/mysql/2014-07-25_11-15-44



改以innobackupex --apply-log參數完成備份

以下是執行innobackupex --apply-log的過程, 同樣有很多訊息。


同樣是顯示"completed OK!"才代表執行無誤!


到"/var/backups/mysql/2014-07-25_11-15-44"目錄, 可以看到整個Percona Server連同my.cnf(更名為backup-my.cnf)都備份起來了。

Percona XtraBackup備份使用上很簡易, 也不影響資料庫運作, 是Percona Server必備工具。

這裡附上自己寫的shell script, 您可以放到cron去定時跑, 或者修改一下壓縮起來, 傳到遠端Storage之類的程序
#!/bin/bash
time=$(date "+%Y-%m-%d")
if /bin/ps -U mysql | /bin/grep mysqld > /dev/null 2>&1; then
    /usr/bin/innobackupex --user=root --password=rootpass /backup/to/path/$time --no-timestamp 2>&1 | tee -a /var/log/mysqlbackup.log
    /usr/bin/innobackupex --apply-log /backup/to/path/$time 2>&1 | tee -a /var/log/mysqlbackup.log
fi
Mobile01 FB粉絲團 http://www.facebook.com/TheMobile01