0

源是 SQL Server 2016,目标是 Netezza 7.2 当源表映射到目标时,会出现以下消息,

错误:为 dbo.CCM 设置复制方法时发生错误 [打开 dbo.CCM 的补充日志记录时发生错误。获取发布 ID 失败。]。检查事件日志以了解相关事件和可能的原因。

SQL Server 复制通过本地分发数据库启用。我们检查了 CDC 事件日志并记录了相同的错误,没有太多详细信息。对此的任何帮助将不胜感激。

4

1 回答 1

0

您需要检查跟踪文件。它们位于您为安装中的实例数据选择的任何文件夹中。如果您不知道这一点,您可以查看 /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 的先决条件。

于 2019-11-14T02:07:14.083 回答