返回顶部
首页 > 资讯 > 数据库 >MariaDB Galera Cluster部署实践
  • 148
分享到

MariaDB Galera Cluster部署实践

2024-04-02 19:04:59 148人浏览 安东尼
摘要

官方文档: Http://galeracluster.com/documentation-WEBpages/index.html 一、 Galera Cluster的工作原理 主要关注点是数据一致性。 事务

官方文档:

Http://galeracluster.com/documentation-WEBpages/index.html

一、 Galera Cluster的工作原理

主要关注点是数据一致性。 事务既可以应用于每个节点,也可以不全部应用。 所以,只要它们配置正确,数据库保持同步。

Galera复制插件不同于传统的Mysql复制,可以解决多个问题,包括多主写入冲突,复制滞后和主从不同步。

MariaDB Galera Cluster部署实践

在典型的Galera集群实例中,应用程序可以写入集群中的任何节点,然后通过基于认证的复制将事务提交(RBR事件)应用于所有服务器

使用组通信和事务排序技术,基于认证的复制是同步数据库复制的另一种方法

二、Galera集群安装

说明:Galera集群至少需要三个节点的服务器硬件。

node-12:10.71.11.12
node-13:10.71.11.13
node-14:10.71.11.14

操作系统:

Centos7

内核版本:

 3.10.0-693.21.1.el7.x86_64
开始安装

说明:为集群中的每个节点执行以下步骤。文档以node-12配置为例
1.编辑/etc/hosts文件,配置节点互相解析

