Percona XtraBackup InnoDB 備份工具
Percona XtraBackup 是一套 compiled C 程式,用於備份 MySQL InnoDB 資料庫,過去備份 MyISAM 或 InnoDB 都是透過 mysqldump 指令,或者是直接 copy /var/lib/mysql 目錄當作備份(這方法盡量少做,請確定 MySQL 版本一致),XtraBackup 用於備份 InnoDB 資料部份,請注意這邊,真的只有”備份資料”,而不是全部(結構跟資料),底下仔細介紹如何安裝:
安裝方式
大家可以選擇透過 yum 或 apt Repository 方式安裝,下面介紹 apt 方式即可。
$ gpg -a --export CD2EFD2A | sudo apt-key add -
將 apt 伺服器寫入 /etc/apt/sources.list
deb-src http://repo.percona.com/apt VERSION main
VERSION 請至換 Ubuntu Server 版號,如果您想測試實驗性版本請加入底下連結
deb-src http://repo.percona.com/apt VERSION main experimental
注意事項
根據不同的 MySQL 版本來選擇 XtraBackup 指令,可以參考 Choosing the Right Binary,所以大家不要用錯指令了。
透過寫入 my.cnf 可以設定備份目錄,此步驟可以省略
target_dir = /home/backups/mysql/
完整備份
可以備份 InnoDB data and log files 從 /var/lib/mysql/ 到 /home/backups/mysql/
–defaults-file 吃 MySQL 設定檔,我們可以另外指定 –target-dir 備份目錄,如果之前你有寫入 my.cnf,指令就可以少寫 –target-dir,備份完成以後,我們需要 Prepare 兩次 MySQL Data
看到底下訊息就代表成功了
130101 11:55:26 InnoDB: Starting shutdown...
130101 11:55:30 InnoDB: Shutdown completed; log sequence number 450927116
恢復備份資料
XtraBackup 程式並非用於備份 MyISAM 資料及 .frm 檔案,所以必須分開備份,底下是用於恢復 InnoDB 資料
$ rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' ./ /var/lib/mysql
$ chown -R mysql:mysql /var/lib/mysql/
$ service mysql restart
另外請記的先備份 .frm 檔案,沒 .frm 檔案,備份資料就沒有用了。
Related View
- MySQL InnoDB Engine 轉換成 InnoDB (0)
- MySQL 預設儲存引擎: InnoDB 介紹 (3)
- 基本優化 tuning apache 跟 tuning mysql 跟 php 效能 (5)
- [MySQL] 實做 MySQL Master-Master Replication 同步 (1)
- mydumper 取代 mysqldump 效能 (1)
- [Ubuntu & java] java JDBC and MySQL (0)
- [轉載]MySQL 的 “SET NAMES xxx” 字元編碼問題分析 (2)
- [網站] 好站連結 (二) (3)
- [MySQL] 利用 perl 單行印出 my.cnf (0)
- [MySQL] 必要修正一些預設值 (performance tunning) (0)