【发布时间】:2016-09-03 03:37:23
【问题描述】:
刚刚安装了一个全新的 SQL Server 2016 实例。以前我在 2008 年和 2012 年使用合并复制没有问题。我在这里尝试做同样的事情,虽然我可以毫无问题地创建发布,但当我尝试创建快照代理时出现以下错误。 SQL Server 代理正在运行,我在网上找不到任何关于错误的信息:
====================================
无法保存对代理安全设置的更改。
====================================
执行 Transact-SQL 语句时发生异常或 批。 (Microsoft.SqlServer.ConnectionInfo)
------------------ 节目位置:
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串 sqlCommand, ExecutionTypes executionType, Boolean retry) at Microsoft.SqlServer.Replication.ReplicationObject.ExecCommand(字符串 命令输入)在 Microsoft.SqlServer.Replication.Publication.CreateSnapshotAgent()
在 Microsoft.SqlServer.Management.UI.PageCreatePubAgentSecurity.SaveAgentSecurity(ReplAgentType 类型)在 Microsoft.SqlServer.Management.UI.PubPropAgentSecurity.SaveProperties(执行模式& 执行结果)====================================
找不到存储过程“sys.sp_MSaddreplsymmetrickey”。 将数据库上下文更改为“CoBRAClientData”。 (.Net SqlClient 数据 提供者)
------------------ 如需帮助,请点击:http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=13.00.1601&EvtSrc=MSSQLServer&EvtID=2812&LinkId=20476
------------------ 服务器名称:SERVER1\COBRASERVER 错误号:2812 严重性:16 状态:62 过程: sp_MSreplopensymmetrickey 行号:37
------------------ 节目位置:
在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction 动作、对象 execObject、数据集 fillDataSet、布尔值 catchException) 在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串 sqlCommand, ExecutionTypes executionType, Boolean retry)
这发生在两个 sql management studio 中,如果我使用脚本:
exec sp_addpublication_snapshot @publication = N'CoBRAClientPub', @frequency_type = 4, @frequency_interval = 14, @frequency_relative_interval = 1, @frequency_recurrence_factor = 0, @frequency_subday = 1, @frequency_subday_interval = 5, @active_start_time_of_day = 500, @active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, @job_login = N'server1\repl_snapshot', @job_password = null, @publisher_security_mode = 1
【问题讨论】:
-
能否请您添加您正在运行的 SQL 查询来创建快照代理?
-
我没有直接运行 sql 查询。我正在使用 sql 管理工作室。右键单击发布/属性/代理安全。点击“创建代理”
-
啊,但是如果我使用脚本,我会得到同样的错误。查看更新
-
我没有使用过这个功能,但是错误的文本说
Could not find stored procedure 'sys.sp_MSaddreplsymmetrickey'.我已经搜索了我的 SQL Server 2014 并没有找到这个 SP。如果您尝试创建它,这可能是一个解决方案。这个SP的源代码可以找到here -
这有几个问题。首先,它不喜欢存储过程中的 TRIPLE_DES 调用。如果我将其更改为 AES_256,则它会通过,但它会给我一个错误,我无法创建“sys”过程。如果我将它从 sys.sp_MSaddreplsymmetrickey 更改为 [sys.sp_MSaddreplsymmetrickey],则会传递错误,但我仍然会在顶部遇到关于找不到存储过程的原始问题
标签: sql-server sql-server-2016 merge-replication