我已经在距离彼此40英里远的两台服务器之间configuration了数据库镜像。
服务器规格:SQL Server 2008,Standard Edition 64位
这对于校长,镜子和证人也是一样的。 configuration具有高度安全性并具有自动故障转移function
最初,我们在主体和镜像上testing了我们的.net应用程序(web应用程序),并确保login不是孤立的。
事情一般运行良好。但有时在镜像服务器上,我看到login失败的尝试:
用户'd0main \ user'login失败。 原因:无法打开明确指定的数据库。 [客户端:xx.xx.xx]消息错误:18456,严重性:14,状态:38。
这个错误一天出现3-4次,但不会超过这个时间。
我向专家提出的问题是:如果委托人还活着,为什么应用程序试图连接到镜像.net网页的默认超时时间是30秒,那么应用程序试图连接委托人和30即使主体还活着,秒也假定它已经死了,因此试图打开一个连接来镜像失败的地方。
请帮我解决这个问题。
嗨,我希望这个网站回答你的问题,因为我不知道你的问题到底是什么。
http://msdn.microsoft.com/en-us/library/ms190913.aspx
或直接:更改超时值(仅限高安全模式)
* Use the ALTER DATABASE <database> SET PARTNER TIMEOUT <integer> statement.
查看当前的超时值
* Query mirroring_connection_timeout in sys.database_mirroring.
另请参阅客户端redirect下的这篇文章: http : //technet.microsoft.com/en-us/library/cc917680.aspx
如果与初始主体服务器的连接失败,则连接string中的故障转移伙伴将用作备用服务器名称。 如果到初始主体服务器的连接成功,则不会使用故障转移伙伴名称,但驱动程序将存储从客户端caching中的主体服务器检索到的故障转移伙伴名称。
你确定错误来自应用程序吗? IP地址是否指向应用程序服务器? 还是可能是一些其他的应用程序,如SSMS,试图专门连接到镜像?
如果没有,请确保主体服务器没有被重载,如果它有高CPU时间,它可能无法响应连接尝试,我会运行Perfmon,看看它是如何看起来。
还要检查主体服务器上的SQL错误和服务器事件日志是否有与镜像上的login次数相匹配的exception错误。