我有两个数据库:源是客户端的SQL Server Express数据库,目标是SQL Server 2005数据库中的数据库,最初是备份。我需要的是将源同步到目标数据库,如果它们之间存在任何差异,则同步是从源到目标的单向。
我不确定有哪些工具可用。我试图谷歌这个问题,发现MS VS Team Edition(2005)有一个同步数据库的工具,它也可以生成T-SQL脚本。不确定这个是否好。我可以将脚本用作SQL Server(目标服务器)上的预定作业吗?顺便说一句,我现在没有团队版,但我确实有VS 2005教授任何建议?
答案 0 :(得分:1)
答案 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复制。
如果您需要数据库始终保持同步,则可以使用事务复制。
答案 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