miradb+galera+haproxy

galera简介:galera为msyql/mariadb提供主主复制,所有的msyql/mariadb  server是对等的,不分主从关系。下面搭建miradb+galera

本次环境为2台虚拟机,操作系统均为centos7 其中 :

node1:192.168.8.59

node2:192.168.8.140

1、关闭防火墙和selinux

2、配置yum源

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

3、在2台主机上分别安装以下几个服务

yum install rsync nmap lsof perl-DBI nc MariaDB-server MariaDB-client MariaDB-compat galera socat jemalloc

4、启动数据库服务,并且对数据库进行安全优化,“ mysql_secure_installation ”设置密码为‘root’

5、修改配置文件(两个服务端都要改,注意wsrep_node_address为本机ip)

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

#

[galera]

wsrep_on=ON

wsrep_provider=/usr/lib64/galera/libgalera_smm.so

wsrep_cluster_address=‘gcomm://192.168.8.59,192.168.8.140‘

wsrep_cluster_name=‘galera‘

wsrep_node_address=‘192.168.8.140‘

wsrep_node_name=‘node1‘

wsrep_sst_method=rsync

binlog_format=row

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

bind-address=0.0.0.0

wsrep_sst_auth=root:root

4、启动服务,查看端口

[[email protected] ~]# lsof -i:4567

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

mysqld  22162 mysql   11u  IPv4  44908      0t0  TCP *:tram (LISTEN)

mysqld  22162 mysql   13u  IPv4  44911      0t0  TCP 192.168.8.140:35922->192.168.8.59:tram (ESTABLISHED)

[[email protected] ~]# lsof -i:3306

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

mysqld  22162 mysql   32u  IPv4  45258      0t0  TCP *:mysql (LISTEN)

可以看到多一个4567的端口

5、查看状态

[[email protected] ~]# mysql -u root -p -e "show status like ‘wsrep%‘"

Enter password:

+------------------------------+--------------------------------------+

| Variable_name                | Value                                |

+------------------------------+--------------------------------------+

| wsrep_apply_oooe             | 0.000000                             |

| wsrep_apply_oool             | 0.000000                             |

| wsrep_apply_window           | 0.000000                             |

| wsrep_causal_reads           | 0                                    |

| wsrep_cert_deps_distance     | 0.000000                             |

| wsrep_cert_index_size        | 0                                    |

| wsrep_cert_interval          | 0.000000                             |

| wsrep_cluster_conf_id        | 2                                    |

| wsrep_cluster_size           | 2                                    |

| wsrep_cluster_state_uuid     | a857719c-2667-11e6-8e3f-aa2deb9d92a9 |

| wsrep_cluster_status         | Primary                              |

| wsrep_commit_oooe            | 0.000000                             |

| wsrep_commit_oool            | 0.000000                             |

| wsrep_commit_window          | 0.000000                             |

| wsrep_connected              | ON                                   |

| 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             | 5c7c83d5-2672-11e6-a40c-4ac0f0858b55 |

| wsrep_incoming_addresses     | 192.168.8.59:3306,192.168.8.140:3306 |

| wsrep_last_committed         | 11                                   |

| 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.166667                             |

| wsrep_local_recv_queue_max   | 2                                    |

| 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       | a857719c-2667-11e6-8e3f-aa2deb9d92a9 |

| wsrep_protocol_version       | 7                                    |

| wsrep_provider_name          | Galera                               |

| wsrep_provider_vendor        | Codership Oy <[email protected]>    |

| wsrep_provider_version       | 25.3.15(r3578)                       |

| wsrep_ready                  | ON                                   |

| wsrep_received               | 6                                    |

| wsrep_received_bytes         | 477                                  |

| 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                                    |

+------------------------------+--------------------------------------+

看状态时主要查看:

wsrep_cluster_size            2  #number of nodes
wsrep_connected              ON
wsrep_ready                    ON   #It‘s running,awesome !
wsrep_incoming_addresses     | 此时是连接的状态

可以看到状态为正常

测试!

在node1上创建数据库erick

MariaDB [(none)]> create database erick;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    16

Current database: *** NONE ***

Query OK, 1 row affected (0.06 sec)

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| erick              |

| information_schema |

| mysql              |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

在node2上查看,并且删除

MariaDB [(none)]> show databases;

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    4

Current database: *** NONE ***

+--------------------+

| Database           |

+--------------------+

| erick              |

| information_schema |

| mysql              |

| performance_schema |

+--------------------+

4 rows in set (0.00 sec)

MariaDB [(none)]>

MariaDB [(none)]> drop database erick;

Query OK, 0 rows affected (0.14 sec)

MariaDB [(none)]>

在node1上查看数据库是否被删除

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

+--------------------+

3 rows in set (0.00 sec)

MariaDB [(none)]>

至此实验完成!

参考出处:

http://tunnelix.com/mariadb-galera-cluster-installation/

https://geekdudes.wordpress.com/2015/07/18/setting-up-failover-cluster-for-mariadb-on-centos-7/

################################3

在此添加一台haproxy服务器做负载均衡,机器为centos6.5

hostname    ip

