环境:Centos6.5、MySQL5.7、XtraBackup2.4.13(经过测试、此版本适合MySQL5.7)
一、这里是先安装宝塔Linux5.9集成环境、之后再安装MySQL
# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
二、安装XtraBackup ,rpm方式安装
# yum install perl-Time-HiRes
# yum install -y perl-DBD-MySQL
# yum install -y perl-Digest-MD5
# yum install -y rsync
# yum install -y numactl-devel
# wget ftp://rpmfind.net/linux/atrpms/el6-x86_64/atrpms/stable/libev-4.04-2.el6.x86_64.rpm
# rpm -ivh libev-4.04-2.el6.x86_64.rpm
# wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.13/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.13-1.el6.x86_64.rpm
# rpm -ivh percona-xtrabackup-24-2.4.13-1.el6.x86_64.rpm
三、配置主从数据库
1、主库配置my.cnf
[mysqld]
#增加server-id 和 bin-log
server-id = 198
log-bin = mysql-bin
2、主库配置授权账号
mysql> grant replication slave on *.* to root@‘192.168.199.198’ identified by '51562e6f6d044223';
mysql> flush privileges;
3、从库配置my.cnf
[mysqld]
增加server-id 和 bin-log
server-id = 199
slave_skip_errors=1062 #1062是指跳过一些主键重复的错误
#如果需要在从库上做bin-log备份可以添加如下参数
log-bin = mysql-bin
log-slave-updates = 1
expire-logs-days=10
主从数据库都要重载配置
四、全量备份
[root@Centos]# xtrabackup --defaults-file=/etc/my.cnf --host=127.0.0.1 --user=root --password=51562e6f6d044223 --port=3306 --backup --target-dir=/www/backup/xtrabackup/
[root@Centos]# ls /www/backup/xtrabackup/
xtrabackup会把数据库datadir下的所有数据 文件都复制过来还新增了4个xtrabackup_开头的文件,xtrabackup_binlog_info这个录了做从库需要change到主库的binlog的位置和pos点
五、恢复数据到从库
1、停止从库 把主库备份文件拷贝到从库机器
[root@Centos]# scp -r xtrabackup/* root@192.168.2.199:/www/server/data
2、修改恢复文件权限
[root@Centos]# chown -R mysql:mysql /www/server/data
3、启动从数据库 确认数据是否恢复成功 登录从库,执行
mysql> show databases;
六、开启主从同步
1、确认同步的位置点 在从库上或者主库上都可以查看该信息,我们是在从库上查看
[root@Centos]# cat /www/server/data/xtrabackup_binlog_info
mysql-bin.000010 301846
2、配置从库 主从配置 (注意3306端口的开放) #登录从库并执行
mysql> change master to master_host='192.168.2.198', master_user='root', master_password='51562e6f6d044223', master_port=3306, master_log_file='mysql-bin.000010' , master_log_pos=301846, master_connect_retry=30;
3、开始同步
mysql> start slave;
4、查看同步状态
mysql> show slave status;
当Slave_IO_Running 与 Slave_SQL_Running 两项都为Yes时,代表主从配置成功。