Galera Cluster实现数据库高可用集群

### Galera Cluster实现数据库高可用集群

  • 介绍

    • Galera Cluster不同于常规的MySQL Server软件,安装了额外的插件,也需要额外的配
    • Galera Cluster要求最少3个节点,即3台MySQL服务器主机
    • Galera Cluster复制仅仅支持支持事务的InnoDB存储引擎
    • 任何写入其他引擎的表,包括mysql.*表将不会复制,但是DDL语句会被复制的,因此创建用户将会被复制,但是insert into mysql.user…将不会被复制的
    • DELETE操作不支持没有主键的表
    • 整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将是缓慢的。为了稳定的高性能要求,所有的节点应使用统一的硬件
  • 优点

    • 多节点写入和读取需求
    • 适合数据库节点数据一致性要求高的业务
    • 适合数据高可用性要求高的业务
  • Galera Cluster的下载

  • Galera Cluster安装与配置

    • 实验环境

      • node1 centos7 192.168.20.30
  • node2 centos7 192.168.20.31

    • node3 centos7 192.168.20.32
  • 注:主机均已关闭防火墙与selinux

  • 将下载的安装包上传至服务器

    image-20191209150642470

  • 安装依赖及软件

    image-20191209151203454

    ![image-20191209151315859](https://img2018.cnblogs.com/blog/1241092/201912/1241092-20191209221346260-1354139926.png)
    
    ![image-20191209151721443](https://img2018.cnblogs.com/blog/1241092/201912/1241092-20191209221345942-120168666.png)
    
    ![image-20191209151832958](https://img2018.cnblogs.com/blog/1241092/201912/1241092-20191209221345640-421358576.png)
    
    ```shell
    

    yum install rsync
    yum install galera-3-25.3.28-1.el7.x86_64.rpm
    yum install mysql-wsrep-{client,common,libs,server}-*
    yum install mysql-wsrep-5.7-5.7.28-25.20.el7.x86_64.rpm
    ```

    • 修改配置文件

      image-20191209151937238

      image-20191209152110691

      user=mysql
      binlog_format=ROW
      bind-address=0.0.0.0
      default_storage_engine=innodb
      innodb_autoinc_lock_mode=2
      innodb_flush_log_at_trx_commit=0
      innodb_buffer_pool_size=122M
      wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
      wsrep_provider_options="gcache.size=600M; gcache.page_size=300M"
      wsrep_cluster_name="test-cluster"
      wsrep_cluster_address="gcomm://192.168.20.30,192.168.20.31,192.168.20.32"
      wsrep_sst_method=rsync
      wsrep_node_name=node1
      wsrep_node_address="192.168.20.30"
      
  • 初始化mysql

    image-20191209152310365

      /usr/bin/mysqld_bootstrap
    
    • 获取临时密码

      image-20191209152413046

      cat /var/log/mysqld.log | grep temporary
      
    • 登录mysql

      image-20191209152625313

      mysql -uroot -p
      
    • 修改密码

      image-20191209152719110

      alter user root@localhost identified by 'L1g2qwe.';
      flush privileges;
      
    • 查看集群状态

      image-20191209153004120

      show status like 'wsrep_cluster_size';
      #value 表示目前集群中的主机数量
      
    • 为另外两台主机进行相同配置及安装(主配置文件略有不同)

      image-20191209153704892

      image-20191209153746110

      image-20191209153844110

      image-20191209153914638

    • 安装过程中若遇到如下错误

      image-20191209153605013

      则需要将发生依赖冲突的包卸载

      image-20191209153644575

    • 启动mysql(不能进行初始化否者无法正常登录)

      image-20191209154616379

      image-20191209154119349

    • 登录mysql(因为Galera Cluster启动时自动同步了账号密码所以密码为第一台设置的密码)

      image-20191209154646589

      image-20191209154435200

    • 测试在任意节点创建数据库后查看其他节点是否同步

      image-20191209155030348

      其他两个节点查看同步

      image-20191209155104327

      image-20191209155123221

posted @ 2019-12-09 22:16  MirL  阅读(817)  评论(0编辑  收藏  举报