- 浏览: 69165 次
文章分类
最新评论
mariadb galera集群配置
安装mariadb galera
配置本地mariadb galera安装yum源:
源地址:http://yum.mariadb.org/
把这个站中的10.0.20/centos6-amd64/目录整个下载下来,放到本地做成本地源来使用,本地源的配置如下:
[root@test3 my.cnf.d]# tail -15 /etc/yum.repos.d/Centos-Local.repo
name=CentOS-6 - Local
baseurl=http://192.168.1.160/base/
gpgcheck=0
enabled=1
failovermethod=priority
[c6-epel]
name=CentOS-6 - Local
baseurl=http://192.168.1.160/epel/$basearch/
gpgcheck=0
enabled=1
[mariadb]
name=mariadb_galera
baseurl=http://192.168.1.160/mariadb_galera/centos6X86_64/
gpgcheck=0
enabled=1
其中的192.168.1.160是我的局域网yum源服务器。
好了,配置好yum源后开始安装了,我这里准备了4台服务器,分别是:
192.168.1.161 nd1
192.168.1.162 nd2
192.168.1.163 nd3
192.168.1.164 nd4
分别在四台服务器上面使用命令安装套件:
yum -y install MariaDB-Galera-server MariaDB-client rsync galera
开始配置:
安装好mariadb galera,启动数据库,使用命令service mysql start启动,启动之后需要对数据库进行安全加固,删除一些不需要的账户,这里就不进行赘述了。然后需要添加一个同步数据的用户,在四台服务器上进入数据库中实行下面的命令:
grant all privileges on *.* to 'wsrep_sst-user'@'192.168.1.%' identified by 'password';
flush privileges;
之后退出数据库,创建配置文件:
[root@test2 ~]# cat /etc/my.cnf.d/galera.cnf
[server]
query_cache_size=0
binlog_format=ROW
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
#wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"
wsrep_cluster_address=gcomm://
wsrep_cluster_name='example_cluster'
wsrep_node_address='192.168.1.161'
wsrep_node_name='nd1'
wsrep_sst_method=rsync
#wsrep_sst_method=xtrabackup
wsrep_sst_auth=wsrep_sst-user:password
上面是nd1的配置文件,其中需要注意的地方有wsrep_cluster_address=gcomm://这条命令,gcomm://是一个特殊的参数,在启动第一台数据库时需要使用这个参数来启动,否则会启动失败,后面的节点使用wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"这个参数来启动数据库。当第一台数据库需要重启时需要切换到wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"这个参数来启动才能加入到集群中。这样讲有点抽象,换一种方式来讲就是最开始启动集群的第一台服务器时将wsrep_cluster_address="gcomm://192.168.1.162,192.168.1.163,192.168.1.164"这一行注释掉,使用下面那个参数来启动,后面的节点注释掉wsrep_cluster_address=gcomm://这个参数启动数据库,加入到集群中来。当集群全部起来以后万一第一台数据库要重启时将下面那条参数注释掉,开启上面那条参数。这样就能加入集群中来。至于wsrep_sst_auth=wsrep_sst-user:password这个参数就是我们之前设定的用来同步的用户名和密码。
另外,需要注意的是防火墙需要开启TCP的3306端口和TCP4567端口开启,否则集群将不能实现,这里为了方便直接清空了防火墙iptables -F,也可以使用下面的命令来使防火墙开启相应端口:
iptables -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 4567 -j ACCEPT
配置好了参数之后,最先重启nd1节点service mysql restart,接下来重启nd2-4节点,之后就可以进数据库中查询同步状态了,可以使用下面的命令查询数据库同步状态:
MariaDB [(none)]> show global status like 'wsrep%';
+------------------------------+-----------------------------------------------------------------------------+
| Variable_name | Value |
+------------------------------+-----------------------------------------------------------------------------+
| wsrep_local_state_uuid | 0381ab0f-a3aa-11e4-9737-be607495053f |
| wsrep_protocol_version | 7 |
| wsrep_last_committed | 2 |
| wsrep_replicated | 0 |
| wsrep_replicated_bytes | 0 |
| wsrep_repl_keys | 0 |
| wsrep_repl_keys_bytes | 0 |
| wsrep_repl_data_bytes | 0 |
| wsrep_repl_other_bytes | 0 |
| wsrep_received | 4 |
| wsrep_received_bytes | 948 |
| wsrep_local_commits | 0 |
| wsrep_local_cert_failures | 0 |
| wsrep_local_replays | 0 |
| wsrep_local_send_queue | 0 |
| wsrep_local_send_queue_max | 1 |
| wsrep_local_send_queue_min | 0 |
| wsrep_local_send_queue_avg | 0.000000 |
| wsrep_local_recv_queue | 0 |
| wsrep_local_recv_queue_max | 1 |
| wsrep_local_recv_queue_min | 0 |
| wsrep_local_recv_queue_avg | 0.000000 |
| wsrep_local_cached_downto | 18446744073709551615 |
| wsrep_flow_control_paused_ns | 0 |
| wsrep_flow_control_paused | 0.000000 |
| wsrep_flow_control_sent | 0 |
| wsrep_flow_control_recv | 0 |
| wsrep_cert_deps_distance | 0.000000 |
| wsrep_apply_oooe | 0.000000 |
| wsrep_apply_oool | 0.000000 |
| wsrep_apply_window | 0.000000 |
| wsrep_commit_oooe | 0.000000 |
| wsrep_commit_oool | 0.000000 |
| wsrep_commit_window | 0.000000 |
| wsrep_local_state | 4 |
| wsrep_local_state_comment | Synced |
| wsrep_cert_index_size | 0 |
| wsrep_causal_reads | 0 |
| wsrep_cert_interval | 0.000000 |
| wsrep_incoming_addresses | 192.168.1.164:3306,192.168.1.162:3306,192.168.1.161:3306,192.168.1.163:3306 |
| wsrep_evs_delayed | |
| wsrep_evs_evict_list | |
| wsrep_evs_repl_latency | 0/0/0/0/0 |
| wsrep_evs_state | OPERATIONAL |
| wsrep_gcomm_uuid | c009d89b-a3b6-11e4-9e41-a2518f032b8a |
| wsrep_cluster_conf_id | 6 |
| wsrep_cluster_size | 4 |
| wsrep_cluster_state_uuid | 0381ab0f-a3aa-11e4-9737-be607495053f |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_index | 2 |
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <info@codership.com> |
| wsrep_provider_version | 25.3.9(r3385) |
| wsrep_ready | ON |
| wsrep_thread_count | 2 |
+------------------------------+-----------------------------------------------------------------------------+
57 rows in set (0.00 sec)
其中可以看到wsrep_incoming_addresses中已经列出来了所有的四台服务器都同步了,还有wsrep_connected和wsrep_ready都是ON状态。这样就可以确定数据库已经同步了,接下来创建一个数据库测试是否真的能同步数据。
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)
MariaDB [(none)]> create database huxianglin;
Query OK, 1 row affected (0.00 sec)
这是在节点1上面进行的操作
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| huxianglin |
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
这是在节点2上面前后查询结果的对比,从中我们可以看出数据已经同步到节点2了。至此mariadb galera集群实验完成了,至于mariadb galera的仲裁人节点配置可以使用命令来实现
garbd -a gcomm://192.168.1.100:4567 -g my_wsrep_cluster -d
# 注释:参数说明: -d:以daemon模式运行 -a:集群地址 -g: 集群名称
具体使用方法可以自行百度!
转载于:https://my.oschina.net/1995blog/blog/1594705
相关推荐
MariaDB Galera集群是一种高可用性、分布式数据库集群解决方案,其特点是数据实时同步,确保所有节点的数据一致性。在这样的集群中,数据备份是一项至关重要的任务,因为它有助于防止数据丢失并支持快速恢复。本文将...
在部署和配置MariaDB Galera集群时,需要关注以下关键步骤: 1. **系统准备**:确保所有服务器都运行相同的操作系统版本,并且安装了必要的依赖项,如MariaDB服务器、Galera库以及其他的系统工具。 2. **配置...
总的来说,正确配置和使用Xtrabackup对于保护MariaDB Galera集群中的数据至关重要。定期备份和验证备份可以帮助企业在面临数据丢失或损坏时迅速恢复服务,从而降低业务中断的风险。同时,理解Xtrabackup的工作原理和...
MariaDB Galera Cluster 是一种基于MySQL的分布式数据库集群解决方案,特别适用于需要高可用性和数据一致性的应用场景。在MariaDB 10.1及更低版本中,Galera Cluster通过集成Galera插件实现了全同步复制,确保了数据...
MariaDB Galera集群是一种高可用性、高透明度和高度可扩展的数据库集群解决方案,尤其适合需要实时数据一致性和无数据丢失的业务场景。Galera集群的核心在于其同步复制机制,区别于传统的异步复制,它能确保数据在...
在MariaDB Galera集群中配置HAProxy的主要目的是提供一个虚拟IP地址,这样客户端就可以通过这个统一的IP地址来连接数据库集群,而不必关心实际的节点IP。这不仅简化了客户端的配置,还能实现自动故障切换,当某个...
MariaDB Galera集群是一种高可用性和高一致性的MySQL数据库集群解决方案,它通过多主复制的方式确保数据的实时同步。在这样的集群中,每个节点都可以接收写入操作,并将更改广播到其他节点,从而提供无单点故障的...
MariaDB Galera Cluster是一个基于MySQL InnoDB存储引擎的多主节点数据库集群解决方案。它支持数据的实时同步与多主节点之间的读写操作,并且能够在无需读写分离的情况下,自动将读写压力均匀分配到集群中的各个节点...
按照解压后Galera.txt中的操作一步步做,20分钟安装配置好CENTOS7.X(现本人在用的是7.6)下的MariaDB 10.3.12(最新稳定版2019.1.7发布)的Galera 25.24的双主集群。 MariaDB 为Mysql的开原版,百分百兼容Mysql,双...
**MariaDB Galera Cluster** 是一种基于 Galera 复制技术构建的数据库集群解决方案,能够在多个节点之间实现数据的实时同步,从而达到高可用性和可扩展性的目的。 - **特点:** - **高性能复制:** 相比于官方 ...
我们需要在所有节点服务器中添加集群配置。在每个节点上,我们需要创建同步用户、授权、配置 HOSTS 等。 首先,我们需要创建同步用户: ``` CREATE USER 'syncUser'@'%' IDENTIFIED BY 'sync$2017'; GRANT ALL ON *...
在本文中,我们将详细介绍如何在 CentOS 7 上使用 yum 安装 Mariadb 10.1-Galera 集群,并对其进行配置。 安装 Mariadb 首先,我们需要在每台机器上独立安装 Mariadb,并设置 root 密码。我们可以使用以下命令来...
### MariaDB集群部署详解 #### 一、概述 在当今数据密集型的应用环境中,数据库的稳定性和可用性显得尤为重要。为了提高数据处理能力和系统...在实际应用中,还需要根据具体的业务需求调整集群配置,以达到最佳性能。
Kubernetes上的MariaDB ...它使用ansible模板根据通过ansible库存文件提供的配置信息生成MariaDB Galera yaml清单。 模板生成两组配置文件: 3节点 5节点 在clusters文件夹中,创建一个子文件夹,并为其命名,以与
MariaDB Galera Cluster是一种高可用性、高性能的数据库集群解决方案,主要用于MySQL和MariaDB数据库系统。它通过使用Galera库实现同步多主复制,确保数据在集群中的多个节点之间实时同步,从而提供无主式集群架构。...
Kubernetes上的MariaDB Galera 在Kubernetes StatefulSet定义中使用的MariaDB Galera集群的Docker映像示例。 基于官方的。 使用来自Kibernetes contrib的 util。 取决于服务对等wsrep_* ,会在Galera配置文件中更新...
MariaDB和Galera集群是两种在数据库领域广泛应用的技术。MariaDB是MySQL的一个分支,由MySQL创始人之一领导开发,旨在提供更开放、社区驱动的数据库解决方案。Galera集群则是一种高可用性解决方案,它能实现MySQL或...
然后,我们需要配置 Mariadb 的集群参数,包括启动参数文件和 Galera 集群的配置。最后,我们需要配置 Haproxy,将流量分配到多个 Mariadb 节点上。 Mariadb 集群的搭建过程包括以下几个步骤: 1. 下载 Mariadb ...
MySQL Galera集群是一种高可用性的数据库集群解决方案,尤其适合需要强一致性和高读写性能的业务场景。在Galera集群中,所有的节点都是主节点,可以同时进行读写操作,这与传统的Master-Slave模式不同,后者通常只有...