天天看点

云计算之mysql高可用_PXC

一、概念

  1. 介绍:基于Galera的mysql高可用集群解决方案,PXC集群主要由两部分组成:percona server with xtradb 和 write set replication patches(同步、多主复制插件)
  2. 特点:
    1. 数据强一致性、无同步延迟;
    2. 没有主从切换操作,无需使用虚IP;
    3. 支持innodb存储引擎;
    4. 多线程复制;
    5. 部署使用简单;
    6. 支持节点自动加入,无需手动拷贝数据。
  3. 服务端口:
    1. 3306 数据库服务端口
    2. 4444 SST端口(state snapshot transfer 全量同步)
    3. 4567 集群成员通信端口
    4. 4568 IST端口(incremental state transfer 增量同步)

二、PXC环境搭建

  1. 三台服务器

    pxcnode71 192.168.4.71 数据库服务器

    pxcnode72 192.168.4.72 数据库服务器

    pxcnode73 192.168.4.73 数据库服务器

  2. 同步/etc/hosts文件

    192.168.4.71 pxcnode71

    192.168.4.72 pxcnode72

    192.168.4.73 pxcnode73

  3. 安装软件
    1. 软件介绍

      percona-xtrabackup-24-2.4.13.1.el7.x86_64.rpm 在线热备程序

      qpress-1.1-14.11.x86_64.rpm 递归压缩程序

      percona-xtradb-cluster-server-57-5.7.25-31.35.1.el7.x86_64.rpm 集群服务程序

    2. 软件安装(pxcnode71-73)

      rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm

      yum -y install percona-xtrabackup-24-2.4.13.1.el7.x86_64.rpm

      rpm -ivh qpress-1.1-14.11.x86_64.rpm

      tar -xf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar

      yum -y install Percona-XtraDB-Cluster-*.rpm

  4. 配置服务
    1. 相关配置文件

      /etc/percona-xtradb-cluster.conf.d //所在目录

    2. 配置文件说明

      mysqld.cnf //数据库服务运行参数配置文件

      mysqld_safe.cnf //Percona Server 5.7 配置文件

      wsrep.cnf //PXC集群配置文件

    3. 修改数据库服务运行参数配置文件

      mysqld.cnf

      [mysqld]

      server-id=1 //server-id不允许重复

      datadir=/var/lib/mysql //数据库目录

      socket=/var/lib/mysql/mysql.sock //socket文件

      log-error=/var/log/mysqld.log //日志文件

      pid-file=/var/run/mysqld/mysqld.pid //pid文件

      log-bin //启用binlog日志

      logslaveupdates //启用链式复制

      expirelogsdays=7 //日志文件保留天数

    4. 修改Percona Server 5.7 配置文件【默认无需修改】

      [mysqld_safe]

      pid-file=/var/run/mysqld/mysqld.pid //pid文件位置及名称

      socket=/var/lib/mysql/mysql.sock //socket文件位置及名称

    5. 修改PXC集群配置文件

      wsrep.cnf

      wsrepclusteraddress=gcomm://192.168.4.71,192.168.4.72,192.168.4.73 //集群成员列表

      wsrepnodeaddress=192.168.4.71 //本机ip地址

      wsrepclustername=pxc_cluster //集群名称,三台必须相同

      wsrepnodename=pxcnode71 //主机主机名

      wsrepsstauth="sstuser:123456" //sst数据同步授权用户

  5. 启动服务
    1. 在1台上执行即可(192.168.4.71)

      systemctl start [email protected] //启动集群服务

      grep pass /var/log/mysqld.log //查看数据库管理员初始用户密码

      mysql -uroot -p'上步查看到的密码'

      alter user user() identified by "123456"; //修改用户密码(没有密码策略验证)

      grant reload,lock tables, replication client, process on . to [email protected]"localhost" identified by "123456"; //添加授权用户

    2. 在其他两台服务器上运行

      systemctl start mysql //启动数据库服务

      ss -anptu | grep :3306 //所有机器上查看数据库服务端口

      ss -anptu | grep :4567 //在所有机器上查看集群服务端口

三、测试PXC配置

> show status like "%wsrep%";

wsrep_incoming_addresses=192.168.4.71:3306,192.168.4.72:3306,192.168.4.73:3306  //成员列表

wrep_cluster_size=3 //集群服务器台数

wrep_cluster_status=Primary //当前集群状态

wrep_connected=on       //连接状态

wrep_ready=on           //集群状态
           

在任意一台上添加数据的授权用户,登录存储数据,建库建表,注意:建表时必须要有主键。

> grant all on *.* to [email protected]"%" identified by "123456";

mysql -h192.168.4.71 -utom -p123456 //访问集群
           

测试故障自动恢复:任何一台宕机都不影响用户存取数据,服务运行时自动同步宕机期间的数据。