Keepalived 监控 mysql 主从切换

1)、在两台机子上面分别安装 mysql , keepalived

2)、

keepalived 主从:

主:vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

state BACKUP    # 备用用 BACKUP

interface eth2   #用的是哪个网卡

virtual_router_id 59  #虚拟路由地址必须一样,才能配置成一个组

priority 100   # 备用用 90

advert_int 1  #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

nopreempt

authentication {

auth_type PASS  #(密码形式)

auth_pass 1111

}

virtual_ipaddress {

192.168.32.100

}

notify_master "/bin/bash -x /usr/local/sbin/modify_master.sh 2>&1 | tee /tmp/modi.txt"

#notify_master "/bin/echo master >> /etc/keepalived/temp.txt"

}

virtual_server 192.168.32.100 3306 {

delay_loop 6    #每隔6s 查询 realserver 状态

lb_algo rr    #lvs 算法

lb_kind NAT     #Direct Route

persistence_timeout 60    #会话保持时间,单位是秒(可以适当延长时间以保持session)

protocol TCP     # 用 TCP协议检查 realserver 状态

real_server 192.168.32.79 3306 {

weight 1

notify_down /usr/local/sbin/keepalived.sh

TCP_CHECK {

connect_timeout 10   #10s 无响应超时

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

从:vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

state BACKUP    # 备用用 BACKUP

interface eth2   #用的是哪个网卡

virtual_router_id 59  #虚拟路由地址必须一样,才能配置成一个组

priority 90   # 备用用 90

advert_int 1  #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

nopreempt

authentication {

auth_type PASS  #(密码形式)

auth_pass 1111

}

virtual_ipaddress {

192.168.32.100

}

notify_master "/bin/bash -x /usr/local/sbin/modify_master.sh 2>&1 | tee /tmp/modi.txt"

#notify_master "/bin/echo master >> /etc/keepalived/temp.txt"

}

virtual_server 192.168.32.100 3306 {

delay_loop 2    #每隔2s 查询 realserver 状态

lb_algo rr    #lvs 算法

lb_kind NAT     #Direct Route

persistence_timeout 60    #会话保持时间,单位是秒(可以适当延长时间以保持session)

protocol TCP     # 用 TCP协议检查 realserver 状态

real_server 192.168.32.87 3306 {

weight 1

notify_down /usr/local/sbin/keepalived.sh

TCP_CHECK {

connect_timeout 10   #10s 无响应超时

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}

其中主从 keepalived.sh:

#!/bin/bash

service keepalived restart

service mysql start

主从modify_master.sh:

#!/bin/bash

/usr/local/mysql/bin/mysql -uroot -p1234567 -e ‘set global read_only=0;‘

/usr/local/mysql/bin/mysql -uroot -h 192.168.32.87 -p1234567 -e ‘set global read_only=1;‘  (其中 -h 后面主机要么空格,要么加引号,从修改为:192.168.32.79)

mysql 主从 (需搭建互为主从):

主服务器:

server_id = 1

log-bin=aming

binlog-do-db=db1,db2   (binlog-ignore-db=mysql)

指定权限:

>grant replication slave on *.* to ‘repl‘@‘192.168.32.87‘ identified by ‘1234567‘;

>flush privileges;

>flush tables with read lock;  (unlock tables;)

查看主服务器状态:

>show master status;

从服务器:

server_id = 11

replicate-do-db = db1;  (replicate-ignore-db=mysql)

接下去把主服务器的数据拷贝到从服务器中

> stop slave;

> change master to master_host=‘192.168.32.79‘, master_port=3306,master_user=‘repl‘,master_password=‘1234567‘,

> master_log_file=‘aming.00001‘,master_log_pos=106;   (主服务器中 show master status 看到的数据)

> start slave;

 注:配置完之后需要重启,其中是否成功主从需要查看 从服务器中  show slave status 中的 SLAVE-IO-RUNNING 跟 SLAVE-SQL-RUNNING,并且查看 LAST-IO-ERROR 跟 Last_SQL_Error中是否报错

mysql 设置只读:

1) flush tables with read lock;  (退出终端失效)

2) set global read_only=1;   这个拥有super权限的仍然可以写操作

3) grant select....权限

当用 keepalived 进行主从配置的时候,应用那边需配置 keepalived 的 VIP 地址。

时间: 2024-12-16 10:55:20

Keepalived 监控 mysql 主从切换的相关文章

监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员

阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),请跳过错误 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) [[email protected] ~]# mysql -u root -proot -e "show slave status\G;" *************************** 1. row ***************************       

