我的数据库连接有问题。有两个数据库服务器: DBS1,DBS2
DBS1(主服务器) DBS2(镜像服务器)
我使用以下连接字符串连接:
Data Source=DBS1;Failover Partner=DBS2;Persist Security Info=True;Initial Catalog=database;User ID=xxx;Password=xxx
当我在我的电脑上运行我的程序时,它可以工作,但是当我在DMZ中的网络服务器上尝试该程序时,故障转移不起作用。
你能告诉我一些配置可能是什么原因吗?
答案 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中运行则不能。