我目前在名为 subscription_events 的表上运行CDC。正在使用新的插入,更新和删除来填充相应的CT表。
我有两个SSIS流将数据从 subscription_events 移动到另一个数据库中的另一个表中。第一个流程是初始流程,具有以下布局:
导入到Vertica的行步骤只有一个源和一个目标,并将每一行复制到另一个表中。请注意,源表当前处于活动状态,并且每隔几分钟就会有新行进入其中。 标记初始加载开始/结束步骤将当前状态存储在变量中,并存储在用于存储CDC名称和状态的单独表中。
第二个流程是增量流程,具有以下布局:
导入Rico进入Vertica 步骤使用CDC源,并应从CT表中提取最新的插入,更新和删除,这些应该应用于目标。这是问题所在的地方;我从不从CDC源接收任何内容,即使新行插入 subscription_events 表和相应的CT表正在增长大小与新的变化数据。
根据我的理解,这就是事情应该如何运作:
这不是我的CDC状态的设定方式,但是......以下是我在同一过程中的状态。
我永远无法摆脱 ILUPDATE / ILEND 循环,所以我永远无法从CT表中获取任何新数据。为什么会发生这种情况,我该怎么做才能解决这个问题?
非常感谢你,提前帮助你! :)
以下是一些有点描述我的情况的文章,尽管不完全一样。他们也没有帮助我解决这个问题,但它可能会帮助你想到我可以尝试的东西。
第二篇文章包含此图片,其中显示了我被困的 ILUPDATE / ILEND 循环。
上周(2014年5月26日)我禁用了 subscription_events 表格,然后重新启用了CDC。这并没有改变任何东西,因此我在整个数据库上禁用了CDC,在数据库上重新启用了CDC,然后在 subscription_events 表上启用了CDC。这确实让CDC工作了几天(我认为问题已经通过这个过程解决了)。但是,在上周末(2014年5月30日),我需要通过这个过程重新加载整个表,然后我又遇到了同样的问题。我仍然停留在这个循环中,我不知道为什么或如何摆脱它。
在我遇到这个问题之前,我在这里发布了一个单独的问题:
CDC is enabled, but cdc.dbo<table-name>_CT table is not being populated
我不确定这些是否相关,但认为提供它不会有什么坏处。
答案 0 :(得分:0)
我遇到了同样的问题。
我有一个用于解决问题的初始加载包和一个单独的增量加载包,用于按计划加载更新。
你通过放置一个&#34; Mark CDC start&#34;来修复它。仅在初始加载包的末尾的CDC控制任务。这将使状态值保持TFEND状态,这是您在增量加载开始时所需的状态。