Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我可以在SQL连接字符串中使用故障转移伙伴而不进行镜像吗?_Sql Server_Replication_Failover_Mirroring - Fatal编程技术网

Sql server 我可以在SQL连接字符串中使用故障转移伙伴而不进行镜像吗?

Sql server 我可以在SQL连接字符串中使用故障转移伙伴而不进行镜像吗?,sql-server,replication,failover,mirroring,Sql Server,Replication,Failover,Mirroring,我承认我有点吝啬,但我不想因为三台服务器需要通过镜像来实现SQL Server的自动故障切换,特别是因为这三台服务器中的一台除了作为见证服务器之外什么都做不了 如果我设置了从主服务器到备份服务器的常规SQL复制(比如快照),我可以只在ASP.NET应用程序中设置连接字符串以包括“故障转移伙伴=备份”吗?客户端上的ADO.NET似乎应该只尝试主服务器,然后在主服务器不可用时故障切换到备份服务器 或者这只适用于镜像 (我喜欢镜像的想法,但如果您不想为见证服务器付费,则必须手动将备份服务器切换为主服务

我承认我有点吝啬,但我不想因为三台服务器需要通过镜像来实现SQL Server的自动故障切换,特别是因为这三台服务器中的一台除了作为见证服务器之外什么都做不了

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

或者这只适用于镜像

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


谢谢

Gregor,如果我没记错的话,您的见证服务器可以是在非常便宜的硬件上运行的SQL Express(即使您需要台式PC)。据我所知,如果不使用群集或带见证的镜像,就无法进行自动故障切换

有关更多信息,请参阅和


从第二个url截取:“我们强烈建议证人居住在与合伙人分开的计算机上。只有SQL Server 2005标准版和更高版本以及SQL Server 2005企业版和更高版本支持数据库镜像合作伙伴。相反,SQL Server 2005 Workgroup和更高版本以及SQL Server 2005 Express Edition和更高版本也支持见证人。见证人可以在支持这些SQL Server版本的任何可靠计算机系统上运行。但是,我们建议用作见证的每个服务器实例对应于您正在运行的SQL server标准版本所需的最低配置。”

根据Microsoft针对SQL server 2005/2008的许可条款,您的主SQL server只需要一个许可证(每个CPU)

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

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

此处是指向许可详细信息的链接,请参阅第2页的被动服务器/故障切换支持


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

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

Data Source=PRIMARY;FailoverPartner=SECONDARY;Provider=SQLNCLI10.1;
                            Network=dbmssocn;Database=myDB;User ID=user;Password=password;
当我运行时,我看到以下错误

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


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

我正在搜索类似的内容;是否可以将故障转移伙伴指定为一个且仅一个连接字符串; -显然,只要故障转移伙伴存在; -db引擎足够聪明,能够在主服务器上进行故障切换时保持平衡(幸运的是)