SQL数据库中的数据通常需要实时同步 – 可以通过检查一个数据库的更新然后将它们应用到另一个数据库来实现。在这种情况下,变更检测和同步过程应按计划自动运行,无需外部干预。
SQL数据库中的数据通常需要实时同步 – 可以通过检查一个数据库的更新然后将它们应用到另一个数据库来实现。在这种情况下,变更检测和同步过程应按计划自动运行,无需外部干预。
我们如何才能实现这一目标/h4>
你可以按照以下步骤设置该过程:
- 运行Data Compare for SQL Server【立即下载最新版dbForge Data Compare for SQL Server】
-
在“New Data Comparison(新建数据比较)”窗口中,在相应的选项卡中选择源数据库和目标数据库:
- 如果需要,你可以在“Options(选项)”选项卡中设置各种比较设置。
-
在“Mapping(映射)”选项卡中,你可以选择要比较的对象。此外,如果有必要,你可以指定键列和列表以进行比较:
- 当一切准备就绪后,按下右下角的Compare(比较)按钮开始比较过程
-
完成比较后,你可以详细查看结果:
- 使用相应的复选标记选择所有必需的对象,然后单击“Save(保存)”:
保存的项目(dcomp)文件将包含调度数据同步所需的所有对象和选项。
- 保存项目(dcomp)文件后,按“Synchronize(同步)”按钮将打开“Synchronization wizard(同步向导)”:
- 选择“Execute the script directly against the target database(直接对目标数据库执行脚本)”,以便在设置所有必需选项后同步数据库:
- 现在,按右下角的“Synchronize(同步)”
- 同步过程结束后,你可以在窗口的底部窗格中查看同步结果。
自动化流程
由于我们已经在Data Compare for SQL Server中成功测试了同步过程并保存了项目(dcomp)文件,因此我们可以使用PowerShell脚本自动执行该过程。
准备工作
首先,我们需要创建一个函数来检查Outputs文件夹是否存在 – 它将用于存储带日期戳的输出摘要。我们希望确保保存每个同步的易于查找的应用程序日志,以防我们将来需要执行故障排除:
#checks if the Outputs folder exists. If it doesn’t, the script creates it and returns its full pathfunction CheckAndCreateFolder($rootFolder, [switch]$Outputs){ $location = $rootFolder #set the location based on the used switch if($Outputs -eq $true) { $location += "Outputs" } #create the folder if it doesn't exist and return its path if(-not (Test-Path $location)) { mkdir $location -Force:$true -Confirm:$false | Out-Null } return $location}
接下来,让我们定义的根文件夹和数据标记的输出摘要位置:
#set the root folder$rootFolder = "D:DataSync"#set the location of output files$outsLoc = CheckAndCreateFolder $rootFolder -Outputs
变量和开关
在本节中,我们定义应用程序的位置以及数据戳记变量。此外,我们定义包含应用程序参数的变量,例如:
- 保存项目(dcomp)文件的路径;
- / sync开关用于直接同步目标数据库;
- / rece开关,当数据源相等时返回’102 – No differences detected(102 – 无差异检测)’消息
- 带有日期戳的输出摘要。
以下脚本允许我们实现此目的:
#define the tool’s location声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!