为什么要使用xtarbackup?
mysqldump备份数据库的时候,会锁库锁表,导致业务服务的暂时停滞,数据库数量小还没有感觉,当数据超过几个G的时候,使用mysqldump会严重影响服务器性能,阻塞mysql访问,明显影响一段时间业务。
xtrabackup直接读取磁盘中物理数据进行备份,不会锁库锁表,不会影响事物一致性,备份快,恢复快。生产环境中大数据量数据库建议使用。
xtarbackup安装
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm -y
yum install libev -y
yum install percona-xtrabackup-24 -y
xtrabackup备份数据库
备份数据库文件:
xtrabackup --backup --datadir=/data/mysql3306 --target-dir=/data/dbback/`date +%F` -uroot -p'passwd
datadir为my.cnf中配置的datadir,target-dir可自行指定
初始化数据库文件:
xtrabackup --prepare --target-dir=/data/dbback/`date +%F`
打包数据文件:
cd /data/dbback && tar zcf `date +%F`.tar.gz `date +%F`
xtrabackup恢复数据库
停掉新建的mysql
解压压缩包,把压缩包中所有的内容rsync到mysql的数据目录中(PS:删除数据文件的动作可替换为mv,或者cp一份)
rsync -avrP /data/dbback/2017-06-12/* /data/mysql3306/
chown -R mysql:mysql /var/lib/mysql (启动前请反复确认目录属主是否为mysql,目录权限是否为755。)
启动mysql。
数据库主从同步
数据库文件初始化后,文件夹中有一个文件xtrabackup_binlog_pos_innodb,可通过这个文件中记录的binglog以及位置点进行主从同步