MySQL 采用Xtrabackupex进行全库备份过程汇总(二)

2015-04-07 14:10:29 · 作者: · 浏览: 125
backup,xtrabackup还没有实现该功能;


--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文件,如下所示:


?