Percona XtraBackup InnoDB 備份工具

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 main

VERSION 請至換 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 檔案,備份資料就沒有用了。

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)

你可能感兴趣的:(mysql,InnoDB,xtrabackup,percona)