--slave-info
备份从库, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0
--socket=SOCKET
指定mysql.sock所在位置,以便备份进程登录mysql.
--safe-slave-backup
则会暂停Slave的SQL线程,等待到没有打开的临时表的时候开始备份.备份结束后SQL线程会自动启动,这样就可以确保一致性的复制状态.
只备份不压缩:
xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup--target-dir=/data/backups/mysql/$(date +%Y%m%d)/
?
备份压缩:
xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup? ? --socket=/usr/local/mysql/mysql.sock--stream=tar --target-dir=/data/backups/mysql/$(date +%Y%m%d)/ |gzip >alldbfullbackup.tar.gz
参考:http://www.percona.com/doc/percona-xtrabackup/2.2/howtos/recipes_ibkx_compressed.html
?
备份过程如下所示:
?
?
?
PS1:可以用gzip边备份边压缩,不过推荐是备份完了之后对整个备份目录进行压缩。
?
先删除测试表数据:
?
?
进行恢复
xtrabackup --defaults-file=/etc/my.cnf--prepare --target-dir=/data/backups/mysql/20150318
停止msyql数据库
service mysqld5612 stop
复制已经恢复好的文件到mysql数据目录并且赋予mysql账号执行权限
cd /data/backups/mysql/20150318
rsync -rvt --exclude'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile'? ./ /home/data/mysql/data
chown -R mysql:mysql /home/data/mysql/data
启动mysql数据库
service mysqld5612 start
?
恢复完毕,check表t1数据,数据恢复回来了:
?
?
?
PS2:?xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm)。如下所示,只备份了*.ibd文件,如下所示:
?