2010-04-19 55 views
2

好的,场景是......两台服务器,位于互联网完全不同的部分。自动从2005年数据库同步SQL Server 2008数据库的好方法是什么?

sql 2008数据库只需要获取数据更新和模式更改。它不需要发送任何东西到2005数据库。基本上只是将数据和模式尽可能有效地自动地作为计划任务来吸收。

数据库是相当巨大的....但每天的变化都围绕probablly 20/30兆字节的数据/

我不能在2005年数据库上运行任何内置的复制。

我已经看了一下Sync Framework,我认为它可以做我想做的事情,但看起来有点痛苦,需要一点工作才能开始。我想知道是否有工具可以让这更容易?

或??不太清楚我的选择是什么。

回答

1

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

+0

是的,它的名单上....虽然这似乎不是一个自动化的方法? – 2010-04-19 02:29:10

+0

为什么不呢?两种工具的Pro版本都支持命令行...您不必永久使用用户界面。 – 2010-04-19 02:46:24

+0

我还在本文中添加了一些可比较的工具(旨在避免编写自己的解决方案以解决其他人已解决的问题,但恰好关注于此特定问题): http://www.onetooneinteractive.com/otocorporate-posts/2009/06/01/the-cost-of-reinventing-the-wheel/?showin=otolabs – 2010-04-19 02:48:36

1

或许这些问题可以帮助你:

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?

您可以在自己喜欢的时间段使生成的脚本的应用程序从您更改的数据,然后运行该脚本在你的目标服务器上。

+0

看到了那些,没有....不是真的。那么,第一个呢......我可以使用它。但似乎比我原先想要的要多一点。 – 2010-04-19 02:52:45

2

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

此限制的任何理由?复制是方式来解决你的问题。如果没有复制基础结构,您将无法检测到数据更改以及模式更改。只有两种方法可以检测更改:通过触发器和跟踪表(这是合并复制)或通过数据库日志(即Transactional Replication)。

同步框架本身,如果它将被使用,将需要更改跟踪或更改数据捕获。但是这些都是2008年的特定技术,它们其实不是别的,而是变相的复制(它们使用与合并和事务复制相同的基础架构)。

即使你想要自己推出,你也会很快发现运送改变是微不足道的,例如。使用Service Broker作为可靠的传递语义。但真正的难题是检测到变化,那就是。在互联网上分辨一个“相当庞大的”数据库来检测变化是行不通的。所以依靠内置的基础设施来检测变化,即两种形式的复制,就是明显的解决方案。

+0

好吧,这个限制并不是100%,但据我所知,它会修改数据库为所有表添加唯一标识符。这将是一个巨大的开销。大部分数据都在1个表格中(尽管其他表格也在变化)。将另一列添加到此表中将会很昂贵。大多数表格的一件事是它们确实是不可变的......没有数据被改变,也没有数据被删除,只有数据被添加。 – 2010-04-19 03:35:18

+0

事务复制不会向正在复制的文章添加任何内容。 – 2010-04-19 05:51:42

相关问题