zoukankan      html  css  js  c++  java
  • Mariadb galera 集群

     

        部署galera 多主架构 (galera集群多用于关键性业务,因为galera集群为了数据的一致性,采用的是同步的机制,这就使galera牺牲了一部分性能来换取数据一致性。)

    环境准备:三台服务器

    master:192.168.206.3

    master1:192.168.206.5

    master2:192.168.206.6

    yum配置

    操作系统:CentOS7.3

    数据库版本:MariaDB-10.3.7

    1>yum配置,(三端数据库信息保持一致)

    [mariadb]

    name=MariaDB

    baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/

    gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB

    gpgcheck=1

    2>关闭防火墙 

    3>三个主机都要互相解析

    vim /etc/hosts

    4>主节点编辑配置文件

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

    在 [ galera ] 下面

    wsrep_on=ON  wsrep_provider=/usr/lib64/galera/libgalera_smm.so     #galera的库文件的地址

    wsrep_cluster_address="gcomm://192.168.206.3,192.168.206.5,192.168.206.6"   #各节点的ip

    wsrep_node_name=node1         #节点主机名  

    wsrep_node_address=192.168.206.3 #节点ip

    binlog_format=row        #二进制日志设置为行模式  row (安全性最高,性能最低)

    default_storage_engine=InnoDB    #使用的默认引擎 innoDB  支持事务

    innodb_autoinc_lock_mode=2      #2为性能最好  

    wsrep_slave_threads=1              #并发线程数

    innodb_flush_log_at_trx_commit=0                   #0.log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在

                                                                                事务提交的时候,不会主动触发写入磁盘的操作,#1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该  模式为系统默                                                                              认。

                                                                               #2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同

                                                                                时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作

    innodb_buffer_pool_size=120M       #设置缓存池大小

    wsrep_sst_method=rsync             #远程同步

    wsrep_causal_reads=ON         #避免各个节点的数据不一致,这种情况需要等待全同步复制 将此文件复制到master1、master2,注意要把 wsrep_node_name 和 wsrep_node_address 改成相应                                                                          节点的 hostname 和 ip。

    注:graler 集群最好至少三个,两个的话。如果出现网络波动可能会出现脑裂;

    三端都需要配置

    5>第一次启动需要初始化

    &1

    mysqld_safe--wsrep_cluster_address=gcomm://192.168.206.3,192.168.206.5,192.168.206.6

     

    这里会hang住 ,等他执行一段时间就好,

    &2  执行  /bin/galera_new_cluster

     

    6>另外两端启动数据库

    service  mariadb restart

     7>查看集群状态(进程和端口)(查看wsrep 状态也可以)

    确保 wsrep 端口 :4567  与  mariadb端口: 3306 打开

    &show status like ‘wsrep%'

    8>测试

    &master端

    &master1端

     

    &master2端

     

    同步成功!

    注: 若三台主机 关机了,再起就起不来了。

    执行以下操作

    vim /var/lib/mysql/grastate.dat

    把safe_to_bootstrap更改为1

    # GALERA saved state

    version: 2.1 uuid:    a393feef-f639-11e8-9b89-4e75f9b8fb0f

    seqno:   -1

    safe_to_bootstrap: 1

  • 相关阅读:
    使用Jenkins进行android项目的自动构建(3)
    使用Jenkins进行android项目的自动构建(2)
    使用Jenkins进行android项目的自动构建(1)
    testlink 从1.8.5 升级到 1.9.8
    779. 第K个语法符号(Leetcode)
    687. 最长同值路径(Leetcode)(递归+树)
    116. 飞行员兄弟(Acwing)(递归+位运算)
    95. 费解的开关(Acwing)(分析+递推)
    Java遇到输入速度瓶颈时的解决办法
    92. 递归实现指数型枚举(Acwing)(递归)
  • 原文地址:https://www.cnblogs.com/myxxjie/p/10906882.html
Copyright © 2011-2022 走看看