前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mariadb galera集群配置 转

mariadb galera集群配置 转

作者头像
阿dai学长
发布2019-04-03 10:58:44
7930
发布2019-04-03 10:58:44
举报
文章被收录于专栏:阿dai_linux

安装mariadb galera

配置本地mariadb galera安装yum源:

源地址:http://yum.mariadb.org/ 

把这个站中的10.0.20/centos6-amd64/目录整个下载下来,放到本地做成本地源来使用,本地源的配置如下:  

代码语言:javascript
复制
[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

分别在四台服务器上面使用命令安装套件:

代码语言:javascript
复制
yum -y install MariaDB-Galera-server MariaDB-client rsync galera

开始配置:

安装好mariadb galera,启动数据库,使用命令service mysql start启动,启动之后需要对数据库进行安全加固,删除一些不需要的账户,这里就不进行赘述了。然后需要添加一个同步数据的用户,在四台服务器上进入数据库中实行下面的命令:

代码语言:javascript
复制
grant all privileges on *.* to 'wsrep_sst-user'@'192.168.1.%' identified by 'password';

flush privileges;

之后退出数据库,创建配置文件:

代码语言:javascript
复制
[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,也可以使用下面的命令来使防火墙开启相应端口:

代码语言:javascript
复制
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节点,之后就可以进数据库中查询同步状态了,可以使用下面的命令查询数据库同步状态:

代码语言:javascript
复制
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状态。这样就可以确定数据库已经同步了,接下来创建一个数据库测试是否真的能同步数据。

代码语言:javascript
复制
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上面进行的操作

代码语言:javascript
复制
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: 集群名称

具体使用方法可以自行百度!

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/09/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装mariadb galera
  • 开始配置:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档