水木非凡境显示与服务器断开连接,如何解决镜像数据库与见证服务器已断开连接...

已经可以确保数据库镜像服务器B和见证服务器C是可以通过网络互相访问的,我是让见证服务器C做 主体服务器,和先前的镜像服务器B组成一对镜像伙伴,从镜像监视器中可以看到,两台机器都可以互访.

但是一旦加入第3台机器,如我的主题,见证服务器C与镜像服务器B显示已断开连接.

在见证服务器C上打开sql server profiler,在主题服务器上执行

ALTER DATABASE Test1 SET witness = 'TCP://192.168.1.150:7039';

是没有捕获到任何追踪的

关于两个服务器的登录账户是否在对方服务器的端点上被授予了CONNECT的权限。

这个应该怎么检查?

我用

SELECT 'Metadata Check';

SELECT EP.name, SP.STATE,

CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id))

AS GRANTOR,

SP.TYPE AS PERMISSION,

CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id))

AS GRANTEE

FROM sys.server_permissions SP , sys.endpoints EP

WHERE SP.major_id = EP.endpoint_id

ORDER BY Permission,grantor, grantee;

GO

在见证服务器上运行,结果如下:

endpoint_mirroring    G    20110407-0927\Administrator    CO      M_149

endpoint_mirroring    G    20110407-0927\Administrator    CO      M_150

endpoint_mirroring    G    20110407-0927\Administrator    CO      M_122

在见证服务器150上有一个创建帐号代码,其中M_122是主体服务器上的登录名,M_149是镜像服务器上的登录名,M_150是见证服务器上的登录名:

CREATE LOGIN M_122 WITH PASSWORD = 'M_Test';

CREATE USER M_122 for LOGIN M_122

CREATE CERTIFICATE T122_Cert

AUTHORIZATION M_122

FROM FILE = ''

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO M_122;

GO

CREATE LOGIN M_149 WITH PASSWORD = 'M_Test';

CREATE USER M_149 for LOGIN M_149

CREATE CERTIFICATE T149_Cert

AUTHORIZATION M_149

FROM FILE = ''

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO M_149;

GO
CREATE LOGIN M_150 WITH PASSWORD = 'M_Test';

CREATE USER M_150 for CERTIFICATE T150_Cert;

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO M_150;
GO

(后缀150表示见证服务器,后缀149是镜像服务器,后缀122是主题服务器)其它两台机器上也执行了上面类似的代码

能否帮我分析下,是哪里出了问题吗?

你可能感兴趣的:(水木非凡境显示与服务器断开连接)