设为首页 收藏本站
查看: 1654|回复: 0

[经验分享] MySQL Galera 集群部署使用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-12 09:18:54 | 显示全部楼层 |阅读模式
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安装,因此跟常规的命令不同,其实只要执行一个脚本即可。

1
$ scripts/build.sh



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


第二步:配置

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

1
2
3
4
5
6
7
8
9
[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 脚本即可:

1
2
3
$ 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:// 参数:

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



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

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



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


第五步:测试

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

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



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



1
2
3
4
5
6
7
8
$ 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相关的参数判断是否启动成功:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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相关的,其他的在使用中慢慢研究了。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138177-1-1.html 上篇帖子: hive 安装mysql作为元数据 下篇帖子: MariaDB数据库介绍三、MHA(Master HA)实现主节点故障转移 官方下载 可靠性 吞吐量 客户端 下载安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表