快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

在不同的远程源中同步SQL Server数据库

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

场景

旅行销售代表或其他现场工作人员使用的应用程序-送货司机,来访的护士等,旨在从远程位置收集数据,然后将其发送到数据中心。同样,有时需要将来自数据中心的数据发送回这些远程位置,以使它们保持最新状态。

例如,每当护士拜访患者时,他们都会将有关拜访的信息输入到移动设备上的数据库中。在一天结束时,将当天创建的所有这些条目发送到医院的中央数据库。之后,护士可以将移动设备与医院数据中心中的数据库进行同步,这样他们就可以获得有关患者的新信息,以及他们第二天需要进行的新探访的信息。

在这种情况下,始终需要将信息从移动设备同步到中央数据库。

解决方案

1.使用SQL Server复制。当这些数据库位于不同位置时,它通过将记录从一个数据库复制并分发到另一个数据库来同步数据库。

无法使用SQL Server复制时,存在一些限制:

  • 只有SQL Server的标准版或企业版才能充当发布服务器,因此,如果使用免费的SQL Express,则将需要升级
  • Web复制不支持使用SQL 2005 Publisher和SQL 2008 Subscriber进行的配置
  • 发行者版本必须大于或等于发行者版本
  • 事务复制中的订阅服务器版本必须在发布服务器版本的两个版本内,例如,SQL Server 2000发布服务器不能具有SQL Server 2012订阅服务器
  • 合并复制中的订阅服务器版本必须小于或等于发布服务器版本,例如SQL Server 2012订阅服务器不能具有SQL Server 2008发布服务器

2.使用Sync Framework,该API使用户可以构建应用程序并在数据库之间进行同步。它提供了很大的灵活性,但也需要开发,这增加了实施的成本和时间。

3.使用ApexSQL Data Diff,这是一种SQL Server数据比较和同步工具,可检测数据差异并解决它们而不会出错。它可以比较和同步实时数据库,本机或本机压缩的数据库备份,脚本文件夹,源代码管理项目,并生成关于检测到的差异的综合报告,创建同步文件并执行。

怎么做

在以下示例中,使用了两个数据库:

  1. 中心数据库是医院的数据中心
  2. 护士移动设备上的护士数据库

医院将访问记录添加到“ 访问”表中,护士每天早上都会同步其移动设备以获取最新记录,并找出他们当天的行程。护士白天插入的记录存储在“ 访问”表中,并应在一天结束时同步回数据中心。

  1. 启动ApexSQL数据差异
  2. 在“ 数据源”选项卡中,选择中央数据库所在的服务器作为源,并选择护士数据库所在的服务器作为目标:

    ApexSQL Data Diff中的数据源类型和详细信息选择

  3. 点击比较按钮
  4. 比较完成后,将显示Visits表及其相应的数据:

    SQL Server数据库比较后的主网格

    缺少标签中显示了从中央数据库插入到“ 访问”表中的记录。

  5. 单击“ 主页”选项卡中的“ 保存”按钮,以将当前设置保存到项目中,并在下一次快速,轻松地执行比较和同步:

    检查表以进行数据库同步

  6. 主页选项卡单击同步以启动同步向导:

    ApexSQL Data Diff中的“同步”按钮

  7. “ 同步”向导的“ 同步方向”步骤中,单击“ 下一步”
  8. 在“ 同步”向导的“ 输出选项”步骤中,选择“立即同步”作为操作:

    在同步向导中选择输出操作

  9. 单击下一步按钮
  10. 在“ 操作”标签中查看将执行的操作摘要:

    操作和警告摘要预览

  11. 点击同步从的右下角按钮同步向导
  12. 将显示提示消息,以提供有关同步脚本将在Nurse数据库上执行的信息。单击按钮执行同步:

    SQL Server数据库更改通知对话框

  13. 目标数据库同步完成后,将显示“结果”窗口,其中包含以下消息:

    脚本执行结果消息

如果需要在晚上将护士白天添加到其数据库中的记录进行同步,则在中央数据库中,步骤类似:

  1. 在“ 数据源”选项卡中,将Nurse数据库设置为源,并将Central数据库设置为目标:

    选择SQL Server数据库的源和目标

  2. 点击比较按钮
  3. 选择一天中已向其中添加记录的表。记录显示在“ 缺少”选项卡中:

    源数据库和目标数据库的比较和同步

  4. 单击“ 主页”选项卡上的“ 保存”按钮,以将当前设置保存到项目中,并在下一次快速,轻松地执行比较和同步:

    检查表以进行数据库同步

  5. 单击“ 主页”选项卡中的“ 同步”按钮:

    ApexSQL Data Diff中的“同步”按钮

  6. 同步向导中重复上述相同的步骤,然后将缺少的记录添加到中央数据库中

流程自动化

现在已经保存了两个项目,可以通过创建两个PowerShell脚本来自动化同步过程:

  1. 在早上开始上班之前,第一个PowerShell脚本将自动将记录从中央数据库同步到Nurse数据库:
    #提供工具的位置,定义日期戳变量和工具的参数
    $ appLocation    =  “ ApexSQLDataDiff” 
    $ dateStamp  =  (Get-Date  -Format  “ MMddyyyy_HHMMss” )
    $ appParameters  =  “ /pr:""CentralToNurse.axdd”“ / sync / v / f / rece“ 
    #启动数据源比较
    (Invoke-Expression  (”&`“” +  $ appLocation  +“`”“ + $ appParameters ))
    $ dateStamp  =  $ LASTEXITCODE
    
  2. 转移结束后,第二个PowerShell脚本将自动将护士数据库中的记录同步回中央数据库:
    #提供工具的位置,定义日期戳变量和工具的参数
    $ appLocation    =  “ ApexSQLDataDiff” 
    $ dateStamp  =  (Get-Date  -Format  “ MMddyyyy_HHMMss” )
    $ appParameters  =  “ / pr:”“ NurseToCentral”“ / sync / v / f / rece“ 
    #启动数据源比较
    (Invoke-Expression  (”&`“” +  $ appLocation  +“`”“ + $ appParameters ))
    $ dateStamp  =  $ LASTEXITCODE
    

排程

创建两个PowerShell脚本并自动化整个过程之后,可以用不同的方式安排它。查找更多有关调度ApexSQL工具的不同方式的信息

使用ApexSQL Data Diff可以将远程位置上的SQL Server数据库与数据中心中的SQL Server数据库进行比较和同步,而不管远程和中央位置上使用的SQL Server版本如何,而无需任何编程知识,并且可以完全控制,下降到行级别。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638