监控MySQL主从同步

脚本监控数据库主从同步 来源:http://oldboy.blog.51cto.com/2561410/1632876 来源: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟: 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分 [[em

使用zabbix监控mysql主从状态

公司mysql架构为一主多从.在日常使用过程中我们经常会遇到主从不同步的情况,为了及时处理此问题现使用zabbix监控mysql主从状态并设置触发器,如有异常则发送邮件报警. 我们都知道使用命令"show slave status \G"可以查看mysql从的状态,下面用脚本方式检查其状态. 在mysql-slave中进入zabbix-agent目录创建脚本文件. cat mysql_slave_status.sh #!/bin/bash /usr/local/mysql/bin/my

监控MySQL主从同步是否异常并报警企业案例模拟

企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误.阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 此题来自:http://oldboy.blog.51cto.com/2561410/1632876 解答参考1: #!/bin

shell监控MySQL主从状态脚本两则

内容为自己的一点总结,如有不对欢迎狠劲儿拍砖 本文来自http://yijiu.blog.51cto.com/转载请经博主同意,翻版可耻 监控主从复制正常与否 相比各位都应该知道,监控主从是否工作正常,涉及命令如下: show slave status\G; 那么,我们需要关注的参数如下: 1. 首先查看SQL和IO线程是否为YES状态(想必各位都明白了) 2. 是否有延迟 是否大于0   #一般生成环境延迟是否大于500秒,如果大于500则报警,如大于1000则严重报警 #比如传递一个sql到

zabbix自定义监控mysql主从状态,并做邮件告警

 通过zabbix自定义监控mysql主从状态,并做邮件告警 分析: mysql主要是通过主从来提供安全性,一个完整的主从体系,就应该包括数据同步.开启二进制日志.全备.还有对Slave_IO_Running和Slave_SQL_Running两个线程的实时监测,并做告警,而zabbix监控软件就提供了很好的方法:对于zabbix这个监控软件,个人来说也是比较熟悉,现在的企业们都基本用的是zabbix软件来做系统的资源的监控,zabbix的强大不仅仅体现于,它自身自带的监控模板比较全面,而是通过

mysql主从切换维护时的几点注意

随着业务量的不断增加,数据库的压力总是会越来越大的,如果是要对mysql数据库的硬件升级,势必是要对mysql主从做切换,mysql的主从复制的结构如果不借助第三方工具时做mysql的高可用,要做主从的切换是要做停机维护手动切换的,这里就以普通的一主一从的结构中简单的说一说mysql数据库主从切换的几个要注意的点: 1.server id以前看见很多人在做主从切换的时候没有注意到这一点,导致slave IO报错,包括自己也有过,这个还是要稍微注意下,尤其是在mysql的大规模集群下 2.在主从切

利用Zabbix监控mysql主从

mysql主从监控 #脚本如下,截取主从关键字 cat check_mysql_slave.sh  #!/bin/bash # declare -a 定义数组,slave_is 会被视为数组 declare -a slave_is slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk '{print $2

监控mysql主从脚本

一.下载并解压sendEmail cd /usr/local/src wget tar -zxvf sendEmail-v1.56.tar.gz cp sendEmail-v1.56/sendEmail /usr/local/bin/     拷贝之后就能用了 发邮件命令: sendEmail [email protected] -t [email protected] -s smtp.163.com -u "test"-xu zhang_peicheng -xp xxxxxxxxxx