使用Percona XtraBackup備份 MySQL InnoDB 數據庫

Percona XtraBackup是一款開放源碼,免費的MySQL熱備份軟件,以非阻塞方式執行備份InnoDB和XtraDB爲存儲引擎的數據庫,是商業備份工具InnoDB Hotbackup的一個很好的替代品。做者的前一家公司就花了不菲美圓買了Hotbackup產品。 mysql

Percona XtraBackup官方地址:http://www.percona.com/software/percona-xtrabackup
能夠實現如下優勢:sql

    快速,可靠地完成備份
    在備份過程當中不影響事務處理
    節省磁盤空間和網絡帶寬
    自動驗證備份的數據庫
    快速恢復數據庫,保證更高的正常運行時間

shell

XtraBackup Percona服務器時,MySQL,MariaDB的,和小雨的全部版本MySQL的熱備份。進行流式處理,壓縮,增量MySQL備份。數據庫

下載最新版本,http://www.percona.com/downloads/XtraBackup/bash

安裝 perl mysql服務器

perl -MCPAN -e "install DBI"
perl -MCPAN -e "install DBD::mysql"

文件解壓後,目錄裏安裝上兩個有用的工具:xtrabackup,innobackupex-1.5.1:
xtrabackup能夠在不加鎖的狀況下備份innodb數據表,不過此工具不能操做myisam。
innobackupex-1.5.1是一個腳本封裝,能同時處理innodb和myisam,但在處理myisam時須要加一個讀鎖。網絡

因此通常有myisam引擎的數據庫都使用後者來進行備份
下面是個人備份腳本app

#!/bin/bash
date=`date -I`
mysqlUser=root
mysqlPWD='111'
innobackupex-1.5.1 --defaults-file=/etc/my.cnf --user=$mysqlUser --password=$mysqlPWD 2>>/backup/mysql/backup.log --stream=tar ./ | gzip -> /backup/mysql/mysql-$date.tar.gz

恢復數據
      1) 先中止數據庫:service mysqld stop
工具

      2) 解壓rest

tar -izxvf zztx.tar.gz -C /data/back_data/db/

  (沒有db ,須要mkdir /data/back_data/db/)        3) 恢復 

innobackupex --user=root --password --defaults-file=/etc/my.cnf  --apply-log /data/back_data/db/

  (--apply-log選項的命令是準備在一個備份上啓動mysql服務)

innobackupex --user=root --password --defaults-file=/etc/my.cnf  --copy-back /data/back_data/db/

(--copy-back 選項的命令從備份目錄拷貝數據,索引,日誌到my.cnf文   件裏規定的初始位置。)       4) 賦權 chown -R mysql.mysql /var/lib/mysql/*       5) 重啓數據庫 service mysqld restart       6) 刪除垃圾 cd /var/lib/mysql/  && rm xtrabackup*

相關文章
相關標籤/搜索