Mariadb Galera Cluster 部署

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

不同于标准的MySQL服务器和MySQL集群,MySQL / MariaDB Galera集群在启动方式上有一些细小的区别。Galera需要在集群启动一个节点作为参考点,剩余的节点才能加入形成集群。这个过程被称为集群引导。引导是一个初始步骤,引导数据库节点作为主节点,其它节点将主节点作为参考点同步数据。


启动集群

在三台机器上安装mariadb,并做初始化配置。在第一台节点上修改/etc/my.cnf.d/server.cnf 的内容,在[galera]部分添加集群配置:

1

2

3

4

5

6

7

8

9

10

11

12

wsrep_on=ON

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address='gcomm://'    #第一个启动节点配置

wsrep_cluster_name='mariadb_cluster'

wsrep_node_address='192.168.0.56'   #本机IP地址

wsrep_node_name='mariadb_node1'    #集群节点名称

wsrep_sst_method=rsync

  

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0


在第二台和第三台节点上配置/etc/my.cnf.d/server.cnf 文件的[galera]部分:

1

2

3

4

5

6

7

8

9

10

11

12

wsrep_on=ON

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address='gcomm://192.168.0.56,192.168.0.58'

wsrep_cluster_name='mariadb_cluster'

wsrep_node_address='192.168.0.57'

wsrep_node_name='mariadb_node2'

wsrep_sst_method=rsync

  

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0


1

2

3

4

5

6

7

8

9

10

11

12

wsrep_on=ON

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address='gcomm://192.168.0.56,192.168.0.57'

wsrep_cluster_name='mariadb_cluster'

wsrep_node_address='192.168.0.58'

wsrep_node_name='mariadb_node3'

wsrep_sst_method=rsync

  

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

如果要启动Mariadb Galera Cluster ,首先选择node1节点为初始节点,将node1作为第一个启动节点,并且设置gcomm为空,否则无法启动。

1

wsrep_cluster_address='gcomm://'

nide1启动命令(不同版本的不同启动方式):

$ service mysql bootstrap # sysvinit

$ service mysql start --wsrep-new-cluster # sysvinit

$ galera_new_cluster # systemd

$ mysqld_safe --wsrep-new-cluster # command line


node1启动之后,依次启动node2和node3. 之后修改node1 "wsrep_cluster_address"配置,添加上其它集群节点IP.

1

$ systemctl start mariadb

查看系统端口是否存在,默认情况下系统会监听3306,4567端口。

登录数据库,查看集群节点是否加入:

1

MariaDB [(none)]> SHOW STATUS LIKE"wsrep_cluster_size";

1

2

3

4

5

+--------------------+-------+

| Variable_name   | Value |

+--------------------+-------+

| wsrep_cluster_size | 3   |

+--------------------+-------+

可以通过 wsrep_cluster_status 和 wsrep_local_state_comment 查看节点的同步状态。

1

2

3

4

5

6

7

MariaDB [(none)]> show status like "wsrep_cluster_status";

+----------------------+---------+

| Variable_name     | Value   |

+----------------------+---------+

| wsrep_cluster_status | Primary |

+----------------------+---------+

1 row in set (0.00 sec)

1

2

3

4

5

6

7

MariaDB [(none)]> show status like "wsrep_local_state_comment";

+---------------------------+--------+

| Variable_name          | Value  |

+---------------------------+--------+

| wsrep_local_state_comment | Synced |

+---------------------------+--------+

1 row in set (0.00 sec)


警告:对一个已存在的集群添加新的节点时,不要使用引导的方式(bootstrap)启动这个节点,不能在一个集群中使用两个引导节点。


故障恢复和重启集群


当我们的mariadb Galera Cluster集群需要重启(意外宕机)时,未来保证数据的完整性,选择合适的主节点作为引导启动节点非常重要,如果启动顺序不正确可能会造成数据丢失或者无法启动。


当Galera以节点上的引导命令启动时该   特定节点将到达主状态(检查wsrep_cluster_status的值)。其余的节点只需要一个正常的启动命令,它们将自动查找集群中的现有主组件(PC)并加入组成一个集群。然后,数据同步通过加速器和供体之间的增量状态转移(IST)或快照状态转移(SST)发生。


因此,基本上,如果要启动新集群或集群中没有其他节点处于PRIMARY状态,则应仅引导集群。在选择采取的行动时应该小心,否则可能会导致拆分集群或丢失数据。  


如果集群中主节点运行正常,我们只需要正常启动其他节点。所以做关键的一点是在集群全部宕机之后,我们要找到最后一个退出集群,并且数据是最完整的节点。通过启动这个节点,其他节点启动之后与这个节点同步数据才能保证数据库集群的数据不丢失。


参考文档:  

https://severalnines.com/blog/how-bootstrap-mysqlmariadb-galera-cluster





本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1922986

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等