5

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

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

或者这只适用于镜像?

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

谢谢!

4

4 回答 4

4

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

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

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

当我运行时,我看到以下错误

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

因此,除非辅助服务器实际上处于镜像配置中,否则这似乎是不可能的。

于 2011-08-19T15:09:10.770 回答
2

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

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

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

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

Microsoft 的许可概述...

于 2009-11-10T08:41:44.550 回答
1

Gregor,如果我没记错的话,你的见证服务器可以是运行在非常便宜的硬件上的 SQL Express(即使你需要,也可以是桌面级 PC)。据我所知,如果不使用集群或通过见证进行镜像,则无法进行自动故障转移。

有关详细信息,请参阅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 版本所需的最低配置。”

于 2009-06-19T16:48:32.130 回答
0

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

于 2013-06-25T10:16:37.423 回答