暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

xtrabackup8.0+主从复制

原创 冯晓宇 2022-04-13
1213

背景介绍:
主库10.0.0.51
从库10.0.0.52
MySQL版本:8.0.16
主从服务器共享盘:data01

搭建思路:
因生产环境不可关闭MySQL数据库备份且数据量较大,所以使用备份工具xtrabackup压缩成stream格式,将数据备份到主从服务器之间挂载的共享盘上,再将数据恢复至从库服务器。

主要步骤:
1、安装xtrabackup(主从节点都安装)
cd /usr/local/
tar xf percona-xtrabackup-8.0.14-Linux-x86_64.glibc2.12.tar.gz

2、全备主库数据(主库执行)
/usr/local/xtrabackup/bin/xtrabackup --defaults-file=/etc/my.cnf --user=root --password=密码 --host=127.0.0.1 --port=3306 --socket=/data/app/mysql/mysql.sock --compress --compress-threads=2 --stream=xbstream --backup --target-dir=/data01/backup20220412/ --parallel=2 2>/data01/backup20220412/20220412.log 1> /data01/backup20220412/20220412.xbstream

3、解压备份文件(从库执行,切记关闭数据库)
xbstream -x < 20220412.xbstream -C /data/backup20220412

4、安装qp解压软件(从库执行)
cd /usr/local/
tar xf qpress-11-linux-x64.tar
cp -a qpress /usr/bin/

5、解压备份数据并删除.qp文件
/usr/local/xtrabackup/bin/xtrabackup --parallel=4 --decompress --target-dir=/data/backup20220412/
find /data/backup20220412/ -name ‘*.qp’ -exec rm -f {} ;

6、准备恢复(redo进行前滚,undo进行回滚)
/usr/local/xtrabackup/bin/xtrabackup --user=root --password=密码 --prepare --target-dir=/data/backup20220412

7、修改数据目录
备份原MySQL数据目录mysqldate为mysql20220412.bak
将备份文件发送至MySQL目录下充当数据目录
mv /data/mysqldate /data/mysql20220412.bak
mv /data/backup20220412 /data/mysqldata

8、授权–根据数据文件目录授权
chown -R mysql.mysql /data/mysqldata
chown -R mysql.mysql /usr/local/mysql

9、启动MySQL(从库操作)
/usr/local/mysql/bin/mysqld_safe --user=mysql & 或 service mysqld start
/usr/local/mysql/bin/mysql -uroot -p密码

10、主库创建复制用户(主库操作–repl用户权限请自定义,请勿权限过大)
mysql> create user repl@’%’ identified by ‘密码’; grant all on . to repl@’%’;flush privileges;

11、从库建立复制准备(从库操作)
11.1 从库进入数据目录,查看xtrabackup_info文件,注意信息binlog_pos = filename 'mysql-bin.017725', position '2063', GTID of the last change 'f4859d1f-f82f-11e8-afbe-000c2999b048:1-382772'
11.2 可以根据相应的信息通过传统指定binlog和pos的方式,或者GTID的方式来配置主从复制,这里采用GTID的方式
mysql> show master status\G;(从库操作)
Executed_Gtid_Set: f4859d1f-f82f-11e8-afbe-000c2999b048:1-382765
mysql> reset master;
mysql> set @@global.gtid_purged=‘f4859d1f-f82f-11e8-afbe-000c2999b048:1-382772’;

12、构建主从(从库执行)
gtid方式:
mysql> CHANGE MASTER TO MASTER_HOST=‘10.0.0.51’,MASTER_USER=‘repl’,MASTER_PASSWORD=‘密码’,MASTER_PORT=3306,master_auto_position=1;start slave;show slave status\G;
postion方式:
mysql> CHANGE MASTER TO MASTER_HOST=‘10.0.0.51’,MASTER_USER=‘repl’,MASTER_PASSWORD=‘密码’,MASTER_LOG_FILE=‘mysql-bin.017725’,MASTER_LOG_POS=2063;

13、从库请只读
mysql> show global variables like “%read_only%”;
在线设置:
mysql> set global read_only=1;
mysql> set global super_read_only=1;
永久设置:请将参数同步到配置文件中

注:本案例中使用stream压缩格式,压缩比大概18:1,压缩备份时间1.6T数据备份2h,解压3h,prepare时间20min,时间仅供参考。

最后修改时间:2022-04-13 11:37:19
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论