利用XtraBackup对MGR集群进行扩容
运行了一段时间以后MGR集群,需要扩容节点,这是一个常见的需求。很多时候我们都喜欢用mysqldump工具来进行,因为这个工具有一个很好用的参数叫做master-data以及single-transaction,可以轻松的获取一致性备份。但是这个备份工具速度慢,无论导入导出速度都很慢,对于一个运行已久的系统来说并不现实,而且导出的文件会很大。
对此我们可以利用xtrabackup工具来进行集群的扩容。
首先我们对primary节点进行一次全量备份,这是备份脚本(假设新节点的域名叫做node-new,且ssh互信已完成):
#!/bin/bash
lsn_dir=/root/script/full
dest_dir=/tmp/full
# 删除原先的备份信息
rm -rf ${lsn_dir}/*
ssh root@node_new "rm -rf ${dest_dir/*}"
# 利用流式备份完成全量备份
xtrabackup --backup \
--user=bkpuser \
--password=P@ssw0rd! \
--socket=/usr/local/mysql/mysql.sock \
--extra-lsndir=${lsn_dir} \
--stream=xbstream \
--compress | ssh root@node-new "xbstream -x -C /tmp/full"
这个脚本执行完成之后,备份集就会在目标节点的/tmp/full目录下了。此时新节点上的datadir应该是空的,保证备份能够正常恢复。
此时执行这些命令进行还原:
# 备份是压缩的,要用qpress解压,确认qpress在本机的/usr/bin目录下
innobackupex --decompress /tmp/full
# 准备备份集
xtrabackup --prepare --apply-log-only --target-dir=/tmp/full
# 复制备份集到数据目录
xtrabackup --copy-back --target-dir=/tmp/full
# 启动mysql
chown -R mysql.mysql /usr/local/mysql/data
systemctl start mysqld
备份集中有一个文件叫做xtrabackup_info,里面有一个项目叫做binlog_pos,注意这项,记录下里面的GTID。
正常启动MySQL之后,就可以开始进行一些配置:
set sql_log_bin=0;
reset master;
set global gtid_purged='刚才记录下的GTID';
start group_replication;
方法比较简单,总结下来最重要的一点就是要获得一致性备份,利用这个一致性备份快速的部署一台节点。
在有的资料上还会提及要在新节点上执行change master语句,其实是不需要的,因为我们之前的步骤中已经手动指定了gtid_purged,只需要在这个GTID之后开启复制即可。
本文参考了下面链接中的思路:
如何优雅地添加MGR节点
利用XtraBackup对MGR集群进行扩容的更多相关文章
- 利用MySQL Router构建读写分离MGR集群
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 部署MySQL Router 2. 启动mysqlrouter服务 3. 确认读写分离效果 4. 确认只读负载 ...
- 4. 利用MySQL Shell安装部署MGR集群 | 深入浅出MGR
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4 ...
- 有事务冲突时节点怎么加入MGR集群
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 问题场景描述 2. 如何修复 2.1 找出事务差异点 2.2 决定如何处理 3. 小结 文章推荐: 关于 Gr ...
- 3. 安装部署MGR集群 | 深入浅出MGR
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 初始化MySQL Server 3. 初始化MGR第一个节点 4. 继续设置另外两个节点 5. ...
- 在Docker中部署GreatSQL并构建MGR集群
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 为了方面社区用户体验GreatSQL,我们同时还提供Docker镜像,本文详细介绍如何在Docker中部署GreatSQL ...
- 多云部署多主模式的MGR集群,每个云一个MGR 节点,满足业务单元化改造的需求
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本 ...
- mysql 的mgr集群
mysql 的mgr集群 http://wubx.net/mgr%E7%9B%91%E6%8E%A7%E5%8F%8A%E4%BC%98%E5%8C%96%E7%82%B9/ MGR调优参数因为基本复 ...
- laravel项目利用twemproxy部署redis集群的完整步骤
Twemproxy是一个代理服务器,可以通过它减少Memcached或Redis服务器所打开的连接数.下面这篇文章主要给大家介绍了关于laravel项目利用twemproxy部署redis集群的相关资 ...
- Elasticsearch集群如何扩容机器?
前提, Elasticsearch-2.4.3的3节点安装(多种方式图文详解) 比如,你已经成功搭建了3台机器的es集群,如我这里分别是192.168.80.10.192.168.80.11.19 ...
- MySQL MGR集群搭建
本文来自网易云社区,转载务必请注明出处. 本文将从零开始搭建一个MySQL Group Replication集群,包含3个节点.简单介绍如何查询MGR集群状态信息.并介绍如何进行MGR节点上下线操作 ...
随机推荐
- metal invalid pixel format xx
这个时候要考虑CAMetalLayer.pixelFormat是否设置设置正确,虽然MTLPixelFormat有很多枚举值,但是CAMetalLayer支持的也就只有五个: MTLPixelForm ...
- 你了解Vim的增删改查吗 ?
增: 在Vim的Normal模式中输入A/I/O,a/i/o字符进行对应的增加操作. 删 在Vim的Normal模式中, 输入x 删除光标对应的一个字符(4x代表删除4个字符): 输入dd删除光标所在 ...
- Freertos学习:04-任务的调试函数
--- title: rtos-freertos-04-任务的调试函数 EntryName: rtos-freertos-04-task-debug date: 2020-06-22 08:49:06 ...
- 【冷启动#1】实用的MySQL基础
简单安装一下MySQL Windows下(5.7.x) 本体安装 1.首先先下载安装包,名字如下: mysql-5.7.19-winx64.zip 2.配置环境变量,将解压之后的bin目录添加一下 3 ...
- 如何合理开发Java接口(安全性,可重复调用,稳定性,追溯性)
一.接口开发规范 签名:对外提供的接口要做签名认证,认证不通过的请求不允许访问接口.提供服务. 加密:敏感数据在网络传输过程中应该加密. IP白名单:限制请求的IP,增加IP白名单,一般在网关层处理. ...
- SpringBoot如何解决跨域问题
什么是跨域 跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据. 跨域三种情况 在发起请求时,如果出现了以下情况中的任意一种,那么它就是跨域请求: ...
- Python获得操作日志的最后几行记录
该方法一般用于获得操作日志的最后几行记录 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 f = open('seek.txt', 'rb') 4 ...
- 洛谷P1095
[NOIP2007 普及组] 守望者的逃离 题目背景 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变. 题目描述 守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上. ...
- 火山引擎数智平台赋能火花思维,A/B测试加速创新
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群. 在数字化浪潮下,火花思维凭借其对数据驱动的理解与实践,搭上了业务快速增长的快车.这一效果的背后,离不开火花思 ...
- 妙趣横生:利用Echarts实现SpreadJS引用从属关系的可视化魅力
最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 在金融行业,我们经常会有审计审查的需求,对某个计算结果进行审查,但是这个计算结果可能依赖多个单 ...