源是 SQL Server 2016,目标是 Netezza 7.2 当源表映射到目标时,会出现以下消息,
错误:为 dbo.CCM 设置复制方法时发生错误 [打开 dbo.CCM 的补充日志记录时发生错误。获取发布 ID 失败。]。检查事件日志以了解相关事件和可能的原因。
SQL Server 复制通过本地分发数据库启用。我们检查了 CDC 事件日志并记录了相同的错误,没有太多详细信息。对此的任何帮助将不胜感激。
源是 SQL Server 2016,目标是 Netezza 7.2 当源表映射到目标时,会出现以下消息,
错误:为 dbo.CCM 设置复制方法时发生错误 [打开 dbo.CCM 的补充日志记录时发生错误。获取发布 ID 失败。]。检查事件日志以了解相关事件和可能的原因。
SQL Server 复制通过本地分发数据库启用。我们检查了 CDC 事件日志并记录了相同的错误,没有太多详细信息。对此的任何帮助将不胜感激。
您需要检查跟踪文件。它们位于您为安装中的实例数据选择的任何文件夹中。如果您不知道这一点,您可以查看 /conf/userfolder.vmargs - /instance/log
如果找不到任何有用的信息,请打开详细跟踪
1.) 管理控制台,配置透视图,选择MS SQL Server数据存储,属性,系统参数
2.) 添加一个新参数 global_trace_hours 并指定一个数值比如 4
3.) 保存
4.) 跟踪是动态启用的 - 将在您指定的小时数内设置跟踪。该值将每分钟自动递减,然后当它达到 0 时自动动态禁用跟踪
5.) 尝试将复制方法更改为再次镜像
6.) 在文件夹 /instance/log/on 中,您应该找到一些包含数据的文件
7.) 将跟踪文件复制到具有短路径的位置(例如 C:\TEMP) - 或者如果它已经被压缩,解压缩到 C:\TEMP
8.) 以管理员身份打开命令提示符
9.) 将目录更改为 /bin
10.) 执行 dmdecodetrace C:\TEMP\ | 更多的
注意额外的trace文件不是全文,为了尽量减少写的影响,所以需要解码
如果您仍然没有得到任何指示,请打开支持票。
一个潜在的原因可能是表没有主键。SQL 复制需要一个主键,由于 CDC 使用 SQL 复制来确保将完整的行图像记录在事务日志中,因此它也是 CDC 的先决条件。