1

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

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

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

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

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

你能告诉我一些配置,这可能是造成这种情况的原因吗?

4

1 回答 1

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-产生意外的结果.aspx

于 2014-01-17T21:58:58.850 回答