SQL Server 镜像是否可靠(高可用性)?

Sly*_*Sly 3 high-availability database-mirroring sql-server

我正在评估 SQL Server 2008 镜像(异步)以提供更好的可用性。根据您的经验,我想知道 SQL Server 镜像是否是一种可靠且成熟的技术。自动故障转移不是强制性的,但很好。因此,我分别评估镜像机制和自动故障转移机制。

  • 镜像机制可靠吗?是否需要持续配置和调整?

  • 自动故障转移选项可靠吗?是否需要持续配置和调整?

问候,

Pau*_*dal 12

是的,数据库镜像是一种可靠的技术,如今许多企业客户都在使用它。我曾帮助人们在 Microsoft 内部和外部设置镜像 - 我曾经在负责 SQL Server 存储引擎时拥有数据库镜像。

与任何 HA 技术一样,在选择帮助您实施 HA 策略的技术之前,您需要了解您的要求和限制。如果您在执行此操作之前选择技术并尝试对其进行改造以满足您的要求,那么您将不会获得成功的策略。

我刚刚为 SQL 团队编写了一份关于 HA 与 SQL Server 的 35 页白皮书 - 它将在 SQL PASS 之前发布。同时,要了解要问自己的问题类型,请参阅我的这篇博文:HA:在选择高可用性解决方案时,您从哪里开始?. 对于数据库镜像,您需要考虑:

  • 您的应用程序生态系统中有多少个数据库?即,哪些资源需要立即全部进行故障转移。超过 2-3 个,您可能会考虑使用 SAN 复制进行故障转移群集。
  • 在单个应用程序生态系统之外,您要镜像多少个数据库?超过 10 个,您将开始看到工作线程、内存和共享镜像发送缓冲区上的等待问题。
  • 什么是事务日志生成率?
  • 什么是网络带宽和延迟?这两件事决定了镜像是否与主体同步 - 以及您在异步模式下(来自大型发送队列)可能会看到多少数据丢失或由于必须等待事务在服务器上被强化而导致的工作负载吞吐量退化镜像(用于同步模式)

等等。

设置镜像后,您需要对其进行监控以确保其在您想要的参数范围内工作 - 需要监控的最重要的事情是 SEND 和 REDO 队列 - 这使您可以衡量镜像落后多远以及如何故障转移分别需要很长时间。它不需要在常见场景中进行持续调优,但与任何技术一样需要YMMV。

自动故障转移 - 这取决于。有多种场景需要考虑,哪些网络链路发生故障,哪些镜像伙伴发生故障,以及实际故障是什么。查看此博客文章以获取故障列表:搜索引擎问答 #3:数据库镜像故障转移类型和合作伙伴超时

这有点令人费解,但总而言之,是的,镜像是可靠的,不需要过多的调整和监控。SQL Server 2008 添加了一些很酷的新东西来提供帮助 - 日志流压缩和自动页面修复 - 我已经在我的数据库镜像博客文章类别中讨论过这两项内容。

最后 - 有很多不错的白皮书您应该查看(请参阅我们的白皮书 uber-links 页面上的数据库镜像链接- 我在 SS2008 中写了一篇关于将数据库镜像与事务复制相结合的文章)和一本新书Pro SQL Server Mirroring

希望这可以帮助!