【发布时间】:2009-01-15 17:19:50
【问题描述】:
我们有一个仓库数据库,其中包含到目前为止一年的数据。我想创建代表过去 3 个月数据的报告数据库以用于报告目的。我希望能够使两个数据库保持同步。现在,我每 10 分钟执行一次包,该包将从仓库中获取最新的行并将它们添加到报告数据库中。问题是我只得到新行而不是新更新。
我想知道解决这种情况的各种方法。
谢谢
【问题讨论】:
标签: sql sql-server database database-design
我们有一个仓库数据库,其中包含到目前为止一年的数据。我想创建代表过去 3 个月数据的报告数据库以用于报告目的。我希望能够使两个数据库保持同步。现在,我每 10 分钟执行一次包,该包将从仓库中获取最新的行并将它们添加到报告数据库中。问题是我只得到新行而不是新更新。
我想知道解决这种情况的各种方法。
谢谢
【问题讨论】:
标签: sql sql-server database database-design
研究复制、镜像或日志传送
【讨论】:
如果您使用的是 SQL 2000 或更低版本,复制是您的最佳选择。由于您每十分钟执行一次,因此您绝对应该查看事务复制。
如果您使用的是 SQL 2005 或更高版本,则可以使用更多选项。 SQLMenace 上面建议的数据库快照、日志传送和镜像。这些的适用性取决于您的硬件。您必须进行一些研究才能选择最适合您需求的产品。
【讨论】:
您可能应该阅读有关复制的信息,或询问您的数据库管理员。
【讨论】:
是否可以向该数据库添加列?您可以将 Last_Activity 列添加到数据库并编写一个触发器来更新该行上的日期/时间戳以反映最新的编辑。对于任何新条目,日期/时间将反映添加行时的时间戳。
这样,当您抓取过去三个月时,您将抓取过去三个月的活动,而不仅仅是新的东西。
【讨论】: