galera cluster集群

galera cluster

继承了galera插件的mysql集群,是一种新型的,数据不共享的,高度冗余的高可用方案。
目前有两个版本

percona xtradb cluster
mariadb cluster

  galera本身是具有多主特性的,即采用multi-master的集群架构,是一个即稳健,又在数据一致性、完整性及高性能方面有出色表现的高可用解决方案

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


galera cluster特点

多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的

同步复制:集群不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失

并发复制:从节点apply数据时,支持并行执行,更好的性能

故障切换:从节点数据库故障时,因支持多点写入,切换容易

热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少,再借点故障期间,节点本身对集群的影像非常小

自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,galera cluster会自动拉取在线节点数据,最终集群会变为一致

对应用透明:集群的维护,对应用是透明的

galera cluster官方文档:

https://galeracluster.com/documentation-webpages/galera-documentation.pdf
https://galeracluster.com/documentation-webpages/documentation/index.html
https://mariadb.com/kb/en/library/getting-started-with-mariadb-galera-cluster/

注意:galera cluster是专用于集群的数据库,和普通的mariadb和mysql不同,但是都使用的3306端口,会冲突,
如果安装了mariadb或mysql,就需要卸载

安装实现

1)配置yum仓库,在三个节点上都需要安装

cat > /etc/yum.repos.d/mysql.repo <<EOF
[mysql]
baseurl=http://ftp.hosteurope.de/mirror/archive.mariadb.org//mariadb-5.5.63/yum/centos
7-amd64/
gpgcheck=0
EOF	

# 刷新缓存
yum clean all
yum repolist

注意:在URL中的mariadb-5.5.63后面的最小版本63是会更新变化得,如果连接不上,就到mariadb的官网查看一下它的5.5版本中的最小版本号更新到了多少,然后根据官网的最小版本改了你的yum源就可以使用了

2)安装:

yum install MariaDB-Galera-server -y

3)查看包括哪些文件:

rpm -ql MariaDB-Galera-server

/etc/init.d/mysql	:安装后的启动脚本,不是systemd管理的service文件
/etc/my.cnf.d/server.cnf	:galera cluster的主配置文件

4)编辑介绍主配置文件/etc/my.cnf.d/server.cnf
必配的几项

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

[galera]
# Mandatory settings
#以下此项指出galera cluster的模块
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
# 使用 rpm -ql galera 命令找出需要的模块,/usr/lib64/galera/libgalera_smm.so
	
# 以下此项指出galera cluster的成员IP地址,有特定格式
wsrep_cluster_address="gcomm://192.168.40.7,192.168.40.17,192.168.40.27"

# 指出二进制记录方式
binlog_format=row
	
# 以上三项是必配,下面的可默认
	
# 集群的名字,默认为my_wsrep_cluster
wsrep_cluster_name='mycluster' 

#默认引擎
#default_storage_engine=InnoDB
#锁机制
#innodb_autoinc_lock_mode=2
#DNS地址
#bind-address=0.0.0.0

5)因为所有的配置都是一样的,所以可直接将配置文件拷贝到另外的集群中的主机

scp /etc/my.cnf.d/server.cnf 192.168.40.17:/etc/my.cnf.d/
scp /etc/my.cnf.d/server.cnf 192.168.40.27:/etc/my.cnf.d/

6)准备启动,按提示启动
首次启动,需要初始化集群,在其中任意一个节点上执行以下命令

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

... SUCCESS! 	出现这个字段说明成功
	
而後正常启动其他节点
service mysql start

... SUCCESS! 	出现这个字段说明成功

7)登录数据库查看集群相关变量

show variables like 'wsrep%'\G	:可以看到集群中的主机IP和自己定义的名字等
show status like 'wsrep%';		:运行状态信息
show status like 'wsrep_cluster_size';	:说的是集群中的主机数量

8)测试
右击CRT创建最下边边框打开交互窗口
在这里插入图片描述
再次右击选中发送交互到所有会话,输入命令测试
在这里插入图片描述
在这里插入图片描述

执行命令时随机的,设备会自己判断哪台性能好一点就会跑到那个设备上执行命令,其他主机则显示已经存在,不予创建,避免冲突实现

在这里插入图片描述

galera cluster的缺点
  在执行存储过程的时候会很慢,比普通主从复制时要慢很多,因为每执行一条语句就要测试集群中是否有相同的记录,所以会慢很多,普通主从复制只是测试本机是否有相同的记录。

发布了63 篇原创文章 · 获赞 0 · 访问量 2218

猜你喜欢

转载自blog.csdn.net/qq_43058911/article/details/103081795