我已经详细阅读了几遍,现在设置了SQL Server 2012中的CDC功能。然而,有一个非常令人困惑的图形

这似乎表明您的CDC数据可以存储在另一个数据库(数据仓库)中。然而,这并不是我认为真正“储存”的东西。
当您按照关于设置‘数据收集(https://technet.microsoft.com/en-us/library/cc645592(v=sql.110%29.aspx))单元的说明时,没有ETL功能。我对数据收集的理解是随着时间的推移监视数据库活动,而不是返回并检查对特定行集的更改。
所以我一定是漏掉了一些基本的逻辑。是否有某种神奇的CDC功能,可以批量插入或移动CDC可更改的数据(默认情况下只保留3天),还是需要为cdc设置的每个表编写自定义SSIS/ETL作业?我可以编写SSIS作业,但是这看起来很可能不是正确的方法。如果有人能告诉我如何在另一个数据库或实例上存储cdc数据的教程,我将不胜感激。我的搜索只是不断地指向数据收集或cdc,这两个都没有存储100%的更改历史记录。
谢谢您的编辑请求。我在想这让人困惑:
我的要求如下:
发布于 2015-03-25 12:45:19
作为一种技术,CDC主要用于帮助保持二级数据存储(例如数据仓库)的最新变化。话虽如此,没什么可说的,你不能做你想要做的事。本质上,您将在您感兴趣跟踪更改的表上定期设置CDC,并调用cdc.fn_cdc_get_all_changes...或cdc.fn_cdc_get_net_changes... (无论哪种情况适合您的情况,尽管我根据您的描述猜测所有更改),以获得这些表的更改,此时您将将原始的cdc数据存储到指定用于保存它的另一个表中。
然而,请注意,保留要求是粗糙的。例如,不能只在保留期结束后删除记录,因为只要记录仍然处于活动状态,就需要一个完整的更改链返回到记录的原始插入。
https://stackoverflow.com/questions/29247080
复制相似问题