! Configuration File for keepalived
global_defs {
notification_email {
}
router_id SLAVE
}
vrrp_script chk_mysql {
script "/data/script/mysql_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
nopreempt
virtual_router_id 131
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.209.16
}
track_script {
chk_mysql
}
}
监控脚本:
vim /data/script/mysql_check.sh
#!/bin/sh
mysqlstr=/usr/local/mysql/bin/mysql
host=localhost
user=root
password=123456
port=33061
mysql_status=1
$mysqlstr -h $host -u $user -p$password -P $port -e "show status;"/dev/null 21
if [ $? = 0 ] ;then
echo "mysql_status=1"
exit 0
else
pkill keepalived
fi
192.168.209.131:
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
}
router_id SLAVE
}
vrrp_script chk_mysql {
script "/data/script/mysql_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
nopreempt
virtual_router_id 131
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.209.16
}
track_script {
chk_mysql
}
}
配置文件:
vim /data/script/mysql_check.sh
#!/bin/sh
mysqlstr=/usr/local/mysql/bin/mysql
host=localhost
user=root
password=123456
port=33061
mysql_status=1
$mysqlstr -h $host -u $user -p$password -P $port -e "show status;"/dev/null 21
if [ $? = 0 ] ;then
echo "mysql_status=1"
exit 0
else
pkill keepalived
fi
对实验结果开始进行验证
192.168.209.132上获取到vip
把192.168.209.132上的mysqld给干掉
查看192.168.209.132上的mysqld和keepalived进程是否都被干掉了;虚拟IP是否切换到192.168.209.131上了
查看192.168.209.131上是否有VIP
把192.168.209.132上的keepalived和mysqld都启动起来 。先启mysqld再起keepalived
此时keepalived启动起来了,虽然权重比192.168.209.131的高,但是设置了不抢夺,所以192.168.209.132上的keepalived不会切换vip过来
此时,把192.168.209.131上的mysql停掉它
查看131上的mysql和keepalived是否已经都停止了
查看192.168.209.132上是否有VIP了
mysql 异步复制和半同步复制 在MySQL5.5之前,MySQL 的复制是异步操作 , 主库和从库的数据之间存在一定的延迟 , 这样存在一个隐患:当在主库上写入一个事务并提交成功,而从库尚未得到主库推送的Binlog日志时,主库宕机了,例如主库可能因磁盘损坏、内存故障等造成主库上该事务Binlog丢失,此时从库就可能损失这个事务,从而造成主从不一致 。
为了解决这个问题, MySQL5.5引人了半同步复制机制 。
在MySQL 5.5之前的异步复制时 , 主库执行完 Commit提交操作后,在主库写入 Binlog日志后即可成功返回客户端 , 无需等待Binlog日志传送给从库,如图31-7所示 。
而半同步复制时,为了保证主库上的每一个 Binlog 事务都能够被可靠的复制到从库上,主库在每次事务成功提交时,并不及时反馈给前端应用用户,而是等待其中一个从库也接收到 Binlog事务并成功写入中继日志后,主库才返回Commit操作成功给客户端 。半同步复制保证了事务成功提交后 , 至少有两份日志记录 , 一份在主库的 Binlog日志上 , 另一份在至少一个从库的中继日志Relay Log 上,从而更进一步保证了数据的完整性 。半同步复制的大致流程如图31-8所示 。
推荐阅读
- 物业中秋节公众号文章,物业中秋节公众号文章2022
- asp.net删除某个目录下所有文件系统,net怎么删除
- 有什么编辑视频的软件,有什么编辑视频的软件吗
- 包含flutter_book的词条
- go语言做开发接口 go语言做api接口
- 显卡松动费用怎么算,显卡松了怎么处理
- python爬虫爬取淘宝美食,怎么用爬虫抓取淘宝数据
- 钉钉直播课会被网监监控吗,钉钉网课直播老师会看见你吗
- php自动删除过期数据 php实现删除功能