什么是自动从 2005 数据库同步 sql server 2008 数据库的好方法?

Posted

技术标签:

【中文标题】什么是自动从 2005 数据库同步 sql server 2008 数据库的好方法?【英文标题】:what's a good way to synchronize a sql server 2008 database from a 2005 database automatically? 【发布时间】:2010-04-19 01:54:41 【问题描述】:

好的,场景是……两台服务器,位于互联网完全不同的部分。

sql 2008 数据库只需要获取数据更新和架构更改。它不需要向 2005 数据库发送任何内容。基本上只是作为计划任务自动尽可能高效地吸收数据和架构。

数据库非常庞大....但每天的更改可能约为 20/30 兆字节的数据/

我无法在 2005 数据库上运行任何内置复制。

我看过 Sync Framework,我认为它可以满足我的要求,但似乎有点痛苦,需要一些工作才能开始。我想知道是否有工具可以让这更容易?

还是??不太确定我的选择是什么。

【问题讨论】:

【参考方案1】:

我无法运行任何内置 在 2005 数据库上进行复制。

这个限制有什么原因吗?复制是解决问题的方法。如果没有复制基础架构,您将无法检测到数据更改或架构更改。只有两种方法可以检测更改:通过触发器和跟踪表(即合并复制)或通过数据库日志(即事务复制)。

如果要使用同步框架本身,则需要更改跟踪或更改数据捕获。但这些是 2008 年的特定技术,它们实际上只不过是变相的复制(它们使用与 Merge 和 Transactional Replication 相同的基础设施)。

即使您想推出自己的产品,您也会很快发现交付更改是微不足道的部分,例如。使用Service Broker 获得可靠的传递语义。但真正的难题是检测变化,这困难。在互联网上区分一个“相当大”的数据库来检测变化是行不通的。所以依靠内置的基础设施来检测变化,即Replication的两种形式,是显而易见的解决方案。

【讨论】:

好吧,这个限制不是 100%,但据我所知,它将修改数据库以向所有表添加唯一标识符。这将是一个巨大的开销。大部分数据都在 1 个表中(尽管其他表也发生了变化)。在此表中添加另一列会很昂贵。大多数表的一件事是它们确实是不可变的......没有数据被更改,也没有数据被删除,只有数据被添加。 事务复制不会向被复制的文章添加任何内容。【参考方案2】:

您能否自动化 RedGate 的 SQL 比较和/或 SQL 数据比较? http://www.red-gate.com/products/SQL_Compare/index.htm ...您至少可以试用 14 天,看看是否值得投资。恕我直言,比自己制作工具便宜得多。

【讨论】:

为什么不呢?两种工具的专业版都支持命令行...您不必永久使用 UI。 我还在本文中添加了一些可比较的工具(旨在避免为其他人已经解决的问题编写自己的解决方案所涉及的问题,它恰好集中在关于这个特殊问题):onetooneinteractive.com/otocorporate-posts/2009/06/01/…【参考方案3】:

也许这些问题对你有帮助:

Microsoft Sync Framework Or Replication

SQL Server Data Archive Solution

Is there a way to replicate some data not all data in db by sql server replication?

您可以制作一个应用程序,根据您喜欢的时间段内更改的数据生成一个脚本,然后在您的目标服务器中运行此脚本。

【讨论】:

看过这些,但没有……不是真的。嗯,第一个确实......我可以使用它。但似乎比我最初想要的更多。

以上是关于什么是自动从 2005 数据库同步 sql server 2008 数据库的好方法?的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据库从本地导出 服务器上导入时报 ERROR 2005 HY000 Unknown MySQL ser

通过 Web 服务将 SQL Server CE 与 SQL Server 2005 同步

sql server2005主从数据库同步配置

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

sql server 2005中的自动数据库备份

SQL2005网络配置里啥都没有怎么回事