简介
Galera是一种新型的高一致性MySQL集群架构,集成了Galera插件的MySQL集群,是一种新型的,数据不共享的,高度冗余的高可用方案。当有客户端要写入或者读取数据时,随便连接哪个实例都是一样的,读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步到其它节点上面,这种架构不共享任何数据,是一种高冗余架构。
环境
系统环境
系统使用 CentOS 6.8
软件环境
源码包 | 版本 | 下载地址 |
---|---|---|
mysql-wsrep | None | 点此自行选择合适的版本下载 |
步骤
建议查看官方文档:http://galeracluster.com/documentation-webpages/installmysqlsrc.html
安装编译环境
1 | yum -y install make gcc-c++ gcc cmake bison-devel ncurses-devel perl bison git automake \ |
编译mysql
自行下载集成wsrep补丁的MySQL后解压 这里使用MySQL 5.6的版本
1 | cmake \ |
编译galera插件
1 | git clone https://github.com/codership/galera.git |
初始化mysql运行环境
1 | useradd mysql -M -s /sbin/nologin |
修改配置文件
修改 /etc/my.cnf
[mysql]
!includedir /etc/mysql/conf.d/
编辑 /etc/mysql/conf.d/my_galera.cnf
[mysql]
#设置mysql client default character
default-character-set=utf8
no-auto-rehash
prompt="\\u@\\h:\\d \\r:\\m:\\s>"
[mysqld]
user=mysql
bind-address=0.0.0.0
character-set-server=utf8
default-storage-engine=INNODB
default-time-zone='+8:00'
datadir=/usr/local/mysql/data/
socket=/usr/local/mysql/data/mysql.sock
skip-name-resolve
#slow query
slow_query_log=on
log_output=FILE
slow_query_log_file=slow_query.txt
long_query_time=1
max_connections=5000
table_open_cache=2048
sort_buffer_size=8M
thread_cache_size=16
#query_cache_size=32M #galera: Do not use query cache
# Try number of CPU's*2 for thread_concurrency
thread_concurrency=8
#MyISAM
key_buffer_size=512M
read_buffer_size=8M
read_rnd_buffer_size=8M
#InnoDB
innodb_buffer_pool_size=1G
innodb_additional_mem_pool_size=20M
#galera innodb参数
binlog_format=ROW
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
transaction-isolation=READ-COMMITTED
#galera cluster参数
wsrep_provider=/usr/local/mysql/lib/plugin/libgalera_smm.so
wsrep_provider_options="gcache.size=300M; gcache.page_size=1G"
wsrep_sst_method=rsync
wsrep_sst_auth=wsrep_sst-user:123456
wsrep_cluster_name=MyCluster
wsrep_cluster_address="gcomm://"
wsrep_node_name=galera.node1
wsrep_node_address="172.17.0.3"
注意:根据实际情况更改配置文件,第一个启动的节点wsrep_cluster_address
的值为gcomm://
,其他节点启动的时候要将这个值改为第一个节点的IP 比如gcomm://172.17.0.3
。wsrep_node_address
修改为自己的IP就好了
启动集群
先启动集群的第一个节点 也就是
wsrep_cluster_address
的值为gcomm://
的那个节点,然后依次启动其他的就好了。
1 | service mysqld start |
附录
Galera集群好像并不是那么可靠。。。 机器的数据越多 性能的提升率就越低。