mariadb galera集群配置
博客专区 > 阿dai 的博客 > 博客详情
mariadb galera集群配置
阿dai 发表于3个月前
mariadb galera集群配置
  • 发表于 3个月前
  • 阅读 33
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

安装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: 集群名称

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

标签: MariaDB 集群
共有 人打赏支持
粉丝 44
博文 162
码字总数 231087
×
阿dai
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: