开发者社区> 技术小甜> 正文

案例分享:数据库镜像故障转移失败

简介:
+关注继续查看

对于关键性数据库,我们配置了带有见证服务器的同步数据库镜像,来允许自动故障转移。一切运行正常,直到有一次数据中心的突然断电。数据库镜像执行了故障转移,但是运维反馈说应用程序挂起了。当我们手动切换回来,应用程序又正常工作。为什么应用程序没有也故障转移呢?

 

这是使用数据库镜像的合理的常见问题,像这样的生产应用失败,是因为在镜像部署后没有做故障转移测试。在失败的故障转移之后我们感到棘手。

 

为了避免生产应用停机,我们在测试环境复制了线上的镜像环境。在确认应用和数据库镜像正常工作后,我们将主服务器关机,应用完全挂起。

 

我们检查了,镜像服务器已经成功初始化了一个故障转移,并在线作为主服务器。我们也检查了镜像数据库为在线状态,可以被新的主服务器本地访问,并且主服务器也可以像被应用程序使用一样被远程客户端访问。

 

然后,我们来检查应用程序。和开发聊了下,他确认应用程序是使用ADO.NET来连接SQL Server,并使用显式客户端重定向,在SqlConnection的ConnectionString属性指定镜像服务器名。(顺便说一句,使用显式客户端重定向总是比隐式客户端重启定向要好,隐式依赖于客户端连接建立时自动缓存的镜像服务器名)

 

那为什么应用程序没有故障转移呢?

 

我深入探究应用程序是如何处理连接失败,发现根本没有应对存在的连接失败的代码!基本上,当应用程序初始化,应用会打开一个到SQL Server的连接,并且绝不尝试重连。

 

结果发现:尽管DBA部署了数据库镜像,没有和开发讨论过高可用性,因此应用程序代码没有改变。在开发修复后,应用程序连接层可以应对连接失败和执行重连逻辑,在数据库故障转移之后可以完美工作。

 

这个故事告诉我们,需要重新构建应对发生的连接失败和重连,来让故障转移正确工作。在这个案例中,如果我们在部署在生产环境之前,在测试环境尝试了数据库镜像故障转移,那客户端就会发现这个问题了。

 

具体原理和应用程序的代码示例,可参考以下文章:   













本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1905921 ,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【镜像更新】Windows Server 2019 数据中心版
信息摘要: Windows Server 2019 数据中心版镜像更新适用客户: 使用Windows Server的用户版本/规格功能: 镜像ID: win2019_64_dtc_1809_zh-cn_40G_alibase_20190318.
4486 0
征文分享|OceanBase 3.1.2 数据库性能测试探索
本文系 OceanBase 第二届技术征文大赛参赛作者“大数据模型”投稿,也是获得本届征文大赛优秀奖的文章。
33 0
2021亚太杯A|B|C题全网最全解题思路+数据分享
题图像处理和边缘检测。这题较难,适合有相关专业背景的同学选择。 边缘检测就按题目说的那两种方法,比较坑的是有这 种,这种也好办,背景是白色的,物件中也有白色,这里可以用多次用卷积函数 处理,然后二值化,循环几次就搞定了,或者是用形态学方法,也可以把中间白 色区域给填补了,边缘检测后,就需要对轮廓进行分段,这个就是题目的难点, 可以这么来,依次遍历边缘点,可以先检测直线,这个很好办,依次加入点坐标 进去,斜率不发生明显变化,那就可以定义为直线段,其他的都是弧线,剩下的 弧线,从某点开始,依次连接其他点,算斜率,斜率方向要么绕顺时,要么逆时, 改变方向就是下一个弧线。
54 0
境外银行数据治理——思路分享
前言:在数据治理领域的文章大多都是从业务角度进行切入,本文从纯技术角度切入,介绍了数据血缘关系的图分析思路、领域建模层面构建中间层的思路。以及纯粹从词法分析和语法分析的统计学层面维度。
110 0
U-Time巡回完美收官 演讲嘉宾干货分享:数据篇
导读:“如何开展更贴近业务的数据分析,如何更高效的进行垂直化运营”这是很多企业面临的问题,绕不开的一道坎。日前,【友盟+】U-Time巡回沙龙于7月12日落下帷幕,解答了该问题。 5位【友盟+】产品专家、9位知名企业嘉宾、2000+位参会者,相聚上海、杭州、深圳、广州四座城市,共同探讨了“更懂业务的数据运营新玩法”。 来源:【友盟+】
1455 0
2021亚太杯C题全网最全解题思路+塞罕坝林场数据数据分享
2021亚太杯C题全网最全解题思路+塞罕坝林场数据数据分享
91 0
逐渐老化数据中心正在转移存储优先权
本文讲的是逐渐老化数据中心正在转移存储优先权,当今的公司要怎样做才能更好地管理不断超越存储容量的数据增长?人们能做得首要之事就是整合。第二件事是提高利用率,使用虚拟化或是数据在空间中转移的能力。
885 0
MySQL超时参数以及相关数据集成、DataX数据同步案例分享
一、背景 MySQL系统变量提供关于服务器的一些配置和能力信息,大部分变量可在mysqld服务进程启动时设置,部分变量可在mysqld服务进程运行时设置。合理的系统变量设值范围,是保障MySQL稳定提供服务的重要因素。
13322 0
前沿分享|阿里云数据库高级技术专家 宋利兵:阿里云企业级自治数据库RDS详解
本篇内容为2021云栖大会-企业级云原生数据库最佳实践论坛中,阿里云数据库高级技术专家 宋利兵关于“阿里云企业级自治数据库RDS详解”的分享。
267 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载