搜索
首页数据库mysql教程MySQL 多主多活 Galera 集群部署使用_MySQL

Galera是一款可以让MySQL同步复制的工具,实现真正的双主、多主,客户端连接到不同的MySQL实例进行读写操作就跟操作同一个实例一样,多个MySQL之间的数据是完全一致的。Galera主要是在保证数据一致性的前提下提高整体读的吞吐量,因此比MySQL自带主从方式更好。

 

Galera并没有分表分库功能,如果想要使用Galera,又想分表分库,可与Cobar结合使用,Cobar下如果使用Galara可以获得更高的可靠性,数据一致性,避免有些Cobar切换了主从,而另外一些没切换带来的数据不一致问题。

 

 

第一步:下载安装

 

使用galera时,还需要一个Galera库,官方下载地址是http://galeracluster.com/downloads/  。

Galera需要的MySQL/MariaDB版本有一个额外wsrep的补丁,因此不能直接用普通的版本。MySQL的版本可以从Galera的官网下载到,目前提供5.5和5.6两个版本。

MariaDB的版本可以从MariaDB的官网下载到https://downloads.mariadb.org/mariadb-galera/  ,MariaDB的10.0对应MySQL的5.6。

 

源码编译galera前需要安装的依赖库有boost,scons,check,openssl的开发版,您可根据自己的情况安装。galera使用scons安装,因此跟常规的命令不同,其实只要执行一个脚本即可。

 

$ scripts/build.sh

编译后在当前目录下生成libgalera_smm.so文件。

 

 

第二步:配置

 

Galera只需要在MySQL的配置文件my.cnf中增加几行wsrep相关内容即可

 

[mysqld]

# 配置前面编译出来的libgalera_smm.so文件路径

wsrep_provider  = /home/lyw/c2/galera-3-25.3.12/libgalera_smm.so

 

# 配置整个集群各实例的ip:port

wsrep_cluster_address   = 'gcomm://192.168.1.8:24011,192.168.1.8:24021,192.168.1.8:24031'

 

# 配置自己的ip:port,每个配置各不相同

wsrep_node_address      = '192.168.1.8:24011'

其他配置根据自己的情况配置。我这里配置了3个,my11.cnf,my21.cnf,my31.cnf。

 

 

第三步:初始化

 

初始化同MySQL一样,对每个数据库执行一下 mysql_install_db 脚本即可:

 

$ scripts/mysql_install_db --defaults-file=etc/my11.cnf

$ scripts/mysql_install_db --defaults-file=etc/my21.cnf

$ scripts/mysql_install_db --defaults-file=etc/my31.cnf

 

第四步:启动

 

前面配置的三台MySQL,我们先启动第一台,需要设置 --wsrep_cluster_address=gcomm:// 参数:

 

$ bin/mysqld_safe --defaults-file=etc/my11.cnf --wsrep_cluster_address=gcomm:// &

 

等待第一台启动成功后,我们启动后面两台,这个时候不需要上面的参数,实际上是使用了配置文件中的值:

 

$ bin/mysqld_safe --defaults-file=etc/my21.cnf  &

$ bin/mysqld_safe --defaults-file=etc/my31.cnf  &

这样就整个集群就启动好了,以后如果有某进程挂了,需要重启,就不需要加--wsrep_cluster_address参数。

 

 

第五步:测试

 

启动好后我们要测试下是否真的成功。我这里使用mysql客户端,您可使用自己喜欢的客户端工具,注意这里连接的端口是MySQL的端口,而不是上面Galera的端口。

$ bin/mysql -uroot -h127.0.0.1 -P14011
MariaDB [(none)]> create database lyw;

$ bin/mysql -uroot -h127.0.0.1 -P14021
MariaDB [(none)]> show databases like 'lyw';
+----------------+
| Database (lyw) |
+----------------+
| lyw            |
+----------------+
1 row in set (0.00 sec)

$ bin/mysql -uroot -h127.0.0.1 -P14031
MariaDB [(none)]> show databases like 'lyw';
+----------------+
| Database (lyw) |
+----------------+
| lyw            |
+----------------+
1 row in set (0.00 sec)

 

 

可见在一个库里作了一个操作,在其他库中也有了相同的修改,Galera启动成功。

我们也可以查看wsrep相关的参数判断是否启动成功:

 

MariaDB [(none)]> show variables like 'wsrep_on';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_on      | ON    |
+---------------+-------+

MariaDB [(none)]> show status like 'wsrep_connected';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| wsrep_connected | ON    |
+-----------------+-------+

MariaDB [(none)]> show status like 'wsrep_ready';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_ready   | ON    |
+---------------+-------+

 

wsrep_on 值为ON则说明启动成功。

wsrep_connected值为ON说明连接到了集群。

wsrep_ready值为ON说明已经准备好接受SQL请求了。该值最关键。

