我有一个问题,正确的失败到镜像数据库。当我连接到主体数据库(dbx) (启用和设置镜像)并且在主体数据库上失败(关闭SQL Server以模拟崩溃)时,我无法发送查询而不发生故障。这是预期的,因为以前的连接现在已经丢失。
我想简单地关闭我的连接和句柄,重新建立一个新的连接,使用相同的连接字符串,并重新连接到镜像数据库(dby,它现在是主体数据库)。
我的连接字符串如下:
Client};Server=dbx;Failover_Partner=dby;Database=db;Uid=uid;Pwd=pwd;Network=DBMSSOCN;{SQL本机Driver=
通过研究,我了解到连接中的Failover_Partner参数几乎毫无价值。它只在主服务器停机并首次建立新连接时使用。由于某些原因,当建立到主体的连接并使用在Failover_Partner表中找到的mirroring_partner_instance时,会在内部覆盖sys.database_mirroring。因此,当我指定要作为dby的Failover_Partner时,在建立连接之后,我查询它认为故障转移伙伴是什么,它返回故障转移伙伴的实例名称,而不是DNS名称(dby)。
问题是,我不能使用实例名称作为故障转移合作伙伴。我需要使用DNS名称作为故障转移合作伙伴。
因此,我的问题是:
发布于 2015-06-22 20:59:47
我找到了这个问题的答案,以防任何人有同样的或类似的问题。
我必须在SQL中修改@@SERVERNAME属性。它被内部设置成电脑胜利-.实例名称和我能够删除它并使用以下命令添加我想要的服务器名称:
获取当前服务器名称(WIN_NAME)
SELECT @@SERVERNAME删除WIN名称
SP_DropServer 'WIN_NAME'
GO
SP_AddServer 'SERVER_NAME',local
GO重新启动Server以查看更改是否生效。
https://stackoverflow.com/questions/25773301
复制相似问题