脚本检测mariadb主数据库可用性,实时切换到从数据库

编写shell脚本 检测主mysql服务可用性,不可用则修改/etc/hosts文件中的 ip与db服务器对应关系

#!/bin/bash
#20180911
#author by efoni

DB_SERVER=(
192.168.181.129 #master
192.168.181.130 #slave
)
MARIADB_HOST="mariadb.fnqh"
echo date +%Y-%m-%d-%H:%M:%S

DB_IP=ping -c 2 $MYSQL_HOST|awk ‘NR==1 {print $3}‘|sed ‘s/(//g;s/)//g‘

mysql -h$MARIADB_HOST -uroot -pxxxxxx -e "show databases;" >>/dev/null 2>&1
CODE="$?"
while [$CODE -ne 0]
do
if ["$DB_IP" == "${DB_SERVER[1]"];then
sed -i "s/$DB_IP/${DB_SERVER[0]}/g" /etc/hosts
else
sed -i "s/$DB_IP/${DB_SERVER[1]}/g" /etc/hosts
fi
CODE=0
done

后台运行此脚本:
screen进入后台运行
输入while sleep 2;do sh auto_mariadb_monitor.sh ;done
或者nohup sh auto_mariadb_monitor.sh &后台运行
即可每隔2秒检测可用性并执行切换脚本。

原文地址:http://blog.51cto.com/efoni/2176235

时间: 2024-11-04 13:30:51

脚本检测mariadb主数据库可用性,实时切换到从数据库的相关文章

Exchange Server 2013 LAB Part 8.数据库可用性组

数据库可用性组 关于Exchange 2010数据库可用性组DAG可以参考博文连接: http://xutonglin.blog.51cto.com/8549515/1393411 1.为邮箱服务器Exch01和Exch02添加双网卡,一个网卡用于Mapi通讯,一个网卡用于群集数据同步. 2.应该这里DAG的成员是2个,所以需要添加见证服务器,我选择DC作为见证服务器,选择非Exchange服务器角色成员(除边缘传输服务器)作为见证服务器时,需要将组"Exchange Trusted Subsy

使用python3脚本部署mariadb主从架构

环境准备 一个脚本自动部署master服务 另一个部署slave服务 关闭主从节点的防火墙 以及事先设置好root远程登陆的权限. master import paramikossh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())ssh.connect(hostname='192.168.253.180',port=22,username='root',password='369369yn

SQLServer 数据库镜像+复制切换方案

目标: 主机做了Mirror和Replication,当主机出现问题时,Replication和Mirror实现自动的故障转移(Mirror 和Replication都切换到备机,而当主机 重新启动后,自动充当备机的角色). 环境: 五台虚拟机,配置均为Windows2008 Enterprise + SQLServer2008R2 Enterprise 08R201:Mirror 见证机(WITNESS)           IP:192.168.56.101 08R202:主机(Rep+Mi

SQLYog执行SQL脚本提示:错误代码: 1067 - Invalid default value for '数据库表'查询:解决办法

强烈建议:完全卸载当前版本MySQL,重新安装5.6及以上版本 完全卸载方法:https://jingyan.baidu.com/article/3d69c551611290f0ce02d77b.html 卸载完之后记得删除C:\ProgramData下的隐藏文件MySQL 这是我在网上查阅多方资料,尝试无数次,踩了很多坑之后得到的最优解决办法! 至于网上修改sql_mode之类的办法,亲测无效,可能和我代码有关,不做赘述! 出现该错误原因:MySQL版本不同,导致5.6版本之前和之后的语法有很

Dataguard主、备库切换方法总结

Dataguard主.备库切换方法总结 2019-04-11 分类:Oracle 阅读(754) 评论(0) 文章目录[隐藏] 一.主备切换: 一.主备切换: 1.将主库切换成物理standby: alter database commit to switchover to physical standby with session shutdown; startup mount; 2.备库执行切换成primary,完成后数据库是mount,需要open: recover managed sta

180多个数据库版本一键切换,PHPWAMP8.8.8.8(支持切换任意数据库,全面支持mysql等常见数据库)

PHPWAMP8.8.8.8版本支持一键切换数据库的PHP集成环境,纯绿色 支持切换任意数据库,默认全面支持mysql等常见数据库) 最新最旧版本的数据库都可以切换,同时运行不同版本的数据库! 完美兼容任何集成环境,多开,群开无压力,满足各种变态测试! 只需点击相关设置,切换你想要的任意版本即可,真正的一键自定义! 在一键自定义同时,完美兼顾用户的自主修改,各种DIY自定义 1.支持一键自定义设置MYSQL版本,180多个MYSQL历史版本随意切换! 2.优化旧版本的"700多个PHP版本随意切

恢复数据库可用性组成员服务器

简单看了下technet恢复数据库可用性组成员服务器,ex2013跟ex2010过程是一致的.可参考如下: http://blog.sina.com.cn/s/blog_6ecd398f0100mrwf.html 环境:2台mailbox 服务器构成的DAG,其中一台down机,恢复方法如下.我测试环境如下:一台DC(winosr201),同时做DAG仲裁,                          IP:172.16.1.1一台Exchange3角色(winosr202)(在实验环境快

【跨站点DAG】防止数据库活动副本切换到备份服务器

在很多大型企业里,为了尽量避免邮箱数据的丢失和对用户使用的影响,会建立跨站点DAG,譬如在广州总部放置MBX1和MBX2,在深圳放置容灾服务器MBX3,但是在有些特殊情况下若数据库活动副本切换到MBX3上会给用户体验和管理员管理带来极***烦. 数据库切换逻辑可参考下文: https://technet.microsoft.com/zh-cn/library/dd776123(v=exchg.150).aspx 防止备份站点的数据库副本自动激活,可以通过为服务器配置激活策略来限制数据库仅在同站点

windows下脚本检测tomcat是否启动,没有启动则启动

最近有个服务需要部署到windows server2003上面,机房没有windows ser的机器,没办法搞了个阿里云服务,购买的配置比较低, 不知道什么原因,tomcat启动后总是容易自动退出,搞了个脚本检测tomcat是否启动状态,没有启动则启动.然后放入定时任务每隔5分钟跑一次, 脚本如下: @echo offtitle Tomcat重啟脚本 ping -n 6 127.1 >nulwmic process where name="java.exe" get proces