首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server 2008数据库镜像

SQL Server 2008数据库镜像
EN

Stack Overflow用户
提问于 2013-06-26 15:32:16
回答 2查看 195关注 0票数 0

我的数据库连接有一点小问题。有两个数据库服务器:

代码语言:javascript
复制
DBSA, DBSB

DBSA (primary server)
DBSB (mirrored server)

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

代码语言:javascript
复制
Data Source=DBSA;Failover Partner=DBSB;Persist Security Info=True;Initial Catalog=database;User ID=user;Password=password

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

有人知道这是什么原因吗?

=>我在问题中忘了说。还有一个见证服务器。

EN

回答 2

Stack Overflow用户

发布于 2013-09-25 03:44:30

应用程序必须从SQL server获取故障转移服务器名称(甚至可能不是FQDN名称),而不是web.config中的连接字符串。

尝试运行ipconfig /flushdns,然后对SQL数据库进行故障转移,并在得到第一个SQL异常错误后,运行ipconfig /displaydns查看它无法解析的名称。我敢打赌,它看起来一点也不像您在故障转移伙伴的连接字符串中设置的DB别名……

我不得不处理同样的事情-微软的实现有点令人费解,因为他们试图涵盖所有可能的情况。

票数 1
EN

Stack Overflow用户

发布于 2014-01-18 05:44:32

在您的主体数据库上运行此命令

代码语言:javascript
复制
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中返回的值是您的连接将用于故障转移的服务器名称,而不是您在配置中指定的名称。我想您的PC可以使用此名称看到此服务器,而在DMZ中运行时则无法看到此服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17314090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档