首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL 复制全解析 Part 11 使用xtrabackup建立MySQL复制

MySQL 复制全解析 Part 11 使用xtrabackup建立MySQL复制

作者头像
bsbforever
发布2020-08-18 15:47:52
发布2020-08-18 15:47:52
90600
代码可运行
举报
运行总次数:0
代码可运行

前情提要

MySQL复制全解析 Part 1 实验环境介绍

MySQL复制全解析 Part 2 一步步搭建基于二进制文件位置的MySQL复制

MySQL复制全解析 Part 3 MySQL半同步复制设置

MySQL 复制全解析 Part 4 使用备库搭建MySQL复制

MySQL复制全解析 Part 5 MySQL GTID的格式和存储

MySQL复制全解析 Part 6 MySQL GTID 生命周期

MySQL复制全解析 Part 7 gtid_next和gtid_purged系统变量解析

MySQL复制全解析 Part 8 GTID Auto-Positioning

MySQL 复制全解析 Part 9 一步步搭建基于GTID的MySQL复制

MySQL 复制全解析 Part10 基于GTID的MySQL复制的一些限制

实验环境

此次实验的环境如下

  • MySQL 5.7.25
  • Redhat 6.10
  • 操作系统账号:mysql
  • 数据库复制账号:repl
  • 复制格式:基于行的复制

IP地址

主从关系

复制账号

复制格式

11.12.14.29

主库

repl

Row-Based

11.12.14.30

从库(半同步)

repl

Row-Based

这节我们的内容为MySQL的复制,MySQL复制有两种形式

  • 基于二进制日志文件位置
  • 基于GTID

前面我们已经说完了两种形式的搭建方式,其中备份数据库使用的是mysqldump工具

如果碰到非常大数据库,使用mysqldump进行备份还原是很缓慢的,这时可以使用xtrabackup进行备份和还原

针对xtrabackup我们已经在上一期中说过了,有兴趣的可以去了解

本节内容只针对需要修改的阶段进行说明,其他阶段不变

1. 备份主库阶段

这里我们通过xtrabackup工具进行备份,而不是使用mysqldump

代码语言:javascript
代码运行次数:0
运行
复制
innobackupex  -S /oradata/data/mysql/data/mysql.sock --user=backup --password=123456   /oradata/data/mysql/xtra

备份完成在备份目录下有xtrabackup_binlog_info文件

该文件有所需的二进制文件位置及GTID信息

2. 拷贝备份文件至备库

代码语言:javascript
代码运行次数:0
运行
复制
scp -r /oradata/data/mysql/xtra/2019-06-26_15-03-50 root@11.12.14.30:/oradata/data/mysql/xtra/
代码语言:javascript
代码运行次数:0
运行
复制
chown -R mysql:mysql /oradata/data/mysql/xtra/2019-06-26_15-03-50

3.还原从库阶段

这里我们使用xtrabackup工具进行还原,而不是使用mysqldump

代码语言:javascript
代码运行次数:0
运行
复制
innobackupex --apply-log --use-memory=1G  /oradata/data/mysql/xtra/2019-06-26_15-03-50 

关闭数据库清空数据文件目录后执行copy-back

代码语言:javascript
代码运行次数:0
运行
复制
innobackupex --copy-back  /oradata/data/mysql/xtra/2019-06-26_15-03-50

4. 开启同步

这里根据备份文件的xtrabackup_binlog_info文件的内容进行同步

也可通过datadir目录下的xtrabackup_info文件查看

4.1 基于二进制文件位置

代码语言:javascript
代码运行次数:0
运行
复制
mysql> change master to master_host='11.12.14.29', master_user='repl', master_password='rpl',master_log_file='mysql-bin.000002',master_log_pos= 185333118;
代码语言:javascript
代码运行次数:0
运行
复制
mysql > start slave;

4.2 基于GTID的复制

代码语言:javascript
代码运行次数:0
运行
复制
mysql> reset master;
代码语言:javascript
代码运行次数:0
运行
复制
mysql>set  @@GLOBAL.GTID_PURGED='e99ae99a-811d-11e9-9ca2-0050568cef02:1-59387'
代码语言:javascript
代码运行次数:0
运行
复制
mysql> change master to master_host='11.12.14.29', master_user='repl', master_password='rpl',master_auto_position = 1;
代码语言:javascript
代码运行次数:0
运行
复制
mysql> start slave

5. 参考资料

http://www.zhaibibei.cn/mysql/tutorial/

觉得文章不错的欢迎关注,转发,收藏~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验环境
  • 1. 备份主库阶段
  • 2. 拷贝备份文件至备库
  • 3.还原从库阶段
  • 4. 开启同步
    • 4.1 基于二进制文件位置
    • 4.2 基于GTID的复制
  • 5. 参考资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档