文档章节

galera cluster数据备份

bupt晶
 bupt晶
发布于 2015/12/23 16:02
字数 1178
阅读 724
收藏 6

可以用标准的数据库备份方法来备份cluster的节点数据。但这样的方法缺少GTID,这种备份也无法把节点恢复到预定的状态。此外,一些备份程序运行时可能会阻断集群操作。联合GTID来备份需要另外的途径。

状态快照转移作为备份

做一个完整的数据备份和通过state snapshot transfer做一个节点的备份是非常相似的。两种情况下,节点都使用相同的机制,来联合GTID和database状态来创建一个库内容的全备份。为启用此备份特性,需要一个脚本来实现想要的备份过程和galera仲裁者守护进程,触发的方式类似于快照转移

$ garbd --address gcomm://192.168.1.2?gmcast.listen_addr=tcp://0.0.0.0:4444 \  --group example_cluster --donor example_donor --sst backup

这条命令触发了供体节点来调用wsrep_sst_backup.sh脚本,这个脚本是mysqld进程通过PATH来找的。当供体节点到达no change are happening to the database的明确界定的点时,就会跑这个备份脚本,传递GTID给相应的当前库状态。

命令中,‘gmcast.listen_addr=tcp://0.0.0.0:4444‘是一个仲裁监听socket地址,用来与cluster通讯的。 只需指定地址,0.0.0.0:4567是默认的

通过状态快照转移机制来调用buckups有以下几点好处:

1、节点可以在一个界定好的点来启动备份

2、节点把GTID和backup相关联

3、节点与cluster不同步,避免做备份时影响带宽性能,备份进程更不会阻断节点

4、cluster知道那个节点正在执行备份,就不会选这个节点做另一个节点的供体

脚本化的状态快照转移

当一个节点发送&接收一个状态快照转移(State Snapshot Transfer)时,是通过跑一个独立于database server的外部进程来管理它的。当你不满足于这些进程提供的默认操作时,galera cluster提供一个接口给用户shell 脚本来管理节点上的状态快照转移。

使用普通的SST脚本

Galera cluster包括一个普通脚本用于管理状态快照转移,你可以用它来作为创建自己脚本的基础起点。该脚本的文件名为wsrep_sst_common.sh。Linux下默认安装在/usr/bin。普通SST脚本提供解析参数列表、错误记录等的现成功能。并且没有对参数顺序和数量的约束,可以根据自身情况增加或忽略某些参数。

它假定只有在状态转移之后,接收节点的存储引擎初始化才进行。意味着它直接拷贝源数据内容到目的数据目录

状态转移脚本参数

当galera cluster启动一个外部进程做状态快照转移时,会传递一些参数来配置状态转移脚本

1.通用参数:这些参数所有的状态转移脚本都会用到,无论发送还是接受节点

--role:区别donor或joiner

--address:joiner的IP地址,joiner可以用wsrep_sst_receive_address这个参数来配

--auth:权限信息,可通过wsrep_sst_auth参数来配

--datadir:脚本所需的数据目录来源于mysql_real_data_home这个参数

--defaults-file:my.cnf的路径

2.donor特有的参数:这些参数只被用于donor

--gtid:节点给出的GTID来自于state UUID和sequence number或seqno

--socket:如果需要,可以配置本地server的socket用于通信

--bypass:节点用于甄别是否跳过实际数据的传输,只传递GTID,也就是说该节点是否应该启动增量状态传输

3.逻辑状态转移特有的参数:这些参数只被传递到发送和接收端的wsrep_sst_mysqldump.sh脚本中

--user:用来连接joiner和donor的数据库的用户,两边都应该一致,用wsrep_sst_auth参数来定义

--password:用来连接joiner和donor的数据库的用户,两边都应该一致,用wsrep_sst_auth参数来定义

--host:joiner的IP地址

--port:joiner的端口

--local-port:发送状态转移的端口

调用规则

receiver接收并应用transfer完成之后,会输出接受节点的标准GTID,退出脚本,返回状态0,说明状态转移成功

sende在完成传输后,会发送一个done\n的信号,当脚本收到这个信号之后,会返回0值退出

启动脚本化的SST

不管用默认的自带脚本,还是自己写脚本,启动的过程都是一样的。文件名必须是wsrep_sst_<name>.sh。name是wsrep_sst_methord参数的值


© 著作权归作者所有

bupt晶
粉丝 11
博文 5
码字总数 3816
作品 0
广州
数据库管理员
私信 提问
初识MariaDB之10——MariaDB Galera Cluster

一、背景介绍 无论是采用binlog或者GTID的方式,其本质都是通过I/Othread和sqlthread的形式进行的同步,因为无法避免复制延迟而饱受诟病,基于上述MariaDB引入了Galera Cluster来解决此问题。...

qiao645
2018/06/29
0
0
状态快照转移:一种MySQL Galera集群较优的备份方法

作者介绍 MySQL Galera Cluster是一套基于WSREP进行同步复制的集群解决方案,配置和使用相对简单,具有多节点同时提供读写、可用性高、强一致性和快速扩展的特点。由于它能够分担读写压力,且...

王晶
2016/09/01
0
0
mysql galera cluster集群的分裂与仲裁机制

集群的分裂 当集群由于网络原因分裂为几个单独的组时(一组可能是单节点,也可能是几个互联的节点),数据出现不一致,此时可能产生脑裂及数据不一致。这种情况下,只有一组节点能够继续提供...

bupt晶
2015/12/21
1K
0
mysql集群方案整理之Galera Cluster简介

Galera Cluster for MySQL是一套基于同步复制的多主MySQL集群解决方案。 原理: Galera本质是一个wsrep提供者(provider),运行依赖于wsrep的API接口。Wsrep API定义了一系列应用回调和复制...

落叶刀
2016/01/24
469
0
MySQL高可用——PXC简介

PXC简介: galera产品是以galera cluster方式为mysql提高高可用集群解决方案的。galera cluster就是集成了galera插件的mysql集群。galera replication是codership提供的mysql数据同步方案,具...

一个笨小孩
2018/07/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot+jpa 错误信息org.springframework.beans.factory.BeanCreationException

报错信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/a......

冥焱
4分钟前
0
0
威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟

近日,阿里云安全发现了一个使用未授权访问漏洞部署恶意Docker镜像进行挖矿的僵尸网络团伙。我们给这一团伙取名为Xulu,因为该团伙使用这个字符串作为挖矿时的用户名。 Xulu并不是第一个攻击...

迷你芊宝宝
11分钟前
0
0
十大经典排序算法动画与解析

排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部排序和外部排序。 内部排序是数据记录在内存中进行排序。 而外部排序是因排序的数据很大,一次不能容纳全部的排序记...

夜黑人模糊灬
14分钟前
2
0
7. java枚举

1. 枚举是什么 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便 2. 为什么不用静态常量来替代枚举类呢? 3. 常用方式 3.1 方式1 枚举类: package cn.ali.tencent...

20190513
15分钟前
0
0
elasticsearch – 弹性搜索:“Term”,“Match Phrase”和“Query String”之间的差异

术语查询匹配单个术语,因为它是:不分析值。 所以,它不必根据你索引的情况而降低。 如果您在索引时间提供Bennett并且未分析该值,则以下查询将不返回任何内容: { "query": { "te...

xiaomin0322
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部