wsrep打头的参数都是跟galera相关的,其他的在使用中慢慢研究了。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
节点从Proxmox VE彻底撤离及再次加入集群节点从Proxmox VE彻底撤离及再次加入集群Feb 21, 2024 pm 12:40 PM

节点从ProxmoxVE彻底撤离及再次加入集群场景描述当ProxmoxVE集群中有节点损坏无法快速修复时,需要将故障节点干净的从集群踢出,并把残留信息清理干净。否则,新的节点用故障节点曾使用用的IP的地址将不能正常加入集群;同样,从集群中脱离出来的故障节点修复后,虽然与集群已经毫无关系,但访问此单节点的Web管理后台,将出现原ProxmoxVE集群其它节点的信息,非常恼火。从集群中驱逐节点如果ProxmoxVE是Ceph超融合集群,需要登录集群任意节点(欲删除节点除外)宿主系统Debian,命令

PHP高并发环境下数据库的优化方法PHP高并发环境下数据库的优化方法Aug 11, 2023 pm 03:55 PM

PHP高并发环境下数据库的优化方法随着互联网的快速发展,越来越多的网站和应用程序需要面对高并发的挑战。在这种情况下,数据库的性能优化变得尤为重要,尤其是对于使用PHP作为后端开发语言的系统来说。本文将介绍一些在PHP高并发环境下数据库的优化方法,并给出相应的代码示例。使用连接池在高并发环境下,频繁地创建和销毁数据库连接可能会导致性能瓶颈。因此,使用连接池可以

如何使用Docker进行多节点集群的管理和扩容如何使用Docker进行多节点集群的管理和扩容Nov 07, 2023 am 10:06 AM

在当今云计算时代,容器化技术已经成为开源界最受欢迎的技术之一。Docker的出现使得云计算变得更加便捷、高效,成为了开发人员、运维人员不可或缺的工具。而多节点集群技术的应用更是在Docker的基础上被广泛使用。通过多节点集群部署,我们可以更加有效地利用资源,提高可靠性和可扩展性,同时也能更加灵活地进行部署和管理。接下来,我们将为大家介绍如何使用Docker进

php常见的集群有哪些php常见的集群有哪些Aug 31, 2023 pm 05:45 PM

php常见的集群有LAMP集群、Nginx集群、Memcached集群、Redis集群和Hadoop集群。详细介绍:1、LAMP集群,LAMP是指Linux、Apache、MySQL和PHP的组合,是一种常见的PHP开发环境,在LAMP集群中,多个服务器运行相同的应用程序,并通过负载均衡器将请求分发到不同的服务器上;2、Nginx集群,Nginx是一种高性能的Web服务器等等。

如何使用MongoDB实现数据的集群和负载均衡功能如何使用MongoDB实现数据的集群和负载均衡功能Sep 19, 2023 pm 01:22 PM

如何使用MongoDB实现数据的集群和负载均衡功能引言:在当今大数据时代,数据量的快速增长对数据库的性能提出了更高的要求。为了满足这些要求,数据的集群化和负载均衡成为了不可或缺的技术手段。MongoDB作为一种成熟的NoSQL数据库,提供了丰富的功能和工具来支持数据的集群和负载均衡。本文将介绍如何使用MongoDB实现数据的集群和负载均衡功能,并提供具体的代

Workerman文档中的服务器集群实现方法Workerman文档中的服务器集群实现方法Nov 08, 2023 pm 08:09 PM

Workerman是一个高性能的PHPSocket框架,可以使PHP更加高效地处理异步网络通信。在Workerman的文档中,有关于服务器集群实现方法的详细说明和代码示例。为了实现服务器集群,首先需要明确服务器集群的概念。服务器集群是将多台服务器连接到一个网络中,通过共享负载和资源,提高系统的性能、可靠性和可扩展性。在Workerman中,可以通过以下两种

MySQL集群部署与维护项目经验总结MySQL集群部署与维护项目经验总结Nov 02, 2023 pm 01:33 PM

MySQL集群部署与维护项目经验总结MySQL是互联网应用开发中最常用的数据库之一,随着业务规模不断扩大,单机的MySQL已经无法满足需求,因此需要考虑采用MySQL集群方案来扩展数据库的性能和容量。本文总结了在MySQL集群部署与维护过程中的经验和教训,希望能够对大家的MySQL集群部署和维护工作有所帮助。一、MySQL集群的部署和架构设计MySQL集群的

如何配置MySQL数据库的集群环境?如何配置MySQL数据库的集群环境?Jul 12, 2023 pm 02:52 PM

如何配置MySQL数据库的集群环境?引言:随着互联网的发展和数据量的不断增长,数据库成了每个企业都必备的核心系统之一。同时,为了保证数据的高可用性和读写性能的需求,数据库集群环境逐渐成为企业的选择。本文将介绍如何配置MySQL数据库的集群环境,并提供相应的代码示例。一、环境准备在配置MySQL数据库的集群环境之前,我们需要确保以下环境准备工作已经完成:安装M

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版