Lachlan
发布于 2024-07-17 / 23 阅读
0

记一次MySQL大数据量实例搭建主从同步(xtrabackup)

  • 目的:10.4.1.1节点作为主库,10.4.1.2作为从库搭建主从。

  • 软件:

    • MySQL 5.7.24

    • pecona-xtrabackup-24-2.4.22-1.el7.x86_64.rpm

#步骤一:在10.4.1.1 MySQL实例上新建用于主从同步的用户。
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'%' IDENTIFIED BY 'Repl@123';

#步骤二:在10.4.1.1节点执行
xtrabackup --user='lachlan' --password='Password123%' --target-dir=/home/app/dbbackup/$(date +%Y-%m-%d) --backup --rsync --ftwrl-wait-timeout=600 --check-privileges 

#=====================================

#步骤三:可在10.4.1.1节点执行,也可将步骤一生成数据传输到10.4.1.2节点上执行。本文在10.4.1.1先prepare了。
xtrabackup --target-dir=/home/app/dbbackup/$(date +%Y-%m-%d)--prepare
#会打印关于gtid相关的字段,先记录方便后续搭建主从使用。

#=====================================

#步骤四:清除10.4.1.2 MySQL的数据目录下所有文件,传输prepare后的文件到该目录。
#在10.4.1.1节点执行scp传输到10.4.1.2的/home/app/mysql/下
scp -r /home/app/dbbackup/$(date +%Y-%m-%d)/* root@10.4.1.2:/home/app/mysql

#步骤五:在10.4.1.2上将传输后的文件全部更改属主属组为MySQL。
chown -R mysql:mysql /home/app/mysql

#步骤六: 在10.4.1.2的MySQL执行。
mysql> reset master;
mysql> reset slave all;
mysql> SET GLOBAL gtid_purged = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:x-xxxxxxxxxx';   #步骤三记录的gtid

mysql> change master to
    -> master_host='10.4.1.1'
    -> master_user='repl'
    -> master_password='Repl@123'
    -> master_port=3306
    -> master_auto_position=1;

mysql> start slave;
mysql> show slave status\G    #查询得知Slave_IO_Running和Slave_SQL_Running均为Yes即成功搭建。