【问题标题】:Can't create snapshot agent for SQL Server 2016 publication无法为 SQL Server 2016 发布创建快照代理
【发布时间】: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


【解决方案1】:

从未想出使用 sql 2016 解决此问题的方法。卸载并安装了 sql 2014(最新的服务包),一切正常。我最初尝试卸载 2016 并重新安装它,但这没有用。只有 2014 年做到了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    相关资源
    最近更新 更多