[root@node-12 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.71.11.12  node-12
10.71.11.13  node-13
10.71.11.14  node-14

2.关闭节点防火墙

[root@node-12 ~]# cat /etc/sysconfig/selinux |grep di
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
#     minimum - Modification of targeted policy. Only selected processes are protected.

3.配置Galera集群yum源

[root@node-12 ~]# cat /etc/yum.repos.d/galera.repo 
[galera]
name = Galera
baseurl = http://releases.galeracluster.com/galera-3/centos/7/x86_64
gpgkey = http://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpGCheck = 1
[mysql-wsrep]
name = Mysql-wsrep
baseurl =  http://releases.galeracluster.com/mysql-wsrep-5.6/centos/7/x86_64
gpgkey = http://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1

4.更新yum源缓存

yum makecache

5.安装服务

yum install mysql-wsrep-shared-5.6

说明:如果节点上之前安装过mysql,执行上面命令可能会安装包冲突报错
6.以node-12为例,编辑/etc/my.cnf,添加如下配置

[root@node-12 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
Socket=/var/lib/mysql/mysql.sock
user=mysql
binlog_fORMat=row
bind-address=10.71.11.12
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=122M
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
wsrep_sst_method=rsync
wsrep_cluster_name=MyCluster
wsrep_cluster_address="gcomm://10.71.11.12,10.71.11.13,10.71.11.14"
wsrep_node_name=node-12
wsrep_node_address="10.71.11.12"
[mysql_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

说明:其他另外node-13和node-14依据1-6步配置,需要修改/etc/my.cnf与每个节点对应

系统内存配置说明

Galera Cluster的内存要求很难准确预测。 它使用的特定内存量可能会有很大差异,具体取决于给定节点接收的负载。 如果Galera Cluster尝试使用比节点更多的内存,则mysqld实例会崩溃。
保护节点系统崩溃的方法是确保服务有足够的swap 空间分区或者交换文件

检查系统可用交换空间
MariaDB Galera Cluster部署实践
MariaDB Galera Cluster部署实践
MariaDB Galera Cluster部署实践

如果系统swap分区不满足环境需求,可以进行如下操作配置swap分区
说明:集群的中每个节点都要进行相关swap分区设置

1.根据需求在根目录下创建一个2G大小swap空文件

[root@node-11 ~]#fallocate -l 2048M /swapfile

或者执行

[root@node-11 ~]#dd if=/dev/zero of=/swapfile bs=1M count=2048

设置swap交换分区大小
2.设置swap文件权限

[root@node-11 ~]#chown 600 /swapfile
ll /swapfile 
-rw-r--r-- 1 600 root 2147483648 Apr 17 09:13 /swapfile

3.格式化swapfile

[root@node-11 ~]# mkswap /swapfile
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=6341a320-1804-4fe1-8c96-7c22fe270eeb

4 .激活swapfile

[root@node-11 ~]# swapon /swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
swapon: /swapfile: insecure file owner 600, 0 (root) suggested.
  1. 编辑/etc/fstab,在文件底部加入如下配置
    /swapfile none swap defaults 0 0

    MariaDB Galera Cluster部署实践
    6.验证swap交换分区配置文件是否成功

    [root@node-11 ~]# swapon --summary
    Filename                Type        Size    Used    Priority
    /swapfile                               file    2097148 0   -1

    说明:由于现在部署Galera集群的节点环境部署过其他环境,这里说下删除swap分区的步骤

[root@node-11 ~]# swapon --summary
Filename                Type        Size    Used    Priority
/openstack/swap.img                     file    4194300 0   0
/swapfile                               file    2097148 0   -1
[root@node-11 ~]# swapoff /openstack/swap.img   ##首先停止swap分区
[root@node-11 ~]# rm -rf /openstack/swap.img  ##删除swap分区文件

[root@node-11 ~]# swapon --summary
Filename                Type        Size    Used    Priority
/swapfile                               file    2097148 0   -1

MariaDB Galera Cluster部署实践

三、启动Galera集群

说明:完成安装和配置Galera Cluster后,需要使用--wsrep-new-cluster选择一个节点上启动mysqld。 这将会初始化集群的核心组件。 在此之后启动的每个节点都将连接到该组件并开始复制
1.在node-12上使用参数--wsrep-new-cluster启动数据库服务

[root@node-12 mysql]# service mysql start --wsrep-new-cluster

MariaDB Galera Cluster部署实践
数据库初始化报错解决办法,删除/var/lib/mysq/目录下的logfile
MariaDB Galera Cluster部署实践
注意警告:只有在初始化主要组件时才使用--wsrep-new-cluster参数。 如果希望节点连接到现有群集时,不要执行这条命令。
2.在node-12节点启动数据库服务后,登录mysql数据库库,通过wsrep_cluster_size参数来判断启动是否成功。

SHOW STATUS LIKE 'wsrep_cluster_size';

MariaDB Galera Cluster部署实践
说明:参数wsrep_cluster_size数值代表目前galera集群当前节点在线数

3.向galera集群添加节点,分别在node-12和node-13上执行下面命令启动数据库服务

[root@node-13 mysql]# service mysql start
Starting MySQL.Logging to '/var/lib/mysql/node-13.err'.
....... SUCCESS!
[root@node-14 yum.repos.d]# service mysql start
Starting MySQL.Logging to '/var/lib/mysql/node-14.err'.
...... SUCCESS!

然后node-13或者node-14上登录mysql数据库,查看wsrep_cluster_size的数值

[root@node-14 yum.repos.d]# mysql -uroot -p
Enter passWord: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.39 MySQL CommUnity Server (GPL), wsrep_25.22

Copyright (c) 2000, 2018, oracle and/or its affiliates. All rights reserved.

Oracle is a reGIStered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW STATUS LIKE 'wsrep_cluster_size';

MariaDB Galera Cluster部署实践
到此,galera集群搭建成功

四、Galera集群复制测试

说明:要测试Galera群集是否正常工作
1.在数据库客户端上,验证所有节点是否已相互连接

[root@node-12 ~]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.39 MySQL Community Server (GPL), wsrep_25.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show status like 'wsrep_%';

MariaDB Galera Cluster部署实践

MariaDB Galera Cluster部署实践

参数说明:
wsrep_local_state_comment参数中Synced表示该节点已经连接到集群并能正常运行
wsrep_cluster_size的数值3表示galera集群中有3个节点都在线
wsrep_ready中on表示此节点连接到集群并能够处理事务。

2.在node-12上创建一个表并插入数据

[root@node-12 mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.39 MySQL Community Server (GPL), wsrep_25.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE galeratest;
Query OK, 1 row affected (0.01 sec)

mysql> USE galeratest;
Database changed
mysql> CREATE TABLE test_table (id INT PRIMARY KEY AUTO_INCREMENT,msg TEXT ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO test_table (msg) VALUES ("Hello my dear cluster.");
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO test_table (msg) VALUES ("Hello, again, cluster dear."); 
Query OK, 1 row affected (0.00 sec)
  1. 在node-13或者ndoe-14查看三个节点能够同步node-12上的数据操作
    
    [root@node-13 mysql]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 4
    Server version: 5.6.39 MySQL Community Server (GPL), wsrep_25.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| galeratest |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> use galeratest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SELECT * FROM test_table;
+----+-----------------------------+
| id | msg |
+----+-----------------------------+
| 1 | Hello my dear cluster. |
| 4 | Hello, again, cluster dear. |
+----+-----------------------------+
2 rows in set (0.00 sec)

您可能感兴趣的文档:

--结束END--

本文标题: MariaDB Galera Cluster部署实践

本文链接: https://lsjlt.com/news/38340.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MariaDB Galera Cluster部署实践
    官方文档: http://galeracluster.com/documentation-webpages/index.html 一、 Galera Cluster的工作原理 主要关注点是数据一致性。 事务...
    99+
    2024-04-02
  • MariaDB Galera Cluster应用实践
    数据是互联网公司的核心资产,所以好多公司在架构设计上不仅要保证业务系统的高可用,同时还要考虑数据存储的高可用以及安全性。在职公司是一家创业型公司,之前的应用系统是由.Net 和SQLserver组合的架构,...
    99+
    2024-04-02
  • 初识MariaDB之10——MariaDB Galera Cluster
    一、背景介绍无论是采用binlog或者GTID的方式,其本质都是通过I/O_thread和sql_thread的形式进行的同步,因为无法避免复制延迟而饱受诟病,基于上述MariaDB引入了Galera Cl...
    99+
    2024-04-02
  • 实战Mariadb galera Cluster集群架构
    Mariadb galera Cluster安装:操作系统:Centos7.4版本集群数量:3个节点主机信息: 192.168.153.142 node1 selinux=disabled fire...
    99+
    2024-04-02
  • Centos7 mariadb-galera-cluster-5.5+HAProxy+keepalived
    1 服务器    mysql00 192.168.20.104    mysql01 192.168.20.102    mysql02 192....
    99+
    2024-04-02
  • Mariadb如何利用MariaDB Galera Cluster实现mariadb的集群环境
    小编给大家分享一下Mariadb如何利用MariaDB Galera Cluster实现mariadb的集群环境,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获...
    99+
    2024-04-02
  • 部署MySQL Galera Cluster的具体操作方法
    下文给大家带来关于部署MySQL Galera Cluster的具体操作方法,感兴趣的话就一起来看看这篇文章吧,相信看完部署MySQL Galera Cluster的具体操作方法对大家多少有点帮助吧。0.功...
    99+
    2024-04-02
  • 如何部署mysql的集群模式galera-cluster
    这篇文章将为大家详细讲解有关如何部署mysql的集群模式galera-cluster,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一: galera-cluster 的介...
    99+
    2024-04-02
  • mariadb集群搭建---Galera Cluster+ProxySQL教程
    目录前言一、Galera Cluster二、基础环境搭建三、加入配置参数启动集群四、 测试五、ProxySql总结前言 本篇主要用于记录mariadb环境下Galera Cluster模式集群环境的搭建过程,只做演示中间...
    99+
    2023-03-19
    mariadb集群搭建
  • Centos7安装mariadb galera cluster数据库集群 & 详解
    #Galera集群特点集群之间无延时,同步复制。而master-slave主从异步复制,存在延迟。active-active多主,集群内部服务器都是同时写,必须等所有集群内所有数据库都完成数据写入,才会反馈...
    99+
    2024-04-02
  • mariadb galera cluster数据库集群一键安装脚本
    mariadb galare cluster是一套高可用全主mysql集群方案,优势高度数据一致性。脚本:#!/bin/bash# Author:      laocao# D...
    99+
    2024-04-02
  • MariaDB部署
    系统:CentOS Linux release 7.8.2003 (Core) 内核:3.10.0-693.el7.x86_64 1.安装启动MariaDB 安装mariadb 和 mariadb-server yum inst...
    99+
    2017-09-25
    MariaDB部署
  • MariaDB Galera Cluster集群企业版编译安装与配置
    安装环境系统:CentOS 6.8 x86_64软件:MariaDB 10.1.16节点一:192.168.11.132 4C 8GB节点二:192.168.11.133 4C 8GB软件获取访问Maria...
    99+
    2024-04-02
  • AWS RDS MySQL和MariaDB Galera Cluster的优缺点比较总结
    AWS RDS MySQL     亚马逊提供的MySQL服务,部署高可用区域,单主节点、隐藏从节点,自动实现HA切换,可以进行在线扩展,超越单个数据库部署的容量,以处理高读取...
    99+
    2024-04-02
  • influxdb-cluster安装部署
    参考资料 Influx Proxy 是一个基于高可用、一致性哈希的 InfluxDB 集群代理服务,实现了 InfluxDB 高可用集群的部署方案,具有动态扩/缩容、故障恢复、数据同步等能力。 相关文档:https://github.com...
    99+
    2019-10-06
    influxdb-cluster安装部署 数据库入门 数据库基础教程 数据库 mysql
  • Influxdb Cluster集群部署
    准备工作 确定安装版本 1、此次安装选择的是influxdb-cluster集群部署方案,参考项目开源地址为:https://github.com/chengshiwen/influxdb-clust...
    99+
    2023-10-07
    linux 服务器
  • MariaDB Codership Galera Cluster的特性和架构优缺点分别是什么
    MariaDB Codership Galera Cluster的特性和架构优缺点分别是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 ...
    99+
    2024-04-02
  • MySQL PXC部署实践
    文章借鉴:https://www.cnblogs.com/zejin2008/p/5475285.html yum安装: wget https://www.percona.com/downloads/Per...
    99+
    2024-04-02
  • 部署MariaDB服务器
    本例要求在CentOS 7虚拟机上部署MariaDB数据库服务器,完成下列任务:1)安装mariadb-server、mariadb软件包2)启动mariadb服务,并设置开机自启,确认服务状态3)将数据库...
    99+
    2024-04-02
  • k8s部署redis cluster集群的实现
    目录Redis 介绍为什么要用Redis什么是Redis Cluster集群k8s以StatefulSet方式部署redis cluster集群:部署nfs创建pv部署redis初始...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作