SQL Server误区30日谈 第10天 数据库镜像在故障发生后 马上就能发现

时间:2024-01-13 02:40:08 

误区10.数据库镜像在故障发生后,马上就能发现

错误

市面上大肆宣传数据库镜像技术可以在故障发生后,立即检测到错误并进行故障转移。

但事实并不是这样,检测到故障发生的速度要取决于故障的类型。

检测故障发生的最快的情况是,镜像中的主体实例崩溃,从而镜像服务器每秒一次的PING就无法返回值,从而知道主体服务器上不再有这个进程侦听相应的TCP端口,这种情况下,镜像服务器几乎瞬间就能发现故障。

检测到故障发生第二快的情况是主体服务器的操作系统崩溃。此时主体服务器不再响应镜像服务器的PING,从而在镜像服务器PING超时后发现错误。这个超时的阈值默认是10秒。但你也可以延长这个时间,这时,故障发生时间完全取决于PING的超时时间。

检测到故障第三快的情况是是主体的日志磁盘不可用,此时SQL SERVER仍然会发起IO请求,但20秒IO等待无法写入日志后发现日志磁盘不可用,最终40秒后宣告磁盘日志不可用,从而让镜像服务器上线。SQL SERVER是十分有耐心的,比如拿锁来说,SQL SERVER对于锁会无限等待,除非遇到死锁才进行干预。

还有,损坏页有可能完全不会引发故障,如果查询报了823或是824错误,镜像技术完全不会关注(SQL SERVER 2008之后这个问题得到修复: SQL Server 2008: Automatic Page Repair with Database Mirroring),如果数据回滚的过程中遇到823错误或是824错误,数据库立刻会变为质疑状态,也就是日志和数据不统一。这也会导致镜像失败。

你在圣经上学习到的那些教条也不是需要完全遵循的嘛:-)

标签:数据库镜像,故障
0
投稿

猜你喜欢

  • 详解Hadoop2.7.2 编译64位源码

    2023-08-29 13:41:59
  • ASP 一次下载网页中的所有资源

    2008-04-18 13:04:00
  • Tensorflow 实现分批量读取数据

    2023-09-23 23:04:44
  • 小xiao说说创意图标设计心得

    2009-11-18 12:27:00
  • SQL Server本地时间和UTC时间的相互转换实现代码

    2024-01-21 06:35:33
  • 抓包工具Fiddler的使用方法详解(Fiddler中文教程)

    2022-09-21 03:34:55
  • DreamweaverMX 2004打造细线表格

    2008-10-01 09:39:00
  • JavaScript中的"类" 序言

    2008-02-18 13:26:00
  • Mac上Go环境和VS Code的正确安装与配置方法

    2024-05-08 10:16:45
  • 使用Python编程分析火爆全网的鱿鱼游戏豆瓣影评

    2023-10-11 00:35:26
  • Python股票数据可视化代码详解

    2021-11-29 15:48:47
  • Mysql数据库事务的脏读幻读及不可重复读详解

    2024-01-16 04:27:20
  • Python使用剪切板的方法

    2022-01-25 02:17:39
  • Python中Django与Echarts的结合用法图文详解

    2022-02-09 23:10:29
  • python通过opencv实现批量剪切图片

    2021-05-12 12:50:14
  • ASP字符串16进制互转

    2008-06-24 12:28:00
  • range 标准化之获取

    2023-09-01 05:35:11
  • 如何制作一个从Access数据库中读取记录的下拉菜单?

    2010-06-29 21:23:00
  • python神经网络InceptionV3模型复现详解

    2021-05-29 16:53:01
  • python利用pd.cut()和pd.qcut()对数据进行分箱操作

    2022-03-26 07:57:45
  • asp之家 网络编程 m.aspxhome.com