1说明
简介:本方法可在不停止主库,不锁表的情况下,快速完成超大从库的重建
环境:以下代码的环境为Centos 6.x,其他环境请自行查询对应的安装包。
原理:innobackupex可在不影响主库正常运行的情况下,进行物理备份(mysqldump为逻辑备份,速度慢很多,对于巨额数据量备份简直是灾难),配合压缩神器pigz进行传输,备份速度变得更快!
2具体实例
2.1软件安装
主从库都需要安装好相同的mysql版本及innobackupex,pigz
2.1.1导入文件
(1)安装innobackupex时的依赖包:perl-DBD-MySQL-4.013-3.el6.x86_64.rpm, libev-4.03-3.el6.x86_64.rpm
(2)压缩神器:pigz-2.3.4.tar.gz
2.1.2安装pigz
#wget http://zlib.net/pigz/pigz-2.3.4.tar.gz
tar -xvzf pigz-2.3.4.tar.gz
cd pigz-2.3.4
make
cd ..
mv pigz-2.3.4 /usr/local/
ln -s /usr/local/pigz-2.3.4/pigz /usr/bin/
ln -s /usr/local/pigz-2.3.4/unpigz /usr/bin/
2.1.3安装innobackupex
#wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.3/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.3-1.el6.x86_64.rpm
rpm -ivh perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
rpm -ivh libev-4.03-3.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.3-1.el6.x86_64.rpm
2.2具体命令
说明:确保导出数据前,主库已开启二进制日志
2.2.1主库导出并传输到从库:
2.2.1.1从库操作:
mv /home/mysql/data/ /home/mysql/data_bak/ #备份mysql原数据文件夹
mkdir /home/mysql/data/ #mysql的数据文件夹
chmod -R 777 /home/mysql/data/ #保证主库对此文件夹(从库)有权限,可忽略此命令
2.2.1.2主库操作
#如数据量大,建议在screen下执行导出命令
yum -y install screen
screen -R mysql_backup
mkdir /home/mysql/backup
innobackupex --user=backup --password=*** --stream=xbstream --defaults-file=/usr/local/mysql/data/3306/my.cnf --socket=/usr/local/mysql/tmp/3306/mysql.sock --parallel=2 --tmpdir=/home/mysql/backup /home/mysql/backup 2>>/home/mysql/backup/xbstreambackup.log | pigz -2 -p 6 -c | ssh -p 9922 mysql@10.32.59.207 "unpigz |xbstream -x -C /home/m