虚IP解决AlWaysON读库服务器过保替换
公司核心交易数据库,使用SQL 2012 AlWaysON的1主4从,有2台(8.14,8.15)从库服务器,已经使用3年多,过保替换,新买的2台服务器已经安装好,一开始方案如下:
服务器(8.14)替换方案:
1, 需提前修改程序连接8.14的配置和DBMS,改成8.15服务器并重启相关服务
2, 监控几天未有程序使用8.14数据库服务器
3, 凌晨2点—5点,在AlwaysON集群中删除8.14服务器
4, 修改原8.14(1.14)成新IP,修改8.84的IP成(8.14)
5, 配置新的8.14机器加入8.13的故障转移集群
6, 新8.14还原3个数据库和日志
7, 配置新8.14的3个数据库加入AlwaysON集群
8, 测试新8.14的可用性
自己想了想,这个机会,可以用DNS解决以前程序连IP的故障问题,一旦程序连的8.14服务器出现故障,连接8.14程序要全部修改重启,太麻烦,故障一发生,一定是个大事故,想用这个机会用DNS解决,到时真的出问题
只需要修改DNS解析IP就可以。
后来跟开发和测试沟通, 测试觉得涉及到程序太多,修改起来的确麻烦,开发那边觉得,公司内网的DNS解析稳定性不可靠,一个开发负责人说他以前的有老东家准备用dns域名来做,后来取消了,不可靠。
这么多人反对,用DNS方案来替换不行。
后来大家讨论: 能否用虚IP来解决这个程序修改的问题,这样以前用8.14,8.15 这样的IP就不用改任何程序,把这个类似的8.14等IP提成虚IP,因为Windows没有虚IP的说法,就是直接加上一个IP。
在线下做了一个模拟环境,模拟线上用虚IP来更换服务器:
测试报告 线下测试机:
192.168.60.36(主)
192.168.60.133/60.152/60.247 (备机) 配置SQL Server AlwaysON 1主3从
测试删除节点:
1, 删除备机60.133的SQL Server AlwaysON集群 (1分钟内)
2, 删除备机60.133的Windows集群 (1分钟内)
3, 修改60.133的IP
4, 在60.247增加60.133的新IP
5, 其他机器连60.133数据库正常
测试下来,用虚IP方案是可行了,后来又连续测试了一周,没有什么异常。后来和开发测试讨论,方案如下:
8.15旧机器替换 删除8.15节点:
1, 删除备机8.15的SQL Server AlwaysON集群 (1分钟)
2, 删除备机8.15的Windows集群 (1分钟)
3, 修改8.14的IP (3分钟)
4, 在8.14增加8.15的新IP (3分钟)
5, 测试连8.15数据库是否正常 (10分钟)
新加节点8.85
提前配置好账号密码(已处理),提前几个小时还原最新的完整数据库备份(3个),提前半小时备份最新的3个数据库日志
1, 新加备机8.85到windows集群 (1分钟)
2, 还原最新的8.13的3个数据库日志 (15分钟)
3, 配置8.85到SQL Server AlwaysON集群 (15分钟)
4, 删除8.14的8.15 IP (3分钟)
5, 在8.85新加8.15 IP (3分钟)
6, 测试连8.15数据库是否正常 (10分钟)
定在周日凌晨的1:00--5:00,这个时间,2台机器替换下来,花了大约2个小时,替换过程比较顺利。
总结:
1,以前我们老是说linux的虚IP,在windows中很少去做这个,这次把实机的IP变成一个可以虚的IP,根据需要在不同的服务器增加,删除。达到减少服务器不可用时间,又能快速解决问题。
2,用虚IP来解决这个服务器替换,的确是一个比较省时省力的办法。
虚IP解决AlWaysON读库服务器过保替换的更多相关文章
- 虚IP解决程序连只读服务器故障漂移
目前公司有一套核心交易数据库配置了AlWaysON,SQL 2012版本, 1主4从, 其从库(8,14, 8.15) 这2台只读的从数据库服务器, 后台程序和wms等很多程序,都是直接配置IP连接这 ...
- 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题
如题所示,keepalived安装配置好之后能够正常启动,但是虚IP并没有生成.接着检查防火墙(iptables)发现也没有相关的限制.稍微郁闷了一下之后,查看了keepalived日志文件,这次成功 ...
- 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- VRRP虚IP漂移
简介 VRRP 是 Virtual Router Redundancy Protocol 的简称,即 虚拟路由冗余协议 . 原文地址:https://linux-network-programming ...
- 虚IP切换原理
高可用性HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性.HA系统是目前企业防止核心计算机系统因故 ...
- 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记》[转]
转载地址:http://bbs.chinaunix.net/archiver/tid-1823500.html 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 ...
- Windows下使用命令行设置ip地址的DNS服务器
使用命令行或者编写bat批处理设置网络连接的IP地址以及DNS服务器地址有时候会比手动更加方便,IP地址和DNS的设置一般是配合的,常用到的几个状态是: 1.IP地址动态获取,DNS也动态 2.IP地 ...
- 封了1000多个IP地址段,服务器现在坚如磐石,对付几个小毛贼还是很轻松的
封了1000多个IP地址段,服务器现在坚如磐石 root登陆权限取消,防火墙装上,关闭所有没必要的端口,外层加装路由器映射, 修改常用端口,将常用端口改成陷阱程序,只要访问我这些陷阱端口,程序直接dr ...
随机推荐
- Unity经典游戏教程之:弓之骑士
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...
- 旁友数独会伐啦?python秒解数独了解下伐啦?
前几天和隔壁邻居玩斗地主被发现了,牌被没收了,斗地主是斗不了了,但我还想和邻居玩耍.如果你还想斗斗地主,戳:趁老王不在,和隔壁邻居斗斗地主,比比大小 想破脑袋终于让我想到一个游戏,数独!什么叫数独?数 ...
- linux100day(day3)--常用文本处理命令和vim文本编辑器
今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...
- java高并发系列 - 第27天:实战篇,接口性能成倍提升,让同事刮目相看,现学现用
这是java高并发系列第27篇文章. 开发环境:jdk1.8. 案例讲解 电商app都有用过吧,商品详情页,需要给他们提供一个接口获取商品相关信息: 商品基本信息(名称.价格.库存.会员价格等) 商品 ...
- 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)
本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程 ...
- Go 语言基础——go语言如何优雅的进行测试
我们可以为Go程序编写三类测试,即:功能测试(test).基准测试(benchmark),也称性能测试(example) #### 测试文件的约定 1. 测试文件的主名称应该以被测试文件主名称为先导, ...
- 《深入理解Java虚拟机》- JVM如何进行异常处理
一.Java异常 在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境,例如用户的坏数据.试图打开一个不存在的文件等.为了能够及时有效地处理程序中的运行错误,Java 专门 ...
- (四十二)c#Winform自定义控件-进度条扩展
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- 行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道
非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解. 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关. ...
- helm安装kafka集群并测试其高可用性
介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 这种动作( ...