Percona XtraBackup 是一套 compiled C 程式,用於備份 MySQL InnoDB 資料庫,過去備份 MyISAM 或 InnoDB 都是透過 mysqldump 指令,或者是直接 copy /var/lib/mysql 目錄當作備份(這方法盡量少做,請確定 MySQL 版本一致),XtraBackup 用於備份 InnoDB 資料部份,請注意這邊,真的只有"備份資料",而不是全部(結構跟資料),底下仔細介紹如何安裝:
安裝方式 大家可以選擇透過
yum 或 apt Repository 方式安裝,下面介紹 apt 方式即可。
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A $ gpg -a --export CD2EFD2A | sudo apt-key add -將 apt 伺服器寫入
/etc/apt/sources.list
deb http://repo.percona.com/apt VERSION main deb-src http://repo.percona.com/apt VERSION mainVERSION 請至換 Ubuntu Server 版號,如果您想測試實驗性版本請加入底下連結
deb http://repo.percona.com/apt VERSION main experimental deb-src http://repo.percona.com/apt VERSION main experimental
注意事項 根據不同的 MySQL 版本來選擇 XtraBackup 指令,可以參考
Choosing the Right Binary,所以大家不要用錯指令了。 透過寫入 my.cnf 可以設定備份目錄,此步驟可以省略
[xtrabackup] target_dir = /home/backups/mysql/
完整備份 可以備份 InnoDB data and log files 從 /var/lib/mysql/ 到 /home/backups/mysql/
$ xtrabackup --defaults-file=/etc/mysql/my.cnf --backup --target-dir=/home/backup/mysql --datadir=/var/lib/mysql--defaults-file 吃 MySQL 設定檔,我們可以另外指定 --target-dir 備份目錄,如果之前你有寫入 my.cnf,指令就可以少寫 --target-dir,備份完成以後,我們需要 Prepare 兩次 MySQL Data
$ xtrabackup --defaults-file=/etc/mysql/my.cnf --prepare --target-dir=/home/backup/mysql看到底下訊息就代表成功了
xtrabackup: starting shutdown with innodb_fast_shutdown = 1 130101 11:55:26 InnoDB: Starting shutdown... 130101 11:55:30 InnoDB: Shutdown completed; log sequence number 450927116
恢復備份資料 XtraBackup 程式並非用於備份 MyISAM 資料及 .frm 檔案,所以必須分開備份,底下是用於恢復 InnoDB 資料
$ cd /home/backup/mysql/ $ rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' ./ /var/lib/mysql $ chown -R mysql:mysql /var/lib/mysql/ $ service mysql restart另外請記的先備份 .frm 檔案,沒 .frm 檔案,備份資料就沒有用了。
See also
- [SQL] 如何從單一資料表取得每個 key 前 n 筆資料
- 在 Docker 偵測 MySQL 或 Postgres 是否啟動
- Laravel 50 個小技巧 + Laravel 5.2 新功能
- 優化 Percona XtraDB Cluster for write hotspots
- 在 Debian 安裝 Percona Xtradb Cluster 5.5.34 注意事項
- 免費下載 Percona MySQL eBooks
- OSDC 2014 Talk: Introduction to Percona XtraDB Cluster and HAProxy
- Percona Cloud Tools for MySQL 介紹及安裝
- Percona XtraDB Cluster 5.6 找合適 IST Donor
- MySQL 5.6 UUID 複製資料到 Slave Server