数据库镜像不起作用(SQL Server 2008)

时间:2013-06-26 06:53:35

标签: sql sql-server database tsql database-mirroring

我的数据库连接有问题。有两个数据库服务器: DBS1,DBS2

DBS1(主服务器) DBS2(镜像服务器)

我使用以下连接字符串连接:

Data Source=DBS1;Failover Partner=DBS2;Persist Security Info=True;Initial Catalog=database;User ID=xxx;Password=xxx

当我在我的电脑上运行我的程序时,它可以工作,但是当我在DMZ中的网络服务器上尝试该程序时,故障转移不起作用。

你能告诉我一些配置可能是什么原因吗?

1 个答案:

答案 0 :(得分:1)

在您的主要数据库

上运行此命令
SELECT DB_NAME(database_id) AS 'DatabaseName'
, mirroring_role_desc 
, mirroring_safety_level_desc 
, mirroring_state_desc 
, mirroring_partner_instance
FROM
sys.database_mirroring WHERE mirroring_guid IS NOT NULL; 

mirroring_partner_instance中返回的值是您的连接将用于故障转移的服务器名称,而不是DBS2。首次尝试获取连接但无法联系DBS1时将使用DBS2。如果DBS1可用,则将从sql server值mirroring_partner_instance在缓存中设置故障转移伙伴。

我想你的PC可以使用mirroring_partner_instance中的名称来查看此服务器,而在DMZ中运行则不能。

有关详细信息,请参阅此处: http://blogs.msdn.com/b/spike/archive/2010/12/15/running-a-database-mirror-setup-with-the-sqlbrowser-service-off-may-produce-unexpected-results.aspx