1. 程式人生 > >XtraBackup備份工具(percona)

XtraBackup備份工具(percona)

XtraBackup工具

專業組織Percona提供的一款線上熱備份工具,備份過程中不鎖表,適合生產環境

元件

xtrabackup : C程式,支援InnoDB,XtraDB

innobackupex :用perl指令碼封裝的xtrabackup,除了支援InnoDB 還支援MyISAM

安裝percona

[[email protected] ~]#rpm -ivh ibev-4.15-1.el6.rf.x86_64.rpm   
[[email protected] ~]#yum -y install perl-DBD-MySQL  perl-Digest-MD5-2.52-3.el7.x86_64 
[
[email protected]
~]#percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm [[email protected] ~]#man innobackupex //檢視man幫助

基本選項

選項 含義
--host 主機名
--user 使用者名稱
--port 埠號
--password 密碼
--databases 資料庫名  --databases={“庫名” 單個庫   “庫1 庫2” 多個庫   “庫.表”單個表}
--no-timestamp 不用日期命名備份檔案儲存的子目錄名
--incremental  目錄名 增量備份
--incremental-basedir=目錄名 增量備份時,指定上次備份資料儲存的目錄名
--incremental-dir=目錄名
恢復資料時,指定增量備份資料儲存的目錄名
--redo-only 日誌合併
--apply-log 準備還原(日誌回滾)
--copy-back 恢復資料
--export 匯出表資訊
import 匯入表空間

完全備份與恢復

[[email protected] ~]#innobackupex  --user=root  --password=123456  --no-timestamp   /allback      
//備份資料庫所有檔案,注意,備份資料夾不能有東西,必須為空  
[[email protected] ~]#innobackupex  --user=root  --password=123456  --apply-log  /allback 
//準備恢復資料  不過完全備份這步可以省略
[[email protected] ~]#rm -rf /var/lib/mysql                    //恢復時要求空的目錄
[[email protected] ~]#innobackupex  --user=root  --password=123456  --copy-back  /allback
//恢復資料
[[email protected] ~]#chown -R mysql:mysql  /var/lib/mysql     //修改許可權為mysql,否則重啟報錯
[[email protected] ~]#systemctl restart mysqld                  //重啟
[[email protected] ~]#mysql -uroot -p123456        
mysql>show databases;

增量備份與恢復

增量備份:

[[email protected] ~]#innobackupex --user=root --password=123456  /fullback  --no-timestamp
[[email protected] ~]#innobackupex --user=root --password=123456   --incremental  /new1dir  --incremental-basedir=/fullback  --no-timestamp
[[email protected] ~]#innobackupex --user=root --password=123456   --incremental  /new2dir  --incremental-basedir=/new1dir  --no-timestamp
...
//增量備份時,必須現有一次備份,一般為完全備份

增量恢復:

  1. 準備恢復資料
    [[email protected] ~]#systemctl  stop mysqld
    [[email protected] ~]#rm -rf  /var/libmysql
    [[email protected] ~]#innobackupex --apply-log --redo-only  /fullback   //完整恢復
  2. 合併日誌                                        
  3. 拷貝備份資料到資料庫目錄下
  4. 修改所有使用者為mysql
  5. 啟動資料庫服務
  6. 檢視資料