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的下载

    • 官网下载地址
    • 参考资料浅谈MariaDB Galera Cluster架构
  • Galera Cluster安装与配置

    • 实验环境

      • node1 centos7 192.168.20.30
  • node2 centos7 192.168.20.31

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

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

    Galera Cluster实现数据库高可用集群_第1张图片

  • 安装依赖及软件

    Galera Cluster实现数据库高可用集群_第2张图片

    ![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

      Galera Cluster实现数据库高可用集群_第3张图片

      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

      Galera Cluster实现数据库高可用集群_第4张图片

      mysql -uroot -p
    • 修改密码

      image-20191209152719110

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

      Galera Cluster实现数据库高可用集群_第5张图片

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

      image-20191209153704892

      Galera Cluster实现数据库高可用集群_第6张图片

      image-20191209153844110

      Galera Cluster实现数据库高可用集群_第7张图片

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

      Galera Cluster实现数据库高可用集群_第8张图片

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

      Galera Cluster实现数据库高可用集群_第9张图片

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

      Galera Cluster实现数据库高可用集群_第10张图片

      Galera Cluster实现数据库高可用集群_第11张图片

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

      Galera Cluster实现数据库高可用集群_第12张图片

      Galera Cluster实现数据库高可用集群_第13张图片

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

      Galera Cluster实现数据库高可用集群_第14张图片

      其他两个节点查看同步

      Galera Cluster实现数据库高可用集群_第15张图片

      Galera Cluster实现数据库高可用集群_第16张图片

你可能感兴趣的:(Galera Cluster实现数据库高可用集群)