配置galera + nginx实现mariadb mysql数据库多主模式

,,,,需求,解决问题点:

,,,, 1:现有的mysql数据主从模式,数据同步延迟;

,,,, 2: mysql主从进程经常崩溃,数据找平困难。

,,,, 3:数据库主从或者主主模式数据查询,写入慢;

,,4:mariadb或者mysql数据库节点性能需要指数级提升;

,,5:mariadb或者mysql数据库对数据安全性有较高的要求,

,,6:项目要求数据库有横向扩展的能力;

,,7:等等…

,,,

一,MariaDB Galera集群概要:

1。简述:

,,,MariaDB Galera集群是一套在mysql innodb存储引擎上面实现多主机及数据实时同步的系统架构,业务层面无需做读写分离工作,数据库读写压力都能按照既定的规则分发到各个节点上去。在数据方面完全兼容MariaDB和mysql .

2 .特性:

,,,(1)同步复制同步复制

,,,(2).Active-active多主机拓扑逻辑

,,,(3)可对集群中任一节点进行数据读写

,,,(4)。自动成员控制,故障节点自动从集群中移除

,,,(5)。自动节点加入

,,,(6)。真正并行的复制,基于行级

,,,(7)。直接客户端连接,原生的MySQL接口

,,,(8)。每个节点都包含完整的数据副本

,,,(9)。多台数据库中数据同步由wsrep接口实现

3。局限性

,,,(1)目前的复制仅仅支持InnoDB存储引擎,任何写入其他引擎的表,包括mysql。*表将不会复制,但是DDL语句会被复制的,因此创建用户将会被复制,但是插入mysql.user…将不会被复制的。

,,,(2)delete操作不支持没有主键的表,没有主键的表在不同的节点顺序将不同,如果执行选择极限……将出现不同的结果集。

,,,(3)在多主环境下锁定/解锁表不支持,以及锁函数GET_LOCK (), RELEASE_LOCK ()…

,,,(4)。查询日志不能保存在表中。如果开启查询日志,只能保存到文件中。

,,,(5)。允许最大的事务大小由wsrep_max_ws_rows和wsrep_max_ws_size定义。任何大型操作将被拒绝。如大型的数据加载操作。

,,,(6),由于集群是乐观的并发控制,事务承诺可能在该阶段中止。如果有两个事务向在集群中不同的节点向同一行写入并提交,失败的节点将中止。对于集群级别的中止,集群返回死锁错误代码(错误:1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)。

,,,(7).XA事务不支持,由于在提交上可能回滚。

,,,(8)。整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将是缓慢的。为了稳定的高性能要求,所有的节点应使用统一的硬件。

,,,(9)。集群节点建议最少3个。

,,,(10)。如果DDL语句有问题将破坏集群。



二:安装,配置


1:安装系统,内核版本

[root@galeradbnode-6-11 ~] #,

/etc/redhat-release 

Linux CentOS释放7.2.1511(核心),


[root@galeradbnode-6-11 ~] #,

uname -

Linux galeradbnode-6-11 3.10.0-327.18.2.el7。x86_64 # 1 SMP清华2016年5月12日11:03:55 UTC x86_64 x86_64 x86_64 GNU/Linux



mysqld 10.1.14-MariaDB


2:节点信息如下:

安装集群至少需要3个节点

galeradbnode-6-11 galeradbnode-6-12

galeradbnode-6-13



3:各节点配置百胜源:

猫在/etc/yum.repos.d/mariadb.repo<& lt; EOF

[mariadb]

名称=mariadb

baseurl=http://yum.mariadb.org/10.1/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

EOF


安装注意事项:

清理

/usr/bin/mysql *

/usr/sbin/mysql *




#确认本机防火墙上开放了所需TCP 3306和TCP 4567的端口

iptables -输入- eth0 - p TCP——dport 3306 - j接受

iptables -输入- eth0 - p TCP——dport 4567 - j接受




简单配置:


galeradbnode-6-12:172.16.6.12


安装mariadb:

yum - y安装mariadb-server


# # # # # # # # # #如果需要修改数据目录执行下面操作# # # # # # # # # # # # #

修改启动文件中数据存储目录

# vim/etc/init.d/mysql

basedir=/usr

datadir=/数据/3306/


创建数据目录

mkdir - p/数据/3306/

mkdir - p,/var/lib/mysql/

修改权限

乔恩- r mysql。mysql/数据/3306/数据

乔恩- r mysql。mysql,/var/lib/mysql/


#旧环境需要先删除旧文件

rm射频/var/lib/mysql/*


#初始化mysql服务

mysql_install_db——用户=mysql 

配置galera + nginx实现mariadb mysql数据库多主模式