SQL Server - 同步两个数据库

Posted

技术标签:

【中文标题】SQL Server - 同步两个数据库【英文标题】:SQL Server - Syncing two database 【发布时间】:2009-01-15 17:19:50 【问题描述】:

我们有一个仓库数据库,其中包含到目前为止一年的数据。我想创建代表过去 3 个月数据的报告数据库以用于报告目的。我希望能够使两个数据库保持同步。现在,我每 10 分钟执行一次包,该包将从仓库中获取最新的行并将它们添加到报告数据库中。问题是我只得到新行而不是新更新。

我想知道解决这种情况的各种方法。

谢谢

【问题讨论】:

【参考方案1】:

研究复制、镜像或日志传送

【讨论】:

我已经准备好复制、镜像等。他们谈到了 2 个独立的数据库服务器。我需要在同一台服务器上同步两个数据库。使用您所说的技术,这仍然可能吗? 是的,您可以在同一台服务器上的两个数据库之间进行复制。【参考方案2】:

如果您使用的是 SQL 2000 或更低版本,复制是您的最佳选择。由于您每十分钟执行一次,因此您绝对应该查看事务复制。

如果您使用的是 SQL 2005 或更高版本,则可以使用更多选项。 SQLMenace 上面建议的数据库快照、日志传送和镜像。这些的适用性取决于您的硬件。您必须进行一些研究才能选择最适合您需求的产品。

【讨论】:

【参考方案3】:

您可能应该阅读有关复制的信息,或询问您的数据库管理员。

【讨论】:

【参考方案4】:

是否可以向该数据库添加列?您可以将 Last_Activity 列添加到数据库并编写一个触发器来更新该行上的日期/时间戳以反映最新的编辑。对于任何新条目,日期/时间将反映添加行时的时间戳。

这样,当您抓取过去三个月时,您将抓取过去三个月的活动,而不仅仅是新的东西。

【讨论】:

这是一个有趣的解决方案。不过,我将不得不给这个。

以上是关于SQL Server - 同步两个数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 在两个数据库之间同步数据

怎样实现两个异地SQL SERVER数据库的实时同步

SQL Server 跨库同步数据

在同步 b/w 两个 sql server 2005 db 时解决标识列主键冲突

SQL Server 跨库同步数据

如何在 Linux 上跨可用性组副本同步 SQL Server 代理作业?