SQL Server上的高可用性,解决scheme的优缺点?

我正在为我的论文研究SQL Server的高可用性。 我了解到有几种解决scheme来归档这个:

  • 故障转移群集
  • 日志传送
  • 复制

据我所知,这些解决scheme在以前的SQL Server 2008版本中得到了支持.SQLS 2008提供了数据库镜像,这被认为是更好的解决scheme 。 我真的怀疑这一点。 请告诉我这些解决scheme的利弊,他们应该使用什么策略,什么策略不应该。 详细信息和解释会帮助我很多

非常感谢你。

布伦特包括日志传送和数据库镜像,所以我不会进入。 关于此主题的必读内容是Allan Hirt的书“ Pro SQL Server 2005高可用性” 。 我知道这是2005年,但它与SQL Server 2008也有95%的相关性。 您必须阅读此文才能对可用选项有一个很好的理解。 以下是我对布伦特回应的补充:

故障转移群集

如果财务,电力和服务器机房资源不是一个限制,那么这是我对SQL Server高可用性的首选。 您需要共享磁盘存储(通常是SAN)才能正常工作,而我更愿意将C驱动器放在SAN上,以方便DR。 我设置的方法是在群集中为每个SQL Server实例提供法定LUN(Q),MSDTC LUN(M)和装入点。 在挂载点内为SQLData,SQLLogs,SQLBackups和可选的SQLtempdb设置一个LUN。 对于一个实例,您将以D:\ SQLData,D:\ SQLLogs,D:\ SQLBackups,D:\ SQLtempdb(例如)结束。 对于下一个实例,您可能有E:\ SQLData,E:\ SQLLogs,E:\ SQLBackups,E:\ SQLtempdb。 所有共享磁盘都需要呈现给群集中的所有节点。 在我的生产环境中,故障转移是自动的,需要大约20秒。 它是强大的,但如果你没有经验,可能会很棘手。

虚拟化的SQL服务器

您尚未探索的一个选项是使用VMware ESX服务器来托pipe您的数据库服务器。 我非常喜欢这个选项,但是还没有把它部署在生产环境中的信心。 我非常成功地在非生产环境中部署它,技术非常出色。 我认为它只适用于中等到轻度加载的SQL Server,如果性能严重或工作负载很高,则不应使用它。 SQL Server到ESX主机的一对一映射是非常理想的configuration。 vmware VMotion是比故障转移群集更短停机时间的优秀技术。 我看到一个在服务器上播放的video的演示,服务器故障转移,video运行没有毛刺。 现在,这令人印象深刻!

SQL Server复制

这可能不适用于第三方应用程序,因为它可能需要更改架构。 SQL Server复制不是为高可用性而devise的,而是devise用来在其他位置提供数据的副本。 由于它的复杂性,我不推荐使用它来获得高可用性。 但是,由于它提供的粒度级别较低,在某些情况下它可能很有用 – 例如,可以对数据进行水平和垂直分区。

第三方磁盘复制

像NSI这样的解决scheme也可以考虑高可用性,但是我更喜欢将它用于非SAN系统的灾难恢复。 它基本上将块级别的数据复制到目标服务器,目标服务器监视源服务器的可用性。 如果不可用,则会触发故障转移条件,您可以将其设置为自动故障转移或手动故障转移警报。 故障转移时间与SQL Server群集类似。 优点是你不需要任何特殊的硬件来完成它,但是软件许可证可能很昂贵。

备份还原

不是真正的高可用性解决scheme,但对于一些需求比较宽松的人来说,这个非常简单的解决scheme可能会提供您需要的一切。 只需将计划中的数据库备份到备份服务器,并确保备份文件在目标计算机上可用。 设置一个作业来恢复备份的文件,而且你有廉价的原始高可用性解决scheme。

日志传送:

概述:主体上的事务排队等待磁盘,然后根据复制计划发送到镜像。 日志基于计划应用于镜像数据库。

SQL版本:Standard,Enterprise

pipe理工作:将镜像上的networking共享设置为事务日志的放置位置,运行SQL向导进行设置

自动故障转移:除非见证服务器存在,否则不可能

手动故障转移:涉及将未提交的事务日志文件应用于数据库

失败的顾虑:中等,因为它依靠Windows在镜像上呈现networking共享。 如果应用镜像站点上的事务日志,它们将会build立起来

I / O:高于镜像

镜像:

概述:委托人的交易是委托人承担的,并发送到镜像。 当镜像提交事务时,它告诉主体它已准备好另一个。

SQL版:企业版

自动故障转移:除非Witness服务器存在,否则不可能

手动故障切换:如果连接存在,请将镜像模式切换到同步。 如果没有连接,则发出SQL语句来执行强制服务还原。 对然后可以重新同步

性能:与日志传送相比较低

个人实验室工作:

使用SQL 2005 Standard和Enterprise进行操作。

我发现日志传送是纸上的一个好主意,但是在我的实验室中设置和执行故障转移却很复杂。 镜像是非常优雅的,我知道一个事实,交易承担对两个。

当需要将目标作为主要目标时,我不想修改应用事务日志文件。 如果你需要一个短暂的RTO,我会实验镜像。

您需要详细了解有关同步(事务被标记为完成之前的两个对),与镜像对的asynchronous(对主体提交,然后发送到目标)复制模式的更多信息。 有了局域网,你可以在同步模式下运行它们,但是通过广域网,你将不得不在同步模式下观看延迟(小于10-20ms),否则你的应用程序的响应速度会变慢。

请注意,只有SQL 2005企业版支持asynchronous(也称为“高性能模式”)或将SQL Server上的SAFETY属性设置为“OFF”。

对不起,我没有任何集群经验。

MSDN来源

数据库镜像概述http://msdn.microsoft.com/zh-cn/library/ms189852%28SQL.90%29.aspx