Sql server 2008 如何在镜像时解决sql server中的错误:1418
我正在尝试在sql server中镜像数据库。我创建了一个数据库,对其进行了备份,并在另一台服务器上进行了恢复。但在完成所有操作并单击开始镜像后,它会显示以下错误。我对见证服务器选项设置了“否”Sql server 2008 如何在镜像时解决sql server中的错误:1418,sql-server-2008,mirroring,Sql Server 2008,Mirroring,我正在尝试在sql server中镜像数据库。我创建了一个数据库,对其进行了备份,并在另一台服务器上进行了恢复。但在完成所有操作并单击开始镜像后,它会显示以下错误。我对见证服务器选项设置了“否” 我遵循了本文中的镜像步骤,它说,在主体服务器和镜像服务器上创建一个具有步骤3中相同凭据的用户。是否需要在两台服务器上创建相同的用户?或者有其他解决办法吗?我也面临同样的问题。您需要检查以下项目一次 转到services.msc并检查sql server正在哪个帐户下运行。确保sql server和sql
我遵循了本文中的镜像步骤,它说,在主体服务器和镜像服务器上创建一个具有步骤3中相同凭据的用户。是否需要在两台服务器上创建相同的用户?或者有其他解决办法吗?我也面临同样的问题。您需要检查以下项目一次
您也可能不会将用于镜像的副本保持在还原状态,而必须保持该状态才能启用镜像 通常,SQL Server镜像的过程是: 1) 备份原始数据库并将其复制到用于镜像的服务器 2) 备份事务日志并将其复制到用于镜像的服务器 3) 选择“从MMC还原数据库”,找到数据库的备份,并使用设置为保持非运行状态且不回滚事务的选项还原数据库 4) 选择restore并选择files,然后选择log files并恢复日志文件备份,同时选择no rollback and non function。这是SQLServer2008上“选项”页面下的第二个单选按钮
5) 转到原始数据库复制服务器并打开镜像。要启动镜像对话,您需要使用在两台服务器上都具有系统管理员权限的帐户。同样的问题,错误1418。这里有什么建议吗 事后看来,这是显而易见的。完成镜像>配置安全向导时,您会看到一个页面,解释结果。查看SQL1和SQL2节点,这一行是关键:
On the principal server instance, SQL1
Listener Port: 5022
Encryption: **Yes**
On the mirror server instance, SQL2
Listener Port: 5022
Encryption: **No**
解决方案。在所有SQL节点上完成向导后,执行:
drop endpoint Mirroring
go
CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING
(ENCRYPTION = DISABLED,ROLE=ALL)
GO
点击启动镜像,问题已解决
希望这能帮助别人
Scott我以前遇到过这个问题,所有的验证都通过了。 使用一个新的端点,它终于可以工作了。
根本原因是5022可能会阻止其他会话。我的错误1418已通过在两台服务器上使用相同的驱动器号解决 虽然MS建议你可以使用不同的字母,但我决定使用相同的字母 来自MS: 此外,如果可能,我们建议使用文件路径(包括 镜像数据库的驱动器号)必须与的路径相同 主体数据库。如果文件路径必须不同,例如 主体数据库位于驱动器“F:”上,但镜像系统缺少 F:drive,必须在RESTORE语句中包含MOVE选项
在用尽了上面提到的所有选项之后,我对镜像环境进行了修改。我们的SQL server 2008在主体镜像配置中为2014服务器做出了贡献。2014年Sql server也被用于其他一些Db的HA的AlwaysOn配置中。现在,在sql 2008和sql 2014上,端点的命名有所不同 在得到上述错误后,我发现2008年的加密是RC4,2014年的加密是AES。结果,它与SQL2014端点的握手失败。我使用下面的命令和viola更改了加密,使之与SQL 2008的加密相匹配
ALTER ENDPOINT [Hadr_endpoint]
FOR DATA_MIRRORING ( ENCRYPTION = REQUIRED ALGORITHM RC4 )
对我来说,我突然发现了这个问题,并通过删除和重新创建镜像端点(SSM->Server Objects->endpoints->Database mirroring)最终解决了这个问题。如果上述任何一项都不起作用,下面是导致我的问题的原因。 在两台服务器上运行以下查询并仔细查看
SELECT @@Version
我的主体服务器上有一些更新,但镜像服务器上没有安装这些更新
此外,您还可以在SQL Server日志中查看其他信息,了解镜像无法工作的原因。这就是我如何意识到我在两台服务器上都有不同的版本。在SQL Server 2016上,解决方案是让您的[domain account]在主体服务器和镜像服务器上都作为系统管理员。然后创建一个新帐户,如下所示 主服务器
use [master]
GO
CREATE LOGIN [domain\mirrorservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\mirrorservername$]
GO
镜像服务器
use [master]
GO
CREATE LOGIN [domain\principalservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\principalservername$]
GO
您需要创建这些帐户并授予连接权限,因为这些帐户是主体服务器和镜像服务器之间握手期间使用的帐户
有关错误的更多详细信息,请查看sql错误日志
希望这篇文章能帮助别人。我也有同样的问题。我试图在Windows 2008-R2上的域设置上设置镜像。正如上面一位专家所建议的,我检查了SQLSERVER和SQLSERVERAGENT的SQLSERVER“登录”帐户,并在这两台机器上对SQLSERVER服务使用了相同的域帐户。我能够设置镜像
谢谢你的帮助 您在Principle和Mirror上说“确保sql server和sql server代理服务应使用相同的凭据运行”。我没有在Windows Active Directory域中运行。我的服务必须在本地用户帐户下运行。您的答案是假设用户是Active Directory用户吗?谢谢,在域帐户下运行SQL server已经为我解决了这个问题。本地帐户是否有负面影响?如果说相同的凭据,用户是否需要使用相同的密码?我尝试