如何在不丢失未删除数据的情况下快照数据库?

时间:2016-12-06 01:59:01

标签: sql-server-2012 database-replication

我们有一个车间数据库OPERATION,可将选定的数据复制到用于报告的数据库业务。 OPERATION中的数据每天由第三方车间应用程序删除,因此为了保留关于BUSINESS的数据,我将 DELETE交付格式的文章属性设置为 Do不要复制DELETE语句

这很好用,但有时候有人想要复制一些额外/不同的东西。根据出版物更改的性质,它可能会提示重新初始化快照,这当然会使业务数据库流失(正如我遗憾地做了一天)。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我建议您实现ETL过程而不是复制。

您可以使用SSIS从OPERATION数据库中提取数据并将其复制到BUSINESS数据库。在SSIS包中,您可以完全控制逻辑。例如,您可以将数据附加到BUSINESS中的现有数据。您可以使用MERGE来插入新记录并修改现有记录(这样可以安全地重复运行它,因为不会覆盖未更改的数据)。

如果有人请求其他数据,您只需编写一个新的SSIS包来传输其他数据,而不会影响您的主要流程。

可以安排SSIS从SQL代理作业运行(例如使用dtexec)。