共计 2610 个字符,预计需要花费 7 分钟才能阅读完成。
MySQL 版本是 5.7.17
操作系统是CentOS 7
MySQL 数据目录:/alidata1/mysql
MySQL 备份目录:/alidata1/backup/full_mysql
在 master 及 slave 机器安装 xtrabackup 软件
- [root@iz2ze6jo3o3bqbcongnypqz 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_64
- rsync is needed by percona-xtrabackup-24-2.4.9-1.el7.x86_64
libev.so.4()的解决 到下面这里下载操作系统对应的版本,本例下载的是 libev-4.15-7.el7.x86_64.rpm
- http://rpmfind.net/linux/rpm2html/search.php?query=libev.so.4%28%29%2864bit%29&submit=Search+...&system=&arch=
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 /alidata1/backup/full_mysql –no-timestamp
在 slave 机器操作
1、停止 mysql, 删除或者重命名 Mysql 数据目录
- systemctl stop mysqld.service
- rm -rf /alidata1/mysql/data
- rm -rf /alidata1/mysql/redolog
2、应用日志及数据库还原
- innobackupex –defaults-file=/etc/my.cnf –apply-log /alidata1/backup/full_mysql
- innobackupex –defaults-file
=
/
- etc
/
- my
.
- cnf –copy-back
/
- alidata1
/
- backup
/
- full_mysql
3、修改数据目录的宿主权限
- chown -R mysql:mysql /alidata1/mysql
4、启动 mysql
- systemctl start mysqld.service
5. 过滤掉已执行过的 gtid
- cat /alidata1/backup/full_mysql/xtrabackup_info |grep binlog_pos
- [root@iz2ze6jo3o3bqbcongnyppz full_mysql]# cat /alidata1/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;
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149570.htm
正文完
星哥玩云-微信公众号