我可以在没有镜像的SQL连接字符串中使用故障转移合作伙伴吗?

时间:2009-06-19 16:24:14

标签: sql-server replication failover mirroring

我承认我有点像小气鬼,但我不想为通过镜像获得SQL Server自动故障转移所需的三台服务器,特别是因为三者中的一台除了是一台之外什么都不做见证服务器。

如果我从主服务器到备份服务器设置正常的SQL复制(例如快照),我可以在ASP.NET应用程序中设置我的连接字符串以包含“Failover Partner = backup”吗?似乎客户端上的ADO.NET应该只尝试主服务器,然后在主服务器不可用的情况下故障转移到备份。

或者这只适用于镜像吗?

(我喜欢镜像的想法,但如果您不想为见证服务器付费,则必须手动将备份服务器切换为主要服务器。)

谢谢!

4 个答案:

答案 0 :(得分:3)

我还在搜索关于在非镜像环境中是否支持FailoverPartner的原始问题的答案。在我们的环境中,有一个通过复制同步的辅助数据库。

为了测试,我在SSIS OLEDB源中设置了以下连接字符串:

Data Source=PRIMARY;FailoverPartner=SECONDARY;Provider=SQLNCLI10.1;
                            Network=dbmssocn;Database=myDB;User ID=user;Password=password;

当我跑步时,我看到以下错误

  

连接尝试故障转移到不是的数据库   配置为数据库镜像。

因此,除非辅助服务器实际处于镜像配置状态,否则似乎无法实现。

答案 1 :(得分:2)

根据Microsoft的SQL Server 2005/2008许可条款,您只需要一个许可证(每个CPU)用于主SQL服务器。

您不必为镜像购买额外的SQL Server许可证,因为镜像服务器仅与主服务器通信。

如果发生故障转移,您有30天的故障转移回主服务器,否则您将需要购买其他许可证。

以下是许可详细信息的链接,请参阅第2页的被动服务器/故障转移支持。

Microsoft's Licensing Overview...

答案 2 :(得分:1)

Gregor,如果我没记错的话,你的见证服务器可以在非常便宜的硬件上运行SQL Express(即使你需要也可以在台式机上运行)。据我所知,没有使用聚类或镜像与证人进行自动故障转移。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms189590.aspxhttp://msdn.microsoft.com/en-us/library/ms175191.aspx

从第二个网址获取剪辑:“我们强烈建议见证人与合作伙伴位于不同的计算机上。数据库镜像合作伙伴仅受SQL Server 2005 Standard及更高版本以及SQL Server 2005 Enterprise Edition及更高版本的支持相比之下,证人也得到SQL Server 2005 Workgroup及更高版本以及SQL Server 2005 Express Edition及更高版本的支持。见证人可以在任何支持SQL Server任何版本的可靠计算机系统上运行。但是,我们建议用作见证的每个服务器实例都对应于您运行的SQL Server Standard版本所需的最低配置。“

答案 3 :(得分:0)

我正在寻找类似的东西;是否可以将故障转移伙伴指定为一个和一个唯一的连接字符串; - 显然只要存在故障转移伙伴; - 数据库引擎非常聪明,可以在主服务器故障转移时进行平衡(幸运的是);