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

最近在做这方面调优,顺便记录一下。

一、MariaDB Galera Cluster概要:

1.简述:

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

2.特性:

(1).同步复制 Synchronous replication

(2).Active-active multi-master 拓扑逻辑

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

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

(5).自动节点加入

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

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

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

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

3.局限性

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

(2).DELETE操作不支持没有主键的表,没有主键的表在不同的节点顺序将不同,如果执行SELECT…LIMIT… 将出现不同的结果集.

(3).在多主环境下LOCK/UNLOCK TABLES不支持,以及锁函数GET_LOCK(), RELEASE_LOCK()…

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

(5).允许最大的事务大小由wsrep_max_ws_rows和wsrep_max_ws_size定义。任何大型操作将被拒绝。如大型的LOAD DATA操作。

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

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

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

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

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

采用快捷的yum方式。

MariaDB.repo

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

版本可以参考baseurl 里面的连接,更换数字,以及系统位数

使用yum clearn all 清除缓存

10.1.X 后的版本和之前的不一样。没有Mariadb galera server 这个包。

yum -y install MariaDB-client MariaDB-common MariaDB-devel MariaDB-server MariaDB-shared galera

自己cmake 也可以。(觉得没必要)

然后更改配置文件(根据自身系统优化过后的)

[server]

[mysqld]
log-error = /data/mysql/error.log
skip-name-resolve
skip-host-cache
skip-external-locking #set client (except root)
init_connect = 'SET autocommit = 0'
init_connect = 'SET NAMES utf8'
init_connect = 'SET character_set_client = utf8'
init_connect = 'SET character_set_results = utf8'
init_connect = 'SET character_set_connection = utf8'
skip-character-set-client-handshake #log
#log-bin = /data/mysql/mysql_logs/binary_log/dbtest-bin
#log-bin-index = /data/mysql/mysql_logs/binary_log/dbtest-bin.index
#networking
wait_timeout = 10
max_allowed_packet = 64M max_connections = 300
max_connect_errors = 6000 event_scheduler = ON innodb_buffer_pool_instances = 8
innodb_file_per_table = 1 #每张表一个数据文件
innodb_log_files_in_group = 3
innodb_log_file_size = 768M
innodb_log_buffer_size = 16M
innodb_data_file_path = ibdata1:500M;ibdata2:500M:autoextend
innodb_buffer_pool_size = 22G
innodb_flush_log_at_trx_commit = 2 #可以提高性能,gslera保证不丢数据 innodb_max_dirty_pages_pct = 90
innodb_thread_concurrency = 0 #Set to 0 when using the threadpool
innodb_thread_sleep_delay = 500
innodb_concurrency_tickets = 5000
innodb_read_io_threads = 8
innodb_write_io_threads = 4
#innodb_io_capacity = 2000
innodb_lock_wait_timeout = 30
innodb_purge_threads = 1
innodb_purge_batch_size = 300
innodb_open_files = 2000
innodb_read_ahead_threshold = 56 innodb_flush_method = O_DIRECT
innodb_use_native_aio = on
innodb_use_sys_malloc = on
innodb_buffer_pool_dump_at_shutdown = 1
innodb_buffer_pool_dump_now = 1
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_load_now = 1 default-storage-engine=InnoDB
sql-mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
table_open_cache = 2000
open_files_limit = 65535
sort_buffer_size = 2M
thread_cache_size = 300
tmp_table_size = 128M
key_buffer_size = 1024M
read_buffer_size = 1M
read_rnd_buffer_size = 12M innodb_buffer_pool_populate = 1
thread_handling = pool-of-threads binlog_format =ROW
bind-address =0.0.0.0
datadir =/data/mysql
socket =/data/mysql/mysql.sock wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='galera01'
wsrep_cluster_address="gcomm://node1,node2,node3"
wsrep_node_name=node1
wsrep_node_address=172.16.38.172
wsrep_on=ON
default_storage_engine=InnoDB
wsrep_sst_method=rsync
wsrep_sst_auth=sst_user:dbpass

不一一解释了,当时用tpcc-mysql调优的参数。

启动第一个

service mysql start --wsrep-new-cluster

可能会点点点很长时间,但是我们可以通过日志看到数据库是否已经正常起来。

如果还在点点点,可以不用管,直接crtl+c

第二胎第三台就直接service mysql start 就行了。只要有一台在 就不用刚刚启动第一次的命令。

show status like 'wsrep%';

来查看集群状态

加上haproxy之后 需要添加允许haproxy 健康检查,和集群之间的互相访问

 grant all privileges on *.* to sst_user@localhost identified by 'dbpass';
insert into mysql.user (host,user) values ('172.16.38.178','haproxy');
grant all privileges on *.* to root@localhost identified by 'anjubao.com';
#如果insert 报错,有可能配置文件 有sql_mod 选项,是为了安全考虑的。

