innobackupex一些常用備份選項


指定數據庫備份
[root@node1]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=password --databases="db01" /backup/dbs/

指定表備份
[root@node1]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=password --databases="db01 tab1" /backup/dbs/

以壓縮格式備份
[root@node1]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=password --stream=tar /backup/full/|gzip>/backup/full/back_`date +%F`.tar.gz

 

 

常用參數

–user=     #指定數據庫備份用戶
–password=  #指定數據庫備份用戶密碼
–port=     #指定數據庫端口
–host=     #指定備份主機
–socket=    #指定socket文件路徑
–databases=  #備份指定數據庫,多個空格隔開,如–databases=”dbname1 dbname2″,不加備份所有庫
–defaults-file=       #指定my.cnf配置文件
–apply-log         #日志回滾
–incremental=          #增量備份,后跟增量備份路徑
–incremental-basedir=     #增量備份,指上次增量備份路徑
–redo-only         #合並全備和增量備份數據文件
–copy-back         #將備份數據復制到數據庫,數據庫目錄要為空
–no-timestamp          #生成備份文件不以時間戳為目錄名
–stream=             #指定流的格式做備份,–stream=tar,將備份文件歸檔
–remote-host=user@ip DST_DIR #備份到遠程主機

  

2、完整備份與恢復

2.1 完整備份
# innobackupex --user=bak --password='bak2015' /mysql_backup
2.2 備份恢復
# innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back /home/loongtao/mysql_backup/2015-02-08_11-56-48/
2.3 備份文件說明

# ls 2015-02-08_11-56-48
backup-my.cnf:記錄innobackup使用到mysql參數
xtrabackup_binary:備份中用到的可執行文件
xtrabackup_checkpoints:記錄備份的類型、開始和結束的日志序列號
xtrabackup_logfile:備份中會開啟一個log copy線程,用來監控innodb日志文件(ib_logfile),如果修改就會復制到這個文件

  

 

3、完整備份+增量備份與恢復

3.1 完整備份
# innobackupex --user=bak --password='bak2015' /mysql_backup
備份后位置是:/mysql_backup/2015-02-08_11-56-48

3.2 增量備份1
# innobackupex --user=bak --password='bak2015' --incremental /data1/mysql_backup --incremental-basedir=/mysql_backup/2015-02-08_11-56-48 #指定上次完整備份目錄
3.3 增量備份2
# innobackupex --user=bak --password='bak2015' --incremental /data1/mysql_backup --incremental-basedir=/mysql_backup/2015-02-08_12-16-06 #指定上次增量備份目錄
3.4 查看xtrabackup_checkpoints文件
一目了然,可以看到根據日志序號來增量備份

  

 

 

3.5 備份恢復

3.5.1 備份恢復思路
將增量備份1、增量備份2…合並到完整備份,加到一起出來一個新的完整備份,將新的完整備份以拷貝的形式到數據庫空目錄(rm /var/lib/mysql/* -rf)

3.5.2 預備完整備份
xtrabackup把備份過程中可能有尚未提交的事務或已經提交但未同步數據文件的事務,寫到xtrabackup_logfile文件,所以要先通過這個日志文件回滾,把未完成的事務同步到備份文件,保證數據文件處於一致性。

# innobackup --apply-log --redo-only 2015-02-08_11-56-48
3.5.3 合並第一個增量備份
# innobackupex --apply-log --redo-only /mysql_backup/2015-02-08_11-56-48/ --incremental-dir=mysql_backup/2015-02-08_12-16-06
3.5.4 合並第二個增量備份
# innobackupex --apply-log --redo-only /mysql_backup/2015-02-08_11-56-48/ --incremental-dir=mysql_backup/2015-02-08_16-06-53
3.5.5 恢復完整備份
這時2015-02-08_11-56-48完整備份已經包含所有增量備份,可以通過查看checkpoints來核實

# innobackupex --defaults-file=/etc/mysql/my.cnf --copy-back /mysql_backup/2015-02-08_11-56-48/
3.5.6 修改恢復數據文件權限
# chown -R mysql.mysql /var/lib/mysql
3.5.7 啟動MySQL,查看數據庫恢復情況
# /etc/init.d/mysqld start

  

4、備份文件歸檔壓縮

4.1 歸檔並發送到備份服務器
# innobackupex --databases=test --user=bak --password='bak2015' --stream=tar /mysql_backup 2>/mysql_backup/bak.log |ssh root@192.168.18.251 "cat - > /mysql_backup/`date +%F`.tar"
解壓:tar -ixvf `date +%F`.tar

4.2 歸檔備份
# innobackupex --databases=test --user=bak --password='bak2015' --stream=tar /mysql_backup > /mysql_backup/`date +%F`.tar
解壓:tar -ixvf `date +%F`.tar

4.3 壓縮歸檔備份
# innobackupex --databases=test --user=bak --password='bak2015' --stream=tar /mysql_backup |gzip >/mysql_backup/`date +%F`.tar.gz
解壓:tar -izxvf `date +%F`.tar.gz

  

 轉自下面鏈接

http://codecloud.net/21389.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM