首页 > 其他分享 >Mariadb Gelara Cluster

Mariadb Gelara Cluster

时间:2024-12-31 16:55:16浏览次数:3  
标签:Gelara Galera mariadb wsrep Cluster galera 集群 Mariadb 节点

Gelara Cluster

说明:Galera Cluster是一套在MySQL/MariaDB的InnoDB存储引擎上实现multi-master及数据实时同步的系统架构。它采用了同步复制机制,保证了所有节点上的数据都是实时一致的。在Galera Cluster中,所有的MariaDB实例都是对等的,互为主从,客户端可以连接到任何一个节点进行读写操作

节点类型IPPORT
主从节点192.168.5.813306
主从节点192.168.5.823306
主从节点192.168.5.833306

搭建前准备

  • 关闭SELinux(否则主节点同步会出现错误)
  • 关闭防火墙
#如果SELinux status参数为enabled即为开启状态
/usr/sbin/sestatus -v      
 
#也可以用这个命令检查
getenforce         

#关闭SELinux:
setenforce 0            #临时关闭(不用重启机器)
 
#永久生效修改 将SELINUX=enforcing改为SELINUX=disabled重启机器即可
vi /etc/selinux/config

#关闭防火墙
systemctl stop firewalld.service

#禁止开机启动
systemctl disable  firewalld.service 

如果不想关闭防火墙,可以设定相关权限规则,参照官方提供的说明

https://galeracluster.com/library/documentation/firewall-settings.html

配置yum源

vi /etc/yum.repos.d/mariadb-10.11.8.repo 

mariadb-10.11.8.repo内容如下

[mariadb]
 
name = MariaDB
 
#官方镜像下载速度慢,替换成了清华镜像站
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.11.8/centos7-amd64/

gpgkey=https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
 
gpgcheck = 1

安装

#在MariaDB 10.4及更高版本中,还需要安装该galera-4软件包以获取Galera 4 wsrep提供程序库
yum install MariaDB-server MariaDB-client galera-4 -y 

集群启动

启动前需注意:需要打通端口,由于本说明在关闭防火墙下测试无需配置,未关闭需开启以下端口

Galera复制端口(默认4567,可更改)

​ Galera节点间通信的端口。它负责同步数据、维护集群状态以及检测节点故障等。确保所有Galera集群节点之间的这个端口是开放的

IST增量状态端口(默认4568,可更改)

​ 当一个新的节点加入集群时,需要从集群中的一个现有节点接收数据库状态的快照。这个端口用于增量状态传输(IST),通常只在节点加入时短暂使用。尽管不是持续开放的,但确保在节点加入时端口可用

SST全量状态端口(默认4444,可更改)

​ 状态快照传输(SST)用于在节点加入集群时传输完整的数据库状态。SST可以使用不同的方法,如rsync或xtrabackup,它们使用各自的端口。通常这些端口不是固定的,而是由SST方法决定的。确保防火墙或安全组规则允许SST方法所需的通信端口

分别修改server配置

vim /etc/my.cnf.d/server.cnf

配置参照mariadb官网 点击可直达查看
配置参照galera官网 点击可直达查看

81server配置内容如下

[mysqld]
# 设置默认存储引擎为INNODB
default-storage-engine=INNODB
# 设置默认字符编码为utf8
character-set-server=utf8
# utf8mb4_unicode_ci比较准确,utf8mb4_general_ci速度比较快。通常情况下,新建数据库时一般选用 utf8mb4_general_ci 就可以了
collation-server=utf8_general_ci

[galera]
# 开启全同步复制模式
# 在10.1以上版本的mariadb中,该参数的默认值为OFF,意为该节点的事务将不会发送给集群中的其他节点
wsrep_on=ON

# 指定Galera插件库位置,MariaDB 10.4之前是galera,之后是galera-4
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so  

# 定义集群节点信息
wsrep_cluster_address="gcomm://192.168.5.81,192.168.5.82,192.168.5.83"

# 二进制日志格式设置为row行级
binlog_format=row 

# 设置服务器的默认字符集为utf8
character_set_server=utf8

# 设置默认的存储引擎为InnoDB
default_storage_engine=InnoDB

# 设置innodb事务插入模式为交错模式,并发性能最高,适用于bin-log格式为row的场景
# 此模式下,插入语句来一个分配一个自增 id,而不会锁表,只会锁住分配 ID 的过程
innodb_autoinc_lock_mode=2

# 设置Galera复制时全局缓存大小
wsrep_provider_options="gcache.size=1G"

# 设置Galera集群名称
wsrep_cluster_name=MariaDB-Galera-Cluster

# 设置Galera集群中节点名称,需保证集群中名称唯一,一般用自定义host名或ip即可
wsrep_node_name=cluster1 

# 指定当前节点的wsrep地址与端口,默认端口为4567
wsrep_node_address=192.168.5.81 

# 绑定本地所有IP
bind-address=0.0.0.0

# 用于进行状态快照传输(SST)的方法【可选】
# SST是当新节点加入集群或现有节点从集群中恢复时,用于同步节点状态的过程
# rsync是一个常用的文件同步工具,它通过网络复制文件和目录
wsrep_sst_method=rsync

# 同步认证的用户与密码信息【可选】
wsrep_sst_auth=root:root

82server配置内容如下

[mysqld]
# 设置默认存储引擎为INNODB
default-storage-engine=INNODB
# 设置默认字符编码为utf8
character-set-server=utf8
# utf8mb4_unicode_ci比较准确,utf8mb4_general_ci速度比较快。通常情况下,新建数据库时一般选用 utf8mb4_general_ci 就可以了
collation-server=utf8_general_ci

[galera]
# 开启全同步复制模式
# 在10.1以上版本的mariadb中,该参数的默认值为OFF,意为该节点的事务将不会发送给集群中的其他节点
wsrep_on=ON

# 指定Galera插件库位置,MariaDB 10.4之前是galera,之后是galera-4
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so 

# 定义集群节点信息
wsrep_cluster_address="gcomm://192.168.5.81,192.168.5.82,192.168.5.83"

# 二进制日志格式设置为row行级
binlog_format=row 

# 设置服务器的默认字符集为utf8
character_set_server=utf8

# 设置默认的存储引擎为InnoDB
default_storage_engine=InnoDB

# 设置innodb事务插入模式为交错模式,并发性能最高,适用于bin-log格式为row的场景
# 此模式下,插入语句来一个分配一个自增 id,而不会锁表,只会锁住分配 ID 的过程
innodb_autoinc_lock_mode=2

# 设置Galera复制时全局缓存大小
wsrep_provider_options="gcache.size=1G"

# 设置Galera集群名称
wsrep_cluster_name=MariaDB-Galera-Cluster

# 设置Galera集群中节点名称,需保证集群中名称唯一,一般用自定义host名或ip即可
wsrep_node_name=cluster2 

# 指定当前节点的wsrep地址与端口,默认端口为4567
wsrep_node_address=192.168.5.82 

# 绑定本地所有IP
bind-address=0.0.0.0

# 用于进行状态快照传输(SST)的方法【可选】
# SST是当新节点加入集群或现有节点从集群中恢复时,用于同步节点状态的过程
# rsync是一个常用的文件同步工具,它通过网络复制文件和目录
wsrep_sst_method=rsync

# 同步认证的用户与密码信息【可选】
wsrep_sst_auth=root:root

83server配置内容如下

[mysqld]
# 设置默认存储引擎为INNODB
default-storage-engine=INNODB
# 设置默认字符编码为utf8
character-set-server=utf8
# utf8mb4_unicode_ci比较准确,utf8mb4_general_ci速度比较快。通常情况下,新建数据库时一般选用 utf8mb4_general_ci 就可以了
collation-server=utf8_general_ci

[galera]
# 开启全同步复制模式
# 在10.1以上版本的mariadb中,该参数的默认值为OFF,意为该节点的事务将不会发送给集群中的其他节点
wsrep_on=ON

# 指定Galera插件库位置,MariaDB 10.4之前是galera,之后是galera-4
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so  

# 定义集群节点信息
wsrep_cluster_address="gcomm://192.168.5.81,192.168.5.82,192.168.5.83"

# 二进制日志格式设置为row行级
binlog_format=row

# 设置服务器的默认字符集为utf8
character_set_server=utf8

# 设置默认的存储引擎为InnoDB
default_storage_engine=InnoDB

# 设置innodb事务插入模式为交错模式,并发性能最高,适用于bin-log格式为row的场景
# 此模式下,插入语句来一个分配一个自增 id,而不会锁表,只会锁住分配 ID 的过程
innodb_autoinc_lock_mode=2

# 设置Galera复制时全局缓存大小
wsrep_provider_options="gcache.size=1G"

# 设置Galera集群名称
wsrep_cluster_name=MariaDB-Galera-Cluster

# 设置Galera集群中节点名称,需保证集群中名称唯一,一般用自定义host名或ip即可
wsrep_node_name=cluster3 

# 指定当前节点的wsrep地址与端口,默认端口为4567
wsrep_node_address=192.168.5.83 

# 绑定本地所有IP
bind-address=0.0.0.0

# 用于进行状态快照传输(SST)的方法【可选】
# SST是当新节点加入集群或现有节点从集群中恢复时,用于同步节点状态的过程
# rsync是一个常用的文件同步工具,它通过网络复制文件和目录
wsrep_sst_method=rsync

# 同步认证的用户与密码信息【可选】
wsrep_sst_auth=root:root

启动集群

启动集群中任意一个节点,以81为例

# 底层调用的是mysqld --wsrep-new-cluster命令
galera_new_cluster

启动其它节点

82、83启动

# 底层调用的是/bin/systemctl start mariadb.service命令,会自动加入集群中
systemctl start mariadb.service 

82、83查看进程信息

ps aux | grep mysql

集群命令

登录数据库
mysql #登录数据库,还未配置root密码可直接登录
查看集群成员数
SHOW STATUS LIKE"wsrep_cluster_size"
查看集群信息
show status like 'wsrep_cluster%';
查看wsrep信息
#wsrep_connected 和 wsrep_ready 都是on状态
SHOW STATUS LIKE 'wsrep%';
查看集群中的主机IP
show variables like 'wsrep_%address%';
授权【在其中一台授权即可,会自动同步】
#用于非用一网段下测试【可选】
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.5.%' IDENTIFIED BY 'root';
select user,host,password from mysql.user ;
FLUSH PRIVILEGES;
查看数据库使用的字符集
show variables like '%char%';
允许最大的连接数
show variables like "max_connections";
查看当前的连接数
show status like '%connect%';
查看被锁表
show open tables where in_use>0;
集群停止
#依次在每个节点上停止mariadb即可
systemctl stop mariadb

Galera集群停止和运行注意:

关机顺序为A>B>C,那么开机顺序则为C>B>A,且开机时的C应执行 galera_new_cluster ,后面启动的节点用 systemctl start mariadb 正常启动数据库
若忘记关机顺序,则在启动之前,应通过命令 cat /var/lib/mysql/grastate.dat 查看 safe_to_bootstrap 字段的数值,若发现有节点的数值为1,则首先通过 galera_new_cluster 启动该节点,其他节点用 systemctl start mariadb 正常启动,若所有节点的 /var/lib/mysql/grastate.dat 文件里,safe_to_bootstrap 字段都为0,则可以根据实际情况选择一个节点手动将该数值修改为1,而后通过 galera_new_cluster 启动该节点,其他节点用systemctl start mariadb 正常启动,

cat /var/lib/mysql/grastate.dat   # 查看 safe_to_bootstrap

vi cat /var/lib/mysql/grastate.dat  # 如果全为0 手动修改任意节点 safe_to_bootstrap 为1

galera_new_cluster   # 在 safe_to_bootstrap 为1的节点上执行集群运行命令

systemctl start mariadb  # 在 safe_to_bootstrap 为0的节点上启动mariadb 自动加入 Galera 集群

