lang110 发表于 2018-10-7 11:49:29

mysql+keepalived基于业务的高可用

  keepalived+mysql
  利用 keepalived 实现 MySQL 数据库的高可用。
  由于要做高可用,那么自然就需要 MySQL 双主模式,又因为数据库的特殊性,我们需要特别注意主备间的切换(不是想切就切),这个时候就需要 keepalived 非抢占模式。所以我们需要做:
  安装 MySQL 双主(被动)模式,实现数据的冗余备份
  安装 keepalived模式,实现 MySQL 数据库的故障切换
  实验拓扑:
  两台mysql的安装配置:
  yum install mariadb-server -y
  下面是 两台mysql双主模式的配置:
  vim /etc/my.cnf
  log-bin = bin

  relay-log =>  server-id = 1
  skip-slave-start = 1
  log-bin 是一定要开启的,主要用于主备之间的同步
  relay-log 重命名以下也有必要,这个参数可以不配置
  两个实例的 server-id 必须配置不一样
  skip-slave-start 是为了数据一致性
  核心配置:
  授权日志读取:

  grant replication slave,replication client on *.* to 'repluser'@'192.168.2.89'>  确定主:
  CHANGE MASTER TO MASTER_HOST='d-89',MASTER_USER='replication',MASTER_PASSWORD='123456',MASTER_PORT=3306, MASTER_LOG_FILE='bin.000001',MASTER_LOG_POS=245;
  start slave 之后sql线程就好了
  用户(replication slave的用户),密码正确一般io线程也正确
  测试双主配置是否可以,双主配置以后,后面的授权,只需要在一台机器上面做,就会同步到两台机器上;
  然后授权客户端

  grant select on *.* to ly@'192.168.2.39'>  netstat -tulnp | grep 3306
  show master status\G;
  .如果change语句有问题就 slave stop;

  create user zyx@192.168.2.110>  不用创建vip的用户,vip只是反向代理
  grant 和change master to 这两个命令请help 查看
  binlog的位置要在msater上看
  keepalived 的配置文件中添加VI—2 vrrp实例:id要不一样
  vrrp_instance VI_2 {
  state MASTER
  interface ens33
  virtual_router_id 52
  priority 100
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 11
  }
  virtual_ipaddress {
  192.168.2.110/24 dev ens33 label ens33:1
  }
  track_script {
  mysql
  }
  }
  实验测试:
  宕机一台mysql之后客户端依然可以正常访问。
  后期还应该添加mysql的测试脚本。

页: [1]
查看完整版本: mysql+keepalived基于业务的高可用