我已经在两台不同的SQL Server计算机上为我的数据库安装了用于SQL Server 2005的数据库镜像。这里没有使用见证服务器。我还在我的数据库的主服务器和镜像服务器上分别看到“主体/同步”和“镜像,同步/恢复”状态。SQL Server数据库镜像没有见证
现在我想测试故障转移到镜像服务器是否正常工作。所以我写了一个如下的小型控制台应用程序。
try
{
SqlConnection cn = new SqlConnection("data source=PRIMARYSQL1;Failover Partner=MIRRORSQL1;initial catalog=TESTDB;Integrated Security=SSPI;");
SqlCommand cm = new SqlCommand("insert into department(name) values('Dept10')", cn);
cn.Open();
cm.ExecuteNonQuery();
}
我再关闭thehSQL Server和SQL代理服务在主服务器上,我希望我的控制台应用程序仍然正常工作,但我得到以下错误。
"A network-related or instance-specific error occurred while establishing a conne ction to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a conne ction to SQL Server)"
而且,一旦主服务器出现故障我也没有办法,使镜像数据库主要因为它不允许我这样做镜像服务器。
我确定我做错了什么。谁能帮我?
这样做后,我仍然需要改变我的连接字符串,或者我应该期望它的原始连接字符串自动工作?实际上在执行alter database query之后,我的代码仍然没有使用“data source = PRIMARYSQL1; Failover Partner = MIRRORSQL1;初始目录= TESTDB;集成安全性= SSPI;”我不得不将连接字符串更改为“data source = MIRRORSQL1;故障转移伙伴= PRIMARYSQL1;初始目录= TESTDB;集成安全性= SSPI;”使其工作。这是错的不是吗? – MICHAEL 2010-10-21 17:34:17
有意思......我用SQL Server 2008做了我的测试,并专注于有见证服务器。您可能需要深入了解MSDN上的文档才能达到这个水平(这是我必须在当天完成的)。 – RQDQ 2010-10-22 14:13:11