MySQL版本是5.7.17
操作系统是CentOS 7
MySQL数据目录:/data/mysql
MySQL备份目录:/data/backup/full_mysql
在master及slave机器安装xtrabackup软件
[root@mysql innobackupex]# rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm warning: percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY error: Failed dependencies: libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.9-1.el7.x86_64 perl(DBD::mysql) is needed by percona-xtrabackup-24-2.4.9-1.el7.x86_64 perl(Digest::MD5) is needed by percona-xtrabackup-24-2.4.9-1.el7.x86_64rsync is needed by percona-xtrabackup-24-2.4.9-1.el7.x86_64
libev.so.4()的解决到下面这里下载操作系统对应的版本,本例下载的是libev-4.15-3.el7.x86_64.rpm
https://mirrors.aliyun.com/epel/7/x86_64/Packages/l/libev-4.15-3.el7.x86_64.rpm
perl(DBD::mysql)和perl(Digest::MD5),需要安装mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm,在安装包里找到即可
在master机器操作
1、在数据库创建备份账号
CREATE USER xtrabk@'localhost' IDENTIFIED BY 'onlyxtrabk!@#$'; GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT,Process ON *.* TO xtrabk@'localhost'; FLUSH PRIVILEGES;
2、备份主库
innobackupex --defaults-file=/etc/my.cnf --user=xtrabk --password='onlyxtrabk!@#$' --parallel=4 /data/backup/full_mysql --no-timestamp
在slave机器操作
1、停止mysql,删除或者重命名Mysql数据目录
systemctl stop mysqld.service rm -rf /data/mysql/data rm -rf /data/mysql/redolog
2、应用日志及数据库还原
innobackupex --defaults-file=/etc/my.cnf --apply-log /data/backup/full_mysql innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/full_mysql
3、修改数据目录的宿主权限
chown -R mysql:mysql /data/mysql
4、启动mysql
systemctl start mysqld.service
5、过滤掉已执行过的gtid
cat /data/backup/full_mysql/xtrabackup_info |grep binlog_pos [root@mysql full_mysql]# cat /data/backup/full_mysql/xtrabackup_info |grep binlog_pos binlog_pos = filename 'bin.000131', position '615481029', GTID of the last change 'c9c73c70-c089-11e7-8544-00163e0ad76e:1-107089934'
6、查看slave已执行的gtid是否为空,如果不为空,需要执行reset MASTER进行清理,否则无法设置gtid。
mysql> show master status \G; *************************** 1. row *************************** File: bin.000001 Position: 154 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: c9c73c70-c089-11e7-8544-00163e0ad76e:1-106016597 1 row in set (0.00 sec)
7、执行reset master
8、执行GTID_PURGED
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN; SET @@SESSION.SQL_LOG_BIN= 0; SET @@GLOBAL.GTID_PURGED='c9c73c70-c089-11e7-8544-00163e0ad76e:1-107089934'; SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
9、change master
change master to master_host='192.168.2.71', master_port=3306, master_user='repl', master_password='REPLsafe!@#$71', MASTER_AUTO_POSITION = 1;
10、start slave ;
11、show slave status\G;