使用gtid部署主从
备份主库:
/opt/xtrabackup247/bin/innobackupex --defaults-file=/home/middle/mysql57/conf/my.cnf --user=ubackup --password=mypasswd --socket=/tmp/mysql.sock --stream=tar /tmp|gzip >/home/mysqlbak/tmpfile/myfullbak.tar.gz
1.将备份文件拷贝到恢复的机器上
scp myfullbak.tar.gz root@192.168.1.120:/home/middle/tmpfile/
2.目标机器上解压(大概10分钟)
[root@bigdbslave-010007081127 tmpfile]# tar -xvf myfullbak.tar.gz
或是用脚本后台执行,脚本tar.sh内容如下
#!/bin/bash
cd /home/middle/tmpfile/
tar -xvf myfullbak.tar.gz
nohup ./tar.sh > tar.out 2>&1 &
删除掉原始加压文件
[root@bigdbslave-010007081127 tmpfile]# rm myfullbak.tar.gz
3.停掉原来的数据库
systemctl stop mysql
systemctl status mysql
或是使用命令停掉
/home/middle/mysql57/bin/mysqladmin -h localhost -uroot -P13306 -pmypasswd shutdown
4.创建备份新的数据库目录
[root@bigdbslave-010007081127 mysql57]# cd /home/middle/mysql57
[root@bigdbslave-010007081127 mysql57]# mv data bakdata
同时创建新的目录
[root@bigdbslave-010007081127 mysql57]# mkdir data
5.日志回滚
/opt/xtrabackup247/bin/innobackupex --defaults-file=/home/middle/mysql57/conf/my.cnf --user=root --apply-log /home/middle/tmpfile
6.拷贝文件到数据目录
/opt/xtrabackup247/bin/innobackupex --defaults-file=/home/middle/mysql57/conf/my.cnf --user=root --copy-back --rsync /home/middle/tmpfile
7.修改权限
[root@localhost /]# cd /home/middle
[root@localhost opt]# chown -R mysql:mysql ./mysql57
8.启动从库
systemctl start mysql
或是使用如下命令启动
su - root
/home/middle/mysql57/bin/mysqld_safe --defaults-file=/home/middle/mysql57/conf/my.cnf --user=mysql &
9.部署同步
/home/middle/mysql57/bin/mysql -h localhost -uroot -P13306 -p
mysql> reset slave;
mysql> reset master;
mysql> set global gtid_purged='20c37c3a-a2aa-11eb-9a6b-fa163e89c1d3:1-23047885'; ##xtrabackup_info中的GTID of the last change '20c37c3a-a2aa-11eb-9a6b-fa163e89c1d3:1-23047885'
mysql> select * from mysql.gtid_executed;
查询是否与xtrabackup_info记录的一致
查询gtid情况
show global variables like '%gtid%';
10.启动从库
change master to master_host='192.168.1.10',master_user='replsync',master_password='mypasswd',master_port=13306,master_auto_position=1;