标签:Gelara,Galera,mariadb,wsrep,Cluster,galera,集群,Mariadb,节点
From: https://blog.csdn.net/weixin_43267623/article/details/144853543

相关文章

  • 论文阅读:Towards Faster Deep Graph Clustering via Efficient Graph Auto-Encoder
    论文地址:TowardsFasterDeepGraphClusteringviaEfficientGraphAuto-Encoder|ACMTransactionsonKnowledgeDiscoveryfromData代码地址: https://github.com/Marigoldwu/FastDGC摘要深度图聚类(DeepGraphClustering,DGC)近年来已成为图数据聚类的一个有前途......
  • 论文研读-ClusteringGA研读与实现
    论文研读-ClusteringGA研读与实现此为课题组2024级研究生何诺飘同学近期学习内容汇报更多内容请关注许志伟课题组官方中文主页:https://JaywayXu.github.io/zh-cn/1.前言ClusteringGA算法的整体流程与NSGAII相似,主要包括初始种群的产生、聚类、交叉、变异、非支配排序、选择......
  • 记录:wsl2 安装 CentOS8-stream 安装docker 安装redis-cluster集群 一些步骤及问题
     一。解压  下载的CentOS8-stream.zip压缩包,双击安装   (下载地址记录:wsl2安装centOS7一些问题解决并使用shell工具连接)  二。修改root密码 (安装后直接进入root 不知道密码所以修改)  直接passwd即可修改   三。yumli......
  • client-go InClusterConfig方法
    InClusterConfig方法packagemainimport( "context" "test/signals" "time" "os" core_v1"k8s.io/api/core/v1" metav1"k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes......
  • 论文阅读:Deep Fusion Clustering Network With Reliable Structure Preservation
    论文地址:DeepFusionClusteringNetworkWithReliableStructurePreservation|IEEEJournals&Magazine|IEEEXplore代码地址:https://github.com/gongleii/DFCN-RSP摘要深度聚类通过优雅地利用数据表示来寻找样本的划分,已引起广泛关注。最近,将自编码器(AE)与图神经......
  • MySQL NDB Cluster 日常运维命令总结
    一、数据备份物理备份:在管理节点使用ndb_mgm客户端工具启动备份:[root@管理节点mysql-cluster]#ndb_mgm--NDBCluster--ManagementClient--ndb_mgm>startbackup备份过程中,可通过ndb_mgm>showbackup;查看备份进度。备份完成后,数据文件会存储在各数......
  • 论文阅读:Revisiting Modularity Maximization for Graph Clustering: A Contrastive L
    论文地址:RevisitingModularityMaximizationforGraphClustering:AContrastiveLearningPerspective|Proceedingsofthe30thACMSIGKDDConferenceonKnowledgeDiscoveryandDataMining代码地址:https://github.com/EdisonLeeeee/MAGI摘要图聚类是一项基础......
  • Centos8升级mariadb数据库版本
    在CentOS8上升级MariaDB数据库版本的步骤如下:1、备份当前的MariaDB数据库mysqldump--all-databases--user=root--password>all_databases.sql2、移除当前的MariaDB版本。#移除当前数据库版本sudodnfremovemariadb-servermariadb3、下载并添加MariaDB的官方......
  • 论文阅读:A contrastive variational graph auto-encoder for node clustering
    论文地址:Acontrastivevariationalgraphauto-encoderfornodeclustering-ScienceDirect代码地址:https://github.com/nairouz/CVGAE_PR摘要变分图自编码器(VGAEs)已广泛应用于解决节点聚类任务。然而,现有的最先进方法仍面临诸多挑战。首先,现有的VGAE模型在引入聚类归......
  • 论文阅读:Deep embedded clustering with distribution consistency preservation for
    论文地址:Deepembeddedclusteringwithdistributionconsistencypreservationforattributednetworks-ScienceDirect代码地址:https://github.com/Zhengymm/DCP1摘要许多现实世界中的复杂系统可以被表征为带属性的网络。为了挖掘这些网络中的潜在信息,近年来深度嵌入......