基于galera cluster集群实现mysql数据库的高可用

一、galera cluster 简介

1、Galera Cluster:

    集成了Galera插件的MySQL集群,是一种新型的,数据
不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分
别是Percona Xtradb Cluster及MariaDB Cluster,Galera本身是具有多
主特性的,即采用multi-master的集群架构,是一个既稳健,又在数据一
致性、完整性及高性能方面有出色表现的高可用解决方案。

       如下图图示:三个节点组成了一个集群,与普通的主从架构不同,
它们都可以作为主节点,三个节点是对等的,称为multi-master架构,
当有客户端要写入或者读取数据时,连接哪个实例都是一样的,
读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步
到其它节点上面,这种架构不共享任何数据,是一种高冗余架构。

基于galera cluster集群实现mysql数据库的高可用

2、特点

  • 多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的。
  • 同步复制:集群不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失
  • 并发复制:从节点APPLY数据时,支持并行执行,更好的性能
  • 故障切换:在出现数据库故障时,因支持多点写入,切换容易
  • 热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少。在节点故障期间,节点本身对集群的影响非常小
  • 自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,Galera Cluster会自动拉取在线节点数据,最终集群会变为一致
  • 对应用透明:集群的维护,对应用程序是透明的

3、工作流程图

基于galera cluster集群实现mysql数据库的高可用

4、Galera Cluster包括两个组件

  • Galera replication library (galera-3)
  • WSREP:MySQL extended with the Write Set Replication
    WSREP复制实现:percona-cluster MariaDB-Cluster

二、实验环境

1、准备好3台虚拟主机,centos7系统,配置好epel源

2、vim dvd.repo加入下面的仓库

[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-5.5.60/yum/centos7-amd64/
gpgcheck=0

3、直接yum安装

yum install MariaDB-Galera-server

三、实验步骤

1、修改配置文件,三个节点一样

vim /etc/my.cnf.d/server.cnf

wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.190.129,192.168.190.130.192.168.190.131"
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
下面配置可选项
wsrep_cluster_name = ‘mycluster‘默认my_wsrep_cluster
wsrep_node_name = 'node1'
wsrep_node_address = ‘192.168.190.129'

2、首次启动时,需要初始化集群,在其中一个节点上执行命令:

/etc/init.d/mysql start --wsrep-new-cluster

3、正常启动其它节点

service mysql start

4、查看集群中相关系统变量和状态变量:

SHOW VARIABLES LIKE 'wsrep_%';

基于galera cluster集群实现mysql数据库的高可用

SHOW STATUS LIKE 'wsrep_%';

基于galera cluster集群实现mysql数据库的高可用

SHOW STATUS LIKE 'wsrep_cluster_size';

基于galera cluster集群实现mysql数据库的高可用

猜你喜欢

转载自blog.51cto.com/11912662/2155443