同步两个SQL Server数据库

时间:2009-10-19 16:45:45

标签: sql visual-studio sql-server-2005

我有两个数据库:源是客户端的SQL Server Express数据库,目标是SQL Server 2005数据库中的数据库,最初是备份。我需要的是将源同步到目标数据库,如果它们之间存在任何差异,则同步是从源到目标的单向。

我不确定有哪些工具可用。我试图谷歌这个问题,发现MS VS Team Edition(2005)有一个同步数据库的工具,它也可以生成T-SQL脚本。不确定这个是否好。我可以将脚本用作SQL Server(目标服务器)上的预定作业吗?顺便说一句,我现在没有团队版,但我确实有VS 2005教授任何建议?

8 个答案:

答案 0 :(得分:1)

到目前为止,恕我直言,单向(A到B)同步两个数据库的最简单,最快捷的方法是在A上备份数据库并在B上恢复它。这可以通过T-SQL完成,请告诉我,如果你希望我发布SQL语句

答案 1 :(得分:1)

理想情况下,您可以设置从源到目标的事务复制。但是,由于您的源是Express版本,并且Replication不能与Express一起用作发布者(源),而只能用作订阅者(目标),因此您无法使用它。

最佳解决方案是将Express版升级到支持复制发布的SKU(即标准版)。

日志传送或手动备份/恢复将不起作用,因为它将在目标上创建源数据库的完全相同的副本,覆盖目标所做的任何更改(您可能存在“某些差异”)。文件/复制也是如此。

SQL Compare工具适用于一次性手动操作,但它们在自动操作时失败,因为它们总是从头开始比较两个数据库,ei。无法同步只是改变了。一旦数据增长到足够的大小,比较方法就注定要失败,因为它必须在整个数据库上发送,仅用于比较。

其他解决方案是建立主动实时ETL,但与SE许可证和部署复制的成本相比,投入时间/成本的成本过高。

答案 2 :(得分:0)

答案 3 :(得分:0)

您应该使用Red-Gate生成的SQL Server工具。我发现它们是最好的。

答案 4 :(得分:0)

如果您有SQL Server 05,则可以使用复制服务(这是SQL Server附带的)。如果您打开管理工作室,则在您的服务器文件夹下,您会看到一个标题为“复制”的文件夹。从这里,您可以使用推送或拉动同步设置订阅或发布。

以下是MSDN的内容:http://msdn.microsoft.com/en-us/library/ms151198.aspx

答案 5 :(得分:0)

如果这是一次/偶尔的事情,您可以使用SnapShot复制。

如果您需要数据库始终保持同步,则可以使用事务复制。

http://msdn.microsoft.com/en-us/library/ms151847.aspx

答案 6 :(得分:0)

除了Red Gate工具,您还可以尝试DB Ghost http://www.innovartis.co.uk/。它作为自动构建工具最有用,但也有一个用于界面和同步数据库的用户界面。它的成本约为350美元

答案 7 :(得分:0)

使用microsoft sync framerok

http://msdn.microsoft.com/en-us/library/ee819079.aspx http://msdn.microsoft.com/en-us/library/ff928525.aspx