首页 > 其他分享 >MariaDB Galera Cluster 部署

MariaDB Galera Cluster 部署

时间:2023-06-06 15:34:55浏览次数:36  
标签:Galera cluster wsrep 192.168 Cluster MariaDB root 节点

MariaDB Galera Cluster 部署介绍

MariaDB作为MySQL的一个分支,在开源项目中已经广泛使用,例如openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。

1、MariaDB Galera Cluster 介绍

Galera Cluster是由第三方公司Codership所研发的一套免费开源的集群高可用方案,实现了数据零丢失,官网地址为http://galeracluster.com/。其在MySQLInnoDB存储引擎基础上打了wrep(虚拟全同步复制),Percona/MariaDB已捆绑在各自的发行版本中。 MariaDB Galera Cluster是MariaDB同步多主机集群。它仅支持XtraDB/InnoDB存储引擎(虽然有对MyISAM实验支持,具体看wsrep_replicate_myisam系统变量)。

2、MariaDB Galera Cluster主要功能

  • 同步复制

  • 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除

  • 新节点加入数据自动复制

  • 真正的并行复制,行级

  • 用户可以直接连接集群,使用感受上与MySQL完全一致

优势:

  • 因为是多主,所以不存在Slavelag(延迟)
  • 不存在丢失事务的情况
  • 同时具有读和写的扩展能力
  • 更小的客户端延迟
  • 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的

缺点:

  • 加入新节点时开销大,需要复制完整的数据
  • 不能有效地解决写扩展的问题,所有的写操作都发生在所有的节点
  • 有多少个节点,就有多少份重复的数据
  • 由于事务提交需要跨节点通信,即涉及分布式事务操作,因此写入会比主从复制慢很多,节点越多,写入越慢,死锁和回滚也会更加频繁
  • 对网络要求比较高,如果网络出现波动不稳定,则可能会造成两个节点失联,Galera Cluster集群会发生脑裂,服务将不可用

3、环境准备

名称 IP地址
node01 192.168.11.11
node02 192.168.11.12
node03 192.168.11.13

4、环境部署

1> 三台主机添加hosts

[root@node01 ~]# cat /etc/hosts
192.168.11.11 node01
192.168.11.12 node02
192.168.11.13 node03

2> 加大文件描述符

[root@node01 ~]# tail -3 /etc/security/limits.conf
* soft nofile 65536 
* hard nofile 65536

3>时间同步

[root@node03 ~]# tail -4 /etc/sysctl.conf
fs.file-max=655350
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_tw_recycle = 1

# 使其生效
[root@node01 ~]# sysctl -p
fs.file-max = 655350
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_tw_recycle = 1

4>安装MariaDB

方式一:yum安装

配置安装源:(所有节点)
[root@node01 ~]# vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.9.6/centos7-amd64/
gpgcheck=0

安装:(所有节点)
[root@node01 ~]# yum install -y mariadb-server

方式二:源码包安装

[root@node01 ~]# wget -c https://releases.galeracluster.com/galera-4.9/centos/7/x86_64/galera-4-26.4.9-1.el7.x86_64.rpm

安装依赖库

# yum install -y boost-devel.x86_64 libodb-boost-devel.x86_64  bzr scons

编译galera源码

# scons

安装galera库

 # cp  libgalera_smm.so /usr/lib64/galera/

5> 配置集群

1、修改配置文件/etc/my.cnf
[root@node01 ~]# vim /etc/my.cnf.d/server.conf
# 添加以下内容
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.11.11,192.168.11.12,192.168.11.13"
wsrep_sst_auth=tt:tt123
binlog_format=row
wsrep_node_name=db
wsrep_node_address=192.168.11.11
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=2G
#
# Allow server to accept connections on all interfaces.
bind-address=0.0.0.0

2、将配置复制到其他节点.
注意要把 wsrep_node_name 和 wsrep_node_address 改成相应节点的 hostname 和 ip

3、初始化Mariadb,设置root密码与安全设置 (在192.168.11.11节点上面操作)
mysql_install_db --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql

#192.168.11.11 节点启动MariaDB。第一次启动一定要使用--wsrep-new-cluster,再次启动就不需要
mysqld_safe --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql  --wsrep-new-cluster &

4、其它两个节点, 初始化MariaDB
mysql_install_db --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql  
启动MariaDB
systemctl start mariadb

6> 验证集群

验证集群
1、连接mariadb,查看是否启用galera插件
MariaDB [(none)]>  show status like "wsrep_ready";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_ready   | ON    |
+---------------+-------+
1 row in set (0.00 sec)

2、查看目前集群机器数
MariaDB [(none)]>  show status like "wsrep_cluster_size";
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+
1 row in set (0.00 sec)