erick1     192.168.8.163

haproxy安装过程略。修改配置文件

[[email protected] ~]# cat  /etc/haproxy/haproxy.cfg

global

log 127.0.0.1 local0 notice

maxconn 65536

nbproc 10

ulimit-n 231097

tune.ssl.default-dh-param 1024

daemon

defaults

log     global

mode    http

option  httplog

option  dontlognull

option  forwardfor

retries 3

option redispatch

maxconn 65535

timeout connect 5s

timeout client 5m

timeout server 5m

timeout check   1s

timeout http-request    10s

timeout http-keep-alive 10s

listen Stats *:8080

mode http

stats enable

stats uri /

stats refresh 15s

stats show-node

stats show-legends

stats hide-version

listen  Mysqld  192.168.8.163:3306

#cookie SERVERID rewrite

mode tcp

maxconn 200

balance roundrobin

#option mysql-check user erick

server  node1 192.168.8.140:3306  check port 3306

server  node2 192.168.8.59:3306  check port 3306

这时可以在web上监控状态

可以看到msyql的状态,即使当断开一台msyql服务器时也不影响工作。

时间: 2024-11-09 23:25:50

miradb+galera+haproxy的相关文章

CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群

方案优势: Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短 每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集群中自动剔除 HAProxy能提供负载均衡和故障判断等功能解决服务器系统存在的单点故障 Keepalived能提供客户端连接数据库时使用的虚拟IP地址(VIP) 关于HAProxy的负载均衡算法 轮询方式(roundrobin):不适合用于backend为web服务器的情况,因为session.co

haproxy+keepalived来实现mariadb galera cluster的高可用架构

网络拓扑图如下: mariadb galera cluster集群基于wsrep协议可以实现mysql多主复制架构,详细说明如下: galera cluster复制: galera cluster本身是基于wsrep协议工作在底层的文件复制通道而已,只需要指明复制的文件,它会自动在多个节点之间的检测文件状态并完成数据同步.并且galera cluster向上提供API,其他组件只需调用其API,即可完成所需的文件复制功能. galera cluster向上提供API,mysql只需调用其API即

MariaDB数据库介绍之四、Galera Cluster

一.Galera Cluster Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,Galera集群的复制功能基于Galeralibrary实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API. 二.Galera  Cluster的功能和优势 功能: multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 并行复制,行级 优势: 因为是multi-

MariaDB Galera Cluster集群

一.MariaDB Galera Cluster概要: 1.简述: MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步的系统架构,业务层面无需做读写分离工作,数据库读写压力都能按照既定的规则分发到 各个节点上去.在数据方面完全兼容 MariaDB 和 MySQL. 2.特性: (1).同步复制 Synchronous replication (2).Active-active multi-master 拓扑逻辑 (

Percona-XtraDB-Cluster+haproxy+keepalived 编译安装

系统:centos7 192.168.1.55 mysql 端口3306 Percona-XtraDB-Cluster 主节点 192.168.1.56 mysql端口3307 Percona-XtraDB-Cluster+haproxy+keepalived 192.168.1.57 MySQL端口3307 Percona-XtraDB-Cluster+haproxy+keepalived 192.168.4.58/21 vip ip 软件版本:Percona-XtraDB-Cluster-5

Mariadb Cluster+Haproxy+keepalived 集群的详细安装与配置

要点概括 1.关闭iptables 或者设置常用端口为accept(关闭省事) 2.修改/etc/hosts ,设置RSA互信,避免在传文件需要密码 3.使用mariadb或者其他版本的DB带有WSREP功能 4.修改配置文件,在原来初始化的基础上加上WSREP的参数 5.启动第一个节点 6.在第一节点设置其他2节点的连接用户名和密码和配置文件设置一致 7.初始化启动其他节点 8.集群负载均衡和单点故障使用haproxy+keepalived 9.Haproxy+cluster状态检测 10.h

[转]MySQL-Galera Cluster With HAproxy

When I started working on Open Stack, I had to investigate about the HA of the nova component. Unfortunatly the nova configuration needed a single entry point to connect to the MySQL database. The solution that came to me was to use HAProxy on top of

mariadb galera集群配置

最近在看一些关于数据库的资料,从最开始的mysql的主从复制到mysql的双主+heartbeat实现mysql的高可用再到mysql+drbd+heartbeat实现底层数据同步的双主高可用再到mysql_mmm+amoeba实现双主多从的高可用和负载均衡以及读写分离,再到后来发现mysql自从被Oracle收购后已经越来越走向了封闭,更新也不如以前频繁,并且新版的mysql已经不支持GPL协议了...感觉mysql已经在Oracle手中渐渐没落了...后来发现了一个更好的替代方案那就是mar

Centos7 mariadb-galera-cluster-5.5+HAProxy+keepalived

1 服务器 mysql00 192.168.20.104 mysql01 192.168.20.102 mysql02 192.168.20.103 haproxy  192.168.20.105 haproxy1  192.168.20.106 2 yum源 vi /etc/yum.repos.d/galera.repo [galera] name=Galera baseurl=http://releases.galeracluster.com/centos/7/x86_64/ gpgkey=