centos MariaDB10.1.X galera cluster的更多相关文章

  1. 【原】基于 HAproxy 1.6.3 Keeplived 在 Centos 7 中实现mysql mariadb galera cluster 集群分发读写 —— 上篇

    前言 有一段时间没有写blogs,乘着周末开始整理下haproxy + keeplived 实现 mysql mariadb galera cluster 集群访问环境的搭建工作. 本文集中讲hapr ...

  2. Centos 7 MariaDB Galera cluster 部署

    一.安装环境准备 1.系统: CentOS Linux release 7.4.1708 (Core) 2.hosts 10.6.32.51 openstack1 10.6.32.52 opensta ...

  3. Centos 7 下 Mysql 5.7 Galera Cluster 集群部署

     一.介绍 传统架构的使用,一直被人们所诟病,因为MySQL的主从模式,天生的不能完全保证数据一致,很多大公司会花很大人力物力去解决这个问题,而效果却一般,可以说,只能是通过牺牲性能,来获得数据一致性 ...

  4. 构建 MariaDB Galera Cluster 分布式数据库集群(二)

    MariaDB的安装 构建 MariaDB Galera Cluster之前,首先安装MariaDB,本文使用的版本是10.1 1.环境准备 主机: MariaDB01(192.168.56.102) ...

  5. MySQL高可用(Galera Cluster)

    Galera Cluster简介 Galera Cluster是集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案,目前Galera Cluster有两个版本,分 ...

  6. MariaDB Galera Cluster集群搭建

    MariaDB Galera Cluster是什么?   Galera Cluster是由第三方公司Codership所研发的一套免费开源的集群高可用方案,实现了数据零丢失,官网地址为http://g ...

  7. MariaDB Galera Cluster部署手册

    MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1>  yum install opens ...

  8. MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)

    MariaDB Galera Cluster 部署(如何快速部署MariaDB集群) [日期:--] 来源:Linux社区 作者:Linux [字体:大 中 小] MariaDB作为Mysql的一个分 ...

  9. Docker MariaDB 10.3 Galera Cluster 集群同步复制 多主 Docker Haproxy 负载均衡

    mariadb 现有动态列,支持json格式存储,类似mongodb的bson,但是操作能力较为尴尬,中间件有spider,我非常感兴趣的一个东西 关于spider 这里有一篇很好的博文,有时间一定得 ...

随机推荐

  1. Liferay 6.2 改造系列之二:清理不需要的Portlet

    一.特殊Portlet: 以下Portlet数据特殊用途的Portlet,去除后会出现运行错误: 1.站点模版 通过com.liferay.portal.events.AddDefaultLayout ...

  2. mac下mysql的安装

    由于最近需要布置mantis用来进行bug追踪,在此记录其过程. 由于PHP apache环境在Mac OS上是自带的,所以不需要另处下安装包,只需要简单配置一下即可. 首先打开终端输入命令: sud ...

  3. MFC CString to char* (Visual Studio 2015 亲测可用)

    右键划线部分,打开属性,然后找到:配置属性-常规-字符集,选择:使用多字节字符集 然后,char *c;CString str; 就可以 strcpy(c,str); 如果觉得好用,请点个赞,谢谢!

  4. Hadoop YARN资源隔离技术

    YARN对内存资源和CPU资源采用了不同的资源隔离方案.对于内存资源,它是一种限制性资源,它的量的大小直接决定应用程序的死活,因为应用程序到达内存限制,会发生OOM,就会被杀死.CPU资源一般用Cgr ...

  5. IDE-Sublime【1】-JsFormat插件格式化缩进问题

    JsFormat插件格式化Javascript代码的快捷键是ctrl+alt+f,发现默认缩进2个空格,但习惯上是4个空格,这里需要手动设置一下. 操作步骤: 1.打开Preferences-> ...

  6. android6.0 适配的问题——activity销毁的问题

    1.最近我去运行我们公司所开发的APP,发现出现很多问题,就是从前一个页面跳到另外一个页面后,前一个页面会被销毁. 正常来说,activity跳转过程是这样: A: 存在intent +setActi ...

  7. iSight集成Adams/View:Adams组件

    iSight本身支持特定版本的Adams/View,在Adams中添加isight的插件方法如下: 1.在iSight安装目录下搜索isight.bin文件,将其复制到Adams安装路径下的win32 ...

  8. hive :MetaException(message:Version information not found in metastore. )

    MetaException(message:Version information not found in metastore. ) Hive now records the schema vers ...

  9. <构建之法>第十三章到十七章有感以及这个项目读后感

    <构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...

  10. Tomcat目录结构及Tomcat Server处理一个http请求的过程

    http://blog.sina.com.cn/s/blog_62cb15980101jh9x.html 1.Tomcat的结构概述     Tomcat服务器是由一系列可配置的组件构成,其核心组件是 ...