目前,我想将我的部门SQL Server合并成一个分布在两台服务器上的大型SQL Server 2008实例(出于冗余原因)。
如何/最好的方法是什么? 它是通过集群或日志传送还是VMware(pipe理程序)高可用性function?
注意:此数据库服务器无法closures,因为它正在托pipeVCenter数据库以及服务器监视数据库。
SQL Server分布在几个较小的服务器上(3-4个SQL Server 2000和2005),在这些服务器中总共有70个数据库,我想要做的就是将它们全部迁移到SQL Server 2008中,它是多余的,所以如果一台服务器因为某种原因失败了,另一台服务器可以直接把它拿起来。
所以从几个较小的SQL Server中,我想将它们整合到一个更强大的SQL Server 2008 x64中。 但到目前为止,还不知道哪种技术适合于该技术,或者是否可以在SQL Server 2008 Standard中执行。
任何build议和意见将不胜感激。
它是通过集群或日志传送还是VMware(pipe理程序)高可用性function?
不不不。
镜像,3台服务器(一个可以是一个小的免费的,只是决定哪些工作继续)。
日志传送被放慢/延迟,群集/ VMWare将一个数据库视为仍然可能被破坏的弱点。
TomTom有它的正确,但让我扩展几个关键点:
日志传送非常适合灾难恢复,对于最新的数据来说并不是很好。 根据您的设置,您的数据总是比较老,比如15分钟到1小时甚至更多。 重新连接不是无缝的。 您需要重新configuration您的应用程序以指向新系统。 此外,第二个数据库不在线,通常处于恢复模式(应用日志),因此您需要将其从恢复模式中取出才能使用。 这就是为什么它通常只用于灾难恢复。
当你处于任何延迟的链接上时,集群并不是你想要的。 它提供了高度可用的SQL接口,但它不会使您的数据高度可用,除非您的SAN可以为您做到这一点。 我不会尝试在DC之间进行聚类。
镜像。 在这种情况下,镜像是你的朋友。 镜像有两种基本模式:同步或A同步。 两种模式都是共同的:每个SQL服务器都有自己的本地数据库副本,但只有一个SQL服务器可以“拥有”它。 换句话说,即使你有三台SQL服务器,但其中只有一台正在使用。 其他人都处于待机模式,等待被激活。
在同步模式下,当接收到写入事务时,它将同时由所有SQL服务器执行,并且下一个事务不会被处理,直到每个SQL服务器都报告它已提交事务。 这确保了每个SQL服务器都有完全最新的数据。 这对于高速,低延迟的链接来说是非常好的,对于高延迟链接来说不是那么好,因为它将有效地降低数据库的速度,使其成为最慢的合作伙伴。
在asynchronous模式下,SQL服务器不会等待所有其他SQL合作伙伴提交事务。 它只是在本地提交并继续。 每个其他的SQL服务器可能是后面的一些事务,特别是如果它们之间的链接负载较重。 这意味着您可以全速访问活动数据库,但是如果发生故障转移,则可能会丢失一些数据。 另外,这种模式仅适用于SQL企业版。
VMWare HA。 那么,这是一个蠕虫的整个jar头。 这很好,但同样需要共享相同的SAN才能正常工作。 或者你在谈论VMWare FT(容错)? 如果你是,我build议此刻忘记FT的SQL服务器。 金融时报在理论上是非常好的,我甚至使用它一个虚拟机,但是对于大多数部署来说,你需要做出的牺牲太大了。 另外,因为虚拟机与海誓山盟正在locking,带宽问题将会影响性能。
为了pipe理自动故障切换function,集群为您提供了一个虚拟实例,您可以连接到虚拟实例,并且所有操作都是对用户不可见的。 对于镜像,您可以在networking负载平衡(Network Load Balancing)angular色:1433
上运行,以便当SQL服务器离开networking时,虚拟实例将切换到其他节点。 或者,根据您的应用程序支持,您可以在SQL连接string中指定备用镜像服务器。
您可能对我收到的对SQL Server 2008 R2 100%可用性的回答感兴趣。