两个SQL Server数据库之间的数据同步检查

时间:2012-08-11 15:53:11

标签: sql-server synchronization

我们有两个SQL server数据库。源服务器具有从外部系统填充的数据和远程服务器上的目标数据库(由Web应用程序使用)。有一个SSIS包,它将列表从源表映射到目标(列名不同),并填充数据以保持同步。

现在,为了确保数据库同步,我们有一个显示记录计数的SP,对于某些父子关系,它显示每个父记录的子计数(即Brandwise Item计数)。有人必须登录到两台服务器,执行SP并手动获取数据。然后比较结果以确保数据库同步。

现在,为了使这个过程自动化,我们已经完成了以下任务 -

  
      
  1. 将目标服务器添加为“Linked Server
  2.   
  3. 使用“EXEC msdb.dbo。sp_send_dbmail”以及“@attach_query_result_as_file = 1”
  4.   
  5. 创建一个SSIS作业,该作业将执行两个服务器的电子邮件SP
  6.         

    因此,这就是我们如何获得两封附有查询结果的电子邮件   它。然后比较文本文件完成数据库同步检查。

我相信这可以做得更好 - 现在我们能够作为链接服务器访问目标服务器。这是我的第一次所以我要求一些有经验的人分享他们的方法,可能是链接服务器的连接查询以外的东西。

2 个答案:

答案 0 :(得分:1)

由于您可以将服务器作为链接服务器访问,因此您可以直接运行查询并比较数据。

请检查this

您可以修改SSIS作业以根据此查询结果发送邮件。

答案 1 :(得分:0)

我正在使用以下查询,这是一个简单的版本,并给我两个方面的差异 -

(Select s.Title, s.Description from ERPMasterBrand as s   EXCEPT
Select d.Title, d.Description from MasterBrand as d)
UNION
(Select s.Title, s.Description from MasterBrand as s      EXCEPT
Select d.Title, d.Description from ERPMasterBrand as d)

有什么更好的建议吗?我已经测试过,它给出了预期的结果 - 希望我没有被误导:-)通过我自己的解决方案。