MS SQL启动镜像错误

直升机,

我正在尝试使用Principal,Mirror和Witness服务器来镜像数据库。 每台拥有本地IP地址(v4)的计算机都是静态的,所以它们不会改变。

然后我做了一些阅读,并按照如何备份和恢复testing数据库,然后使用镜像Congure安全向导的步骤,我可以使用SQL Server身份validation而不是Windows身份validation连接到每个服务器,然后我得到成功的消息,然后我点击closures和启动Mirroing,但我然后得到一个错误#1418networking地址:“TCP:// BAKSRV:5022”不能到达或不存在,然后我改变了networking地址,看看它会连接使用IPv4并input以下信息。 进入服务器networking地址:

主体:TCP://10.1.10.1:5022镜像:TCP://10.1.10.2:5022见证:TCP://10.1.10.3:5022

我也尝试使用他们的电脑名称,但它仍然给我同样的错误

错误#1418networking地址:“TCP://10.1.10.2:5022”无法到达或不存在

在镜子比较。 我进入cmd,并做了netstat -a,我看了很多次:

TCP ---- 10.1.10.2:5022 ------- Main-PC:diffrent port numbers ---- TIME_WAIT 

我也禁用了镜像组件上的防火墙。 排除,但我仍然无法启动镜像。

所有的Comps运行MS SQL 2012,我正在使用像两个文件的TestDB只是为了得到它的testing/工作。

当我尝试这个: SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints

我得到:

 name role_desc state_desc Mirroring PARTNER STARTED 

当我尝试这个: SELECT name, port FROM sys.tcp_endpoints

我得到:

 name port Dedicated Admin Connection 0 TSQL Default TCP 0 Mirroring 5022 

附加信息。

当我进入SQL Serverconfigurationpipe理器和selectSQL Server下login:这个帐户是检查,并有一个帐户名:。\ BKAccount和密码也填写。 所有3台服务器都具有相同的设置,但所有这些服务器都有不同的用户名/密码。 我不知道这是否有帮助,但是当我在SQL Management Studio中时,我只能通过select身份validation:SQL Server身份validation而不是通过selectWindows身份validation来连接到镜像服务器和证人服务器。

有人可以帮助我,我做错了什么,我怎么能得到这个工作….请帮助!

再次感谢…

这听起来像是你的端点可能有问题。

如果您还没有确定是否已经正确configuration了端点并在两台服务器上启动了端点, 您可以通过运行确认他们在那里:

 SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints 

如果你已经这样做了,我会build议删除并重新创build它们,然后尝试再次连接。 这样做的步骤是在网上书籍: http : //technet.microsoft.com/en-us/library/ms190456.aspx

更新:

根据您的意见,您正在使用SQL身份validation连接到实例。 而服务器实例正在本地(非域)帐户下运行。 为了这个工作,你将不得不使用证书进行端点validation。 并且要为您的数据库镜像端点使用证书,系统pipe理员必须将每个服务器实例configuration为在出站和入站连接上都使用证书。

不幸的是,没有使用证书来自动configuration数据库镜像安全的方法。 所以一旦你configuration了证书,你就必须用CREATE ENDPOINT手动创build端点。 请参阅: 确定数据库镜像端点的身份validationtypes

既然你已经表示你很难,使用Windows身份validation可能会更容易。 以下是涉及的基本概述:

  1. 确保SQL实例configuration为混合模式身份validation
  2. 您需要创build您要使用的适当的域login名。 每个: 数据库镜像和AlwaysOn可用性组的传输安全性(SQL Server)

    在Windows身份validation下,每个服务器实例都使用运行该进程的Windows用户帐户的Windows凭据login到另一端。 Windows身份validation可能需要一些手动configurationlogin帐户,如下所示:

    • 如果SQL Server的实例在相同的域帐户下作为服务运行,则不需要额外的configuration。
    • 如果SQL Server的实例作为不同域帐户下的服务(在相同或受信任的域中)运行,则必须在每个其他服务器实例的主服务器上创build每个帐户的login名,并且该login名必须被授予CONNECT权限端点。
    • 如果SQL Server实例作为networking服务帐户运行,则必须在每台其他服务器的主服务器上创build每台主机帐户(DomainName \ ComputerName $)的login名,并且该login名必须在端点上被授予CONNECT权限。 这是因为在networking服务帐户下运行的服务器实例使用主机的域帐户进行身份validation。
  3. 根据上面configuration的SQL Server服务的方式,您可能需要设置login帐户

我知道这是很多信息; 一旦你已经完成了authentication,你应该能够使用GUI来工作。 在线书籍也有一个非常有用的例子,包括你需要做的所有TSQL。 一旦你有authentication设置,你几乎可以使用示例代码来设置它。 示例:使用Windows身份validation设置数据库镜像(Transact-SQL)