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