设为首页 收藏本站
查看: 698|回复: 0

[经验分享] mysql主主复制+keepalived实现高可用

[复制链接]

尚未签到

发表于 2018-12-30 10:04:39 | 显示全部楼层 |阅读模式
  mysql最简单的高可用
  2台pc机
  mysql主主复制实现数据的同步
  keepalive实现双机热备,保证服务的正常运行
  1、环境
  Master1 10.0.0.201
  Master2 10.0.0.202
2Master1操作授权
  mysql>grant replication slave on *.* to'admin'@'10.0.0.202' identified by '123456';///授权
  mysql>show master status\G;
3Master2操作授权
  mysql->grant replication slave on *.* to'admin'@'10.0.0.201' identified by '123456';///授权
  mysql->show master status\G;
4、主1-201上操作
  change master to
  master_host='10.0.0.202',
  master_user='admin',
  master_password='123456',
  master_log_file='mysql-bin.000006',
  master_log_pos=-242;
  mysql->start slave;
  mysql->show slave status\G;
5、主2-202上操作
  change master to
  master_host='10.0.0.201',
  master_user='admin',
  master_password='123456',
  master_log_file='mysql-bin.000002',
  master_log_pos=242;
  mysql->start slave;
  mysql->show slave status\G;
  
6、主201 202同时安装keepalived (也可以用yum安装,我实验用的yum
  # tar -xvf keepalived-1.1.20.tar.gz
  # cd keepalived-1.1.20
  #./configure  --prefix=/usr/local/keepalived
  # make && make install
  # cp/usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/
  # cp/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  # mkdir /etc/keepalived
  # cp /usr/local/keepalived/etc/keepalived/keepalived.conf  /etc/keepalived/
  # cp /usr/local/keepalived/sbin/keepalived/usr/sbin/
  7.keepalived配置文件
  ! Configuration File for keepalived
  global_defs {
  notification_email {
  }
  notification_email_from Alexandre.Cassen@firewall.loc
  }
  vrrp_instance VI_1 {
  state BACKUP        ///2个都写为BACKUP不然noprempt没用,主的起了会抢占为主
  interface eth0        ///vip对外接口位置
  virtual_router_id 51   ///标识号,主主要统一
  priority 100          ///优先级,高的在初始时为主
  advert_int 2
  nopreempt          ///不抢占模式,在优先级高的上设置
  authentication{      ///认证
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {     ///虚拟ip
  192.168.1.137/24   dev eth0
  }
  }
  开始我想在keepalive配置文件里写脚本监控mysqld服务,然后一直有问题,我就自己在外面写脚本检测了,脚本如下:
  #!/bin/bash
  #Totle:check mysql
  #Description:check mysql status
  #Author:chenmin
  #date:2015-09-22
  check_mysql_health(){
  mysql -h***** -u***** -p**** -e "showslave status\G" >/dev/null 2>&1  ///按mysql授权写
  }///检测mysql的可用性
  check_keepalived_health() {                    ///检测keepalived服务是否开启
  health=`/etc/init.d/keepalived status|grep-c pid`   ///0时为没开启,1为正常
  [ $health = 0]&&/etc/init.d/keepalived start      ///如果没开启时就开启keepalived
  }
  main() {
  check_mysql_health&&check_keepalived_health    ///保证mysql可用时keepalived一定可用
  check_mysql_health||check_mysql_health||check_mysql_health|| /etc/init.d/keepalived stop
  }              ///若3次mysql可用检测都失败则关闭keepalived服务,让backup占用vip
  while true      ///死循环,2秒执行一次检测
  do
  main
  sleep 2
  done
  [root@localhost mysqlcheck]# nohup bash/etc/keepalived/mysqlcheck/check_mysql.sh &
  ///放后台执行检测
  可能还有很多不足,长连接会断开,vip起来时间可能得2秒多等,所以我准备下面用mysql-mmm来实现主主互切。
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657484-1-1.html 上篇帖子: keepalived实现网关服务器双机热备问题 下篇帖子: 集群负载均衡之lvs和keepalived
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表