使用 Navicat 对比和同步数据

John Doe 十二月 24, 2023

摘要:Navicat 能使不同的数据库和/或模式的数据保持一致,以让每个库包含相同的信息。

关于数据同步

Navicat 让你以详细分析的进程从一个数据库和/或模式传输数据到另一个。换句话说,Navicat 能使不同的数据库和/或模式的数据保持最新,以让每个库包含相同的信息。若要打开数据同步窗口,请从菜单栏选择“工具”->“数据同步”。

你可以将设置保存为一个配置文件以供将来使用或用作设置自动运行任务。若要打开一个已保存的配置文件,请点击“加载配置文件”按钮并从列表中选择。

提示:配置文件保存于配置文件位置

注意:SQL Server 2000 不支持此功能。对于 Oracle 服务器,在数据同步进程中,BLOB、CLOB、NCLOB、LONG 和 LONG RAW 数据会被忽略。数据库链接同步到 9i 服务器时,TIMESTAMP 主键不能同步(插入、更新)。数据库链接同步到任何服务器时,RAW 主键不能同步(插入、更新、删除),而且不会发生错误。

注意:仅适用于 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、SQLite 和 MongoDB。Navicat Premium 和 Navicat for MySQL 均支持 MySQL 与 MariaDB 之间的同步。

选择连接和比较选项

选择源和目标连接

在数据同步窗口中,为“源数据库”和“目标数据库”定义连接、数据库和/或模式。你可以点击 互换 来交换源和目标的设置。

选择比较选项

然后,点击“选项”按钮来设置比较选项。

插入记录

如果目标中不存在记录,将插入记录。

删除记录

从目标中删除多余的记录。

更新记录

如果记录不同于源,则更新目标。

选择表或集合映射

这个步骤,在默认情况下,只有源和目标之间含有相同名的表或集合会在列表中映射。如果你不想同步某些表或集合,只需从下拉式列表手动禁用它们。

相同名的键和字段也会映射。你可以在“键映射”和“字段映射”列中更改映射。

映射表或集合后,点击“比较 & 预览”查看比较结果(步骤 3)。如果你想跳过预览并立即部署,单击“比较 & 部署”。

查看数据比较结果

比较数据后,窗口显示将在目标中插入、更新或删除的记录数。取消勾选“显示相同的表和其他”或“显示相同的集合和其他”选项来隐藏具有相同数据的表或集合和具有不同结构的表或集合。在默认情况下,所有具有不同数据的表或集合和所有动作均已勾选。你可以取消勾选你不想应用的复选框。

img

当你在列表中选择一个表或集合时,底部窗格将显示源和目标中的数据。源和目标之间不同的值会高亮显示。若要查看多行的数据,请右键单击网格,然后选择“显示辅助查看器”。你可以取消勾选你不想应用于目标的记录。

从下拉列表中选择一个选项以显示数据。

选项 描述
不同 显示源和目标中所有不同的记录。
插入 仅显示目标中不存在的记录。
更新 仅显示源和目标中存在但具有不同值的记录。
删除 仅显示源中不存在的记录。
相同 显示源和目标中存在并具有相同值的记录。
全部行 显示源和目标中的所有记录。

img

点击“下一步”按钮来显示所有已选择的表或集合和记录的脚本。

编辑和运行已选择的脚本

你可以在“部署脚本”选项卡中查看将在目标数据库中运行的所有脚本。

部署选项按钮 描述
部署选项 遇到错误时继续 - 如有需要,在运行进程中忽略遇到的错误。
在每个运行中运行多个查询 - 一次运行多句 SQL 语句,这将会使传输进程更快。
使用事务 - 发生错误时回滚所有数据。
编辑脚本 打开“编辑部署脚本”窗口来重新排列脚本的排序。
复制脚本到剪贴板 将所有脚本从部署脚本选项卡复制到剪贴板。
在查询编辑器打开脚本 打开一个新的查询窗口并显示脚本。

在“编辑部署脚本”窗口中,使用箭头按钮移动脚本。

img

然后,点击“开始”按钮来运行脚本。窗口会显示运行进度、运行时间和成功或失败信息。