Mariadb Galera Cluster 集群搭建

站在巨人的肩膀上

part.0 环境信息

操作系统: centos7.4
集群节点数: 3
主机信息:
192.168.1.217 node1 selinux=disable
192.168.1.227 node2 selinux=disable
192.168.1.238 node3 selinux=disable

part.1 集群搭建步骤

1.1 修改hosts文件信息

$ vi /etc/hosts
192.168.1.217 node1
192.168.1.227 node2
192.168.1.238 node3

1.2 引入mariadb repo 文件

$ vi /etc/yum.repo.d/mariadb.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

然后进行安装

$ sudo yum install MariaDB-server MariaDB-client galera

1.3 mariadb 初始化与权限分配

systemctl start mariadb
mysql_secure_installation 

在初始化过程中,可以对root密码进行修改等操作
然后对用户进行授权

mysql> grant all privileges on *.* to root@'%' identified by '密码';
mysql> flush privileges;

1.4 配置 galera

$ vi /etc/my.cnf.d/server.cnf

[galera]
wsrep_on=ON 
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.217,192.168.1.227,192.168.1.238"
wsrep_node_name= node1
wsrep_node_address=192.168.1.217
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=120M
wsrep_sst_method=rsync
wsrep_causal_reads=ON

此文件在三个节点中都需要修改。并且根据节点的信息来修改wsrep_node_address和wsrep_node_name两项,修改为相应节点的hostname和ip。

part.2 启动集群

启动 MariaDB Galera Cluster 服务:

$ galera_new_cluster
$ systemctl start mariadb

启动后可以查看集群的状态,集群服务将使用4567和3306两个端口。

$ netstat -tulpn | grep -e 4567 -e 3306
tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      13436/mysqld        
tcp6       0      0 :::3306                 :::*                    LISTEN      13436/mysqld  

其他节点的启动方式相同。

part.3 验证集群是否正常

3.1 查看galera插件

MariaDB [(none)]>  show status like "wsrep_ready";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wsrep_ready   | ON    |
+---------------+-------+

3.2 查看集群集齐数

MariaDB [(none)]> show status like "wsrep_cluster_size";
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

3.3 查看集群状态

MariaDB [(none)]> show status like "wsrep%";
+------------------------------+----------------------------------------------------------+
| Variable_name                | Value                                                    |
+------------------------------+----------------------------------------------------------+
| wsrep_apply_oooe             | 0.000000                                                 |
| wsrep_apply_oool             | 0.000000                                                 |
| wsrep_apply_window           | 1.000000                                                 |
| wsrep_causal_reads           | 6                                                        |
| wsrep_cert_deps_distance     | 0.000000                                                 |
| wsrep_cert_index_size        | 0                                                        |
| wsrep_cert_interval          | 0.000000                                                 |
| wsrep_cluster_conf_id        | 7                                                        |
| wsrep_cluster_size           | 3                                                        | 集群成员
| wsrep_cluster_state_uuid     | f16cdbb3-495a-11e9-8b44-df48c6cbb633                     | 集群唯一标识
| wsrep_cluster_status         | Primary                                                  | 主服务器
| wsrep_cluster_weight         | 3                                                        | 
| wsrep_commit_oooe            | 0.000000                                                 |
| wsrep_commit_oool            | 0.000000                                                 |
| wsrep_commit_window          | 1.000000                                                 |
| wsrep_connected              | ON                                                       | 当前是否连接
| wsrep_desync_count           | 0                                                        |
| wsrep_evs_delayed            |                                                          |
| wsrep_evs_evict_list         |                                                          |
| wsrep_evs_repl_latency       | 0/0/0/0/0                                                |
| wsrep_evs_state              | OPERATIONAL                                              |
| wsrep_flow_control_paused    | 0.000000                                                 |
| wsrep_flow_control_paused_ns | 0                                                        |
| wsrep_flow_control_recv      | 0                                                        |
| wsrep_flow_control_sent      | 0                                                        |
| wsrep_gcomm_uuid             | c81b04a3-495b-11e9-9b95-3bff3ad9deb1                     |
| wsrep_incoming_addresses     | 192.168.1.227:3306,192.168.1.238:3306,192.168.1.217:3306 | 连接中的数据库
| wsrep_last_committed         | 6                                                        | sql提交记录
| wsrep_local_bf_aborts        | 0                                                        | 执行事务过程被本地中断
| wsrep_local_cached_downto    | 18446744073709551615                                     |
| wsrep_local_cert_failures    | 0                                                        |
| wsrep_local_commits          | 0                                                        |
| wsrep_local_index            | 0                                                        |
| wsrep_local_recv_queue       | 0                                                        |
| wsrep_local_recv_queue_avg   | 0.000000                                                 |
| wsrep_local_recv_queue_max   | 1                                                        |
| wsrep_local_recv_queue_min   | 0                                                        |
| wsrep_local_replays          | 0                                                        |
| wsrep_local_send_queue       | 0                                                        |
| wsrep_local_send_queue_avg   | 0.000000                                                 |
| wsrep_local_send_queue_max   | 1                                                        |
| wsrep_local_send_queue_min   | 0                                                        |
| wsrep_local_state            | 4                                                        |
| wsrep_local_state_comment    | Synced                                                   |
| wsrep_local_state_uuid       | f16cdbb3-495a-11e9-8b44-df48c6cbb633                     | 集群ID
| wsrep_open_connections       | 0                                                        |
| wsrep_open_transactions      | 0                                                        |
| wsrep_protocol_version       | 9                                                        |
| wsrep_provider_name          | Galera                                                   |
| wsrep_provider_vendor        | Codership Oy <info@codership.com>                        |
| wsrep_provider_version       | 25.3.25(r3836)                                           |
| wsrep_ready                  | ON                                                       |
| wsrep_received               | 4                                                        |
| wsrep_received_bytes         | 494                                                      |
| wsrep_repl_data_bytes        | 0                                                        |
| wsrep_repl_keys              | 0                                                        |
| wsrep_repl_keys_bytes        | 0                                                        |
| wsrep_repl_other_bytes       | 0                                                        |
| wsrep_replicated             | 0                                                        |
| wsrep_replicated_bytes       | 0                                                        |
| wsrep_thread_count           | 2                                                        |
+------------------------------+----------------------------------------------------------+

3.4 查看连接的主机

MariaDB [(none)]> show status like "wsrep_incoming_addresses";
+--------------------------+----------------------------------------------------------+
| Variable_name            | Value                                                    |
+--------------------------+----------------------------------------------------------+
| wsrep_incoming_addresses | 192.168.1.227:3306,192.168.1.238:3306,192.168.1.217:3306 |
+--------------------------+----------------------------------------------------------+

3.5 测试是否能同步

在node1节点创建一个数据库,然后在其他节点进行验证。

MariaDB [(none)]> create database tests;
Query OK, 1 row affected (0.010 sec)

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| tests              |
| mysql              |
| performance_schema |
+--------------------+

在其他节点使用show databases,查看是否同样有tests数据库。

补充:

异常问题1:galera主机非正常关机,比如遭遇停电等情况。
异常处理: 可直接开启galera集群的主服务器主机的mariadb服务,在开启成员主机的mariadb服务。

异常问题2 :galera集群的主服务器和成员主机的mysql服务无法启动。
异常处理: 删除garlera主服务器的/var/lib/mysql/grastate.dat状态文件,galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。删除galera成员主机中的/var/lib/mysql/grastate.dat状态文件,systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容