http://www.percona.com/doc/percona-xtrabackup/2.1/installation/yum_repo.html php
vim /etc/yum.repos.d/Percona.repo 添加如下內容: [percona] name = CentOS $releasever - Percona baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/ enabled = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona gpgcheck = 1下載key文件寫到<span style=\"\\\\"\\\\\\\\"font-family:consolas,\\\\"\">yum install percona-xtrabackup-2.0.1-446.rhel6.x86_64 -y
下載地址: http://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.5/binary/Linux html
主要來講一下xtrbackup對MySqL數據庫的備份和恢復。innobackupex-1.5.1 --defaults-file=/etc/my.cnf --no-timestamp --host=localhost --port=3306 --user=root --password=redhat /data/bak_data/full_bak這個目錄裏面就是備份的內容了,能夠看一下都有什麼東西:
第一次增量備份: innobackupex-1.5.1 --defaults-file=/etc/my.cnf --no-timestamp --host=localhost --port=3306 --user=root --password=redhat --incremental --incremental-basedir=/data/bak_data/full_bak /data/bak_data/one_backup 第二次增量備份: innobackupex-1.5.1 --defaults-file=/etc/my.cnf --no-timestamp --host=localhost --port=3306 --user=root --password=redhat --incremental --incremental-basedir=/data/bak_data/one_backup /data/bak_data/two_backup 第三次增量備份: innobackupex-1.5.1 --defaults-file=/etc/my.cnf --no-timestamp --host=localhost --port=3306 --user=root --password=redhat --incremental --incremental-basedir=/data/bak_data/two_backup /data/bak_data/three_backup
innobackupex-1.5.1 --defaults-file=/etc/my.cnf --no-timestamp --host=localhost --port=3306 --user=root --password=redhat --stream=tar /data/bak_data/ 2>/data/back_data/2.log | gzip - > /data/bak_data/full_bak.tar.gz(測試了不下10次,壓縮包裏只一個backup-my.cnf文件,很是鬱悶!)
innobackupex-1.5.1 /data/bak_data/full_bak --apply-log二、進行增量恢復:
innobackupex-1.5.1 /data/bak_data/full_bak --incremental --incremental-dir=/data/bak_data/one_backup --apply-log #恢復的是第一次增量備份的, innobackupex-1.5.1 /data/bak_data/full_bak --incremental --incremental-dir=/data/bak_data/two_backup --apply-log #恢復的是第二次增量備份的, innobackupex-1.5.1 /data/bak_data/full_bak --incremental --incremental-dir=/data/bak_data/three_backup --apply-log #恢復的是第三次增量備份的,以次類推,有多少增量就恢復多少,最後數據庫所有數據會在/data/bak_data/full_bak這個目錄下,
cp -r /data/bak_data/full_bak/* /data/mysql/data/爲了能正常啓動服務,修改數據目錄的用戶權限,
chown mysql:mysq -R /data/mysql如不出意外,重啓以後數據庫服務就是正常。一般狀況下能正常啓動。
innobackupex-1.5.1 --copy-back /data/bak_data/full_bak執行完後,上面來個目錄中的文件屬主和屬組都發生了變化,不是mysql用戶了,若是直接重啓mysql服務會報錯,修改成mysql用戶就能夠了
chown mysql:mysql /data/mysql -R
但願看到的朋友們能指點下,謝謝。 mysql
上面的那個問題已經解決了,多謝跛腿的狐狸 的指點 sql
緣由以下,我備份完以後解壓時少用了一個參數。我用的是:tar zxvf full_bak.tar.gz 因此解壓出來後就一個backup-my.cnf文件,多謝跛腿的狐狸 的指點,使用-i這個參數,即:tar -izxvf full_bak.tar.gz解壓出來後就是全是備份的文件和目錄了。這個參數的解釋以下:-i, --ignore-zeros 忽略歸檔中的零字節塊(即文件結尾) shell