--下载xtranbackup2.0.6,这里使用的是rpm安装
http://www.percona.com/redir/downloads/XtraBackup/XtraBackup-2.0.6/RPM/rhel5/x86_64/percona-xtrabackup-2.0.6-521.rhel5.x86_64.rpm
[root@tmg-73 soft]# rpm -ivh percona-xtrabackup-2.0.6-521.rhel5.x86_64.rpm
warning: percona-xtrabackup-2.0.6-521.rhel5.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID cd2efd2a
Preparing... ########################################### [100%]
1:percona-xtrabackup ########################################### [100%]
--xtrabackup 备份和恢复测试
--1 创建测试环境
mysql> use study
mysql> create table t1 as select * from mysql.user;
mysql> insert into t1 select * from t1;
mysql> exit
--2 执行备份
[root@tmg-73 soft]# xtrabackup --help
[root@tmg-73 soft]# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/home/mysql/data/temp
--3 关闭mysql 服务:
[root@tmg-73 temp]# mysqladmin shutdown
--4 删除数据文件和innodb log
[root@tmg-73 mysql]# rm ib
ibdata1 ib_logfile0 ib_logfile1
[root@tmg-73 mysql]# rm -rf ib*
--5 使用xtrabackup 恢复数据
[root@tmg-73 mysql]# xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/home/mysql/data/temp
-
-6 将生成的文件拷贝备份到/home1/mysql/data/mysql
[root@tmg-73 temp]# pwd
/home/mysql/data/temp
[root@tmg-73 temp]# cp ibdata1 /home1/mysql/data/mysql
[root@tmg-73 mysql]# chown mysql:mysql ibdata1
--使用innobackupex-1.5.1 备份和恢复
--innobackupex-1.5.1 工具是用PERL包装过的”xtrabackup“,他不旦可以备份INNODB,还可以备份MYISAM等非事务数据库;
[root@tmg-73 temp]# innobackupex-1.5.1 --help
[root@tmg-73 temp]# innobackupex-1.5.1 -user=root -password=zhong#123 -host=127.0.0.1 -port=3306 -slave-info -tmpdir=/home/mysql/data/temp -defaults-file=/etc/my.cnf /home/mysql/data/temp >/home/mysql/data/temp/xtrabk.log
注意:在备份过程中,把INNODB数据文件备份完成后,会锁住整个库,并开始复制MYISAM等非事务引擎的数据和.frm;
--3 关闭mysql 服务:
[root@tmg-73 temp]# mysqladmin shutdown
--4 删除数据文件和innodb log
[root@tmg-73 mysql]# rm * -rf
--5 使用xtrabackup 全量恢复
--1 应用日志
-- 这个过程主要是产生REDOLOG并将备份期间产生的REDO应用到数据文件中;
-- xtrabackup 会启动一个INNODB进程去做,与你当前在跑的不冲突
[root@tmg-73 mysql]# innobackupex-1.5.1 -apply-log /home/mysql/data/temp/2013-04-11_16-29-44/
--2 复制数据文件到数据目录
## 这个过程将恢复好的数据复制到my.cnf中指定的数据目录中。 这时你需要把原有的实例停掉
[root@tmg-73 mysql]# innobackupex-1.5.1 -copy-back /home/mysql/data/temp/2013-04-11_16-29-44/
--启动mysql服务报错,结果查看目录是root
[root@tmg-73 mysql]# ll
total 1379736
drwxr-xr-x 2 root root 4096 Apr 11 17:02 bak245
drwxr-xr-x 2 root root 4096 Apr 11 17:01 dbact
drwxr-xr-x 2 root root 4096 Apr 11 17:02 dbslave
-rw-r--r-- 1 root root 1411383296 Apr 11 17:02 ibdata1
drwxr-xr-x 2 root root 4096 Apr 11 17:01 mysql
-rw-rw---- 1 mysql mysql 0 Apr 11 17:03 mysql-bin.index
drwxr-xr-x 2 root root 4096 Apr 11 17:02 performance_schema
drwxr-xr-x 2 root root 40960 Apr 11 17:02 qunle20
drwxr-xr-x 2 root root 4096 Apr 11 17:01 study
drwxr-xr-x 2 root root 4096 Apr 11 17:01 test
-rw-rw---- 1 mysql root 868 Apr 11 17:03 tmg-73.err
-rw-r--r-- 1 root root 23 Apr 11 17:01 xtrabackup_binlog_pos_innodb
-rw-r--r-- 1 root root 72 Apr 11 17:01 xtrabackup_slave_info
[root@tmg-73 mysql]# chown mysql:mysql * -R
重新修改所属组,一切ok
--增量备份
--1,指定备份根目录
[root@tmg-73 mysql]# xtrabackup --defaults-file=/etc/my.cnf --backup --target-dir=/home/mysql/data/temp/incr01/ --incremental-basedir=/home/mysql/data/temp/2013-04-11_17-39-33/
--在/home/mysql/data/temp/incr01将产生一些.delta数据文件;
--恢复 (先恢复全量备份的日志)
--用增量备份加入全量数据
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/home/mysql/data/temp/2013-04-11_17-39-33/
xtrabackup --target-dir=/home/mysql/data/temp/2013-04-11_17-39-33/ --prepare --incremental-dir=/home/mysql/data/temp/incr01/
--应用日志
xtrabackup --defaults-file=/etc/my.cnf --prepare --target-dir=/home/mysql/data/temp/2013-04-11_17-39-33/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23073818/viewspace-758306/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23073818/viewspace-758306/