3、查看连接的主机
MariaDB [(none)]>  show status like "wsrep_incoming_addresses";
+--------------------------+---------------------------------------+
| Variable_name            | Value                                                       
+--------------------------+---------------------------------------+
| wsrep_incoming_addresses | 192.168.11.13:3306,192.168.11.12:3306,192.168.11.11:3306 |
+--------------------------+---------------------------------------+
1 row in set (0.00 sec)

4、查看集群状态
MariaDB [(none)]>  show status like "wsrep%";

wsrep_cluster_status为Primary,表示节点为主节点,正常读写。
wsrep_ready为ON,表示集群正常运行。
wsrep_cluster_size为3,表示集群有三个节点。

5、测试集群mariad数据是否同步
MariaDB [(none)]> system hostname
db1
MariaDB [(none)]> create database it;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> system hostname
db2
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| it                 |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

6、模拟故障
停止节点1的mariadb
[root@db1 mysql]# mysqladmin shutdown
节点2登录查看
MariaDB [(none)]> show status like "wsrep_cluster_size";
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+
1 row in set (0.00 sec)
MariaDB [(none)]> show databases;

7、节点恢复正常测试

[root@db1 ~]# systemctl start mariadb
[root@db1 ~]# mysql -e "show databases;" | grep it
it
[root@db1 ~]# mysql -e "show status like 'wsrep_cluster_size';" 
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

标签:Galera,cluster,wsrep,192.168,Cluster,MariaDB,root,节点
From: https://www.cnblogs.com/sre-chan/p/17460684.html

相关文章

  • CentOS下安装MariaDB
    yuanwen:https://www.cnblogs.com/michael999/p/16877964.html1.安装服务端安装MySQL软件,可以在windows和linux下安装,此处只提供centos下安装过程。MariaDb是最近推出一款企业级MYSQLServerPerconaServer和MariaDb是当前最为流行的两大企业级MYSQLSERVER解决方案sud......
  • Mysql / MariaDB 操作 《 json 》 字段
    Mysql/MariaDB操作《json》字段Mysql/MariaDB操作《json》字段提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Mysql/MariaDB操作《json》字段前言环境一、数据库结构二、使用方法1.查找json_value字段中a字段等于1三、常用方法总......
  • 1107 Social Clusters
    题目:Whenregisteronasocialnetwork,youarealwaysaskedtospecifyyourhobbiesinordertofindsomepotentialfriendswiththesamehobbies.A socialcluster isasetofpeoplewhohavesomeoftheirhobbiesincommon.Youaresupposedtofindallt......
  • Oracle 中如何手工提交Cluster Table的事务
    ++++创建测试表SQL>connroger/rogerConnected.SQL>createclustert_cluster(idnumber(2));Clustercreated.SQL>createtablet_0610......
  • centos7+mariadb安装在线评判系统
    在线评判系统安装:https://gitee.com/yhssdl/lpszoj/blob/master/docs/install.md其他问题升级到php7.4https://blog.csdn.net/zhongliang415/article/details/108640682#:~:text=升级php到php7.4版本1安装版本库yuminstallepel-releaseyum-utils-y,php-gdphp-curlphp-......
  • Linux系统Mariadb初始化相关(ubuntu)
    #事先声明,此文是一边写一边操作的,中间可能有不一致的地方,大体思路就是参照windows下的目录规范,将mysql的各目录及文件进行类比放置,然后执行重建数据库命令,也许你只是想修改下data目录,那么下面的指令按需修改即可#数据库重建sudomysql_install_db--defaults-file=/opt/mysql/......
  • Redis Cluster两slave节点处理
    背景系统:CentOS7.6RedisClusterIP端口角色192.168.100.116380Master192.168.100.116381slave192.168.100.126380Master192.168.100.126381Slave192.168.100.136380Master192.168.100.136381Slave 因为某种原因导致(192.168.100.12)操......
  • SEDCN:Structure enhanced deep clustering network via a weighted neighbourhood a
    论文阅读08-SEDCN:Structureenhanceddeepclusteringnetworkviaaweightedneighbourhoodauto-encoder论文信息论文地址:Structureenhanceddeepclusteringnetworkviaaweightedneighbourhoodauto-encoder-ScienceDirect代码地址:m22453/sedcn-nn(github.com)1.......
  • MBN:Mutual Boost Network for Attributed Graph Clustering
    论文阅读07-MBN:MutualBoostNetworkforAttributedGraphClustering论文信息论文地址:https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4195979代码地址:https://github.com/Xiaoqiang-Yan/MBN1.存在问题存在问题现有区分表示的方法受到节点和结构特征之间差异......
  • 安装SQL Server累积版本更新包,提示“Not Clustered or the Cluster service is up and
    1. NotClusteredortheClusterserviceisupandonline  起因是服务器SQLServer之前有开启SQLServerAlwaysOnHighavailabilityfeatureandinstalledFailoverClusteringcomponents。  1.1 DisabletheAlwaysOnHighAvailabilityfeature    ......