logo Navicat使用教程-2019.1 我也要发布文档

使用Navicat Premium 12自动执行数据库复制(四)


下载Navicat Premium最新版本

Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。

与同步不同,同步是一个一次性的过程,它使两个数据库的模式和数据同步,复制是一个连续(自动)在两个数据库之间复制数据的过程(尽管模式更新也是可能的)。复制可以异步进行,这样就不需要在两个数据库之间建立永久连接,或者在非高峰时间(例如,在深夜,数据库服务器上的通信量很少)进行复制。

复制的主要作用是创建所有用户数据库的合并存储库和/或在所有用户之间传播相同级别的信息。在这两种情况下,结果都是一个分布式数据库,在该数据库中,用户可以访问与其任务相关的数据,而不会干扰其他人的工作。为了消除用户之间的数据模糊性或不一致性而实现的数据库复制称为规范化。

这篇文章将介绍如何使用Navicat Premium的新自动化实用程序自动执行数据库复制。

合并复制

顾名思义,合并复制包括将两个或多个数据库中的数据合并到一个数据库中。作为练习,我们将把sakila和sakla2数据库的内容合并到第三个名为“sakila_merged”的数据库中,该数据库将存储合并的数据集。

所需的数据同步作业

合并复制作业将要求我们创建和保存两个数据同步配置文件:每个源数据库一个。这些步骤与上面的“Creating a Data Synchronization Job”部分中的步骤完全相同,因此我们在此不再重复这些步骤。

创建批处理作业

批处理作业可能由源数据库或目标触发,正如我们在快照复制的前一节中所做的那样。但是,通常最容易从目标数据库触发批处理作业,因为它们都将驻留在同一服务器上。我们也会在这里做。

  1. 单击主工具栏中的“Automation”按钮。
  2. 然后单击“Objects”工具栏中的“New Batch Job”以打开“New Batch Job”选项卡。
  3. 在“Objects”窗格中浏览上的源连接、数据库和/或架构。这将使该数据库的已保存作业显示在“Available Jobs”底部窗格中。
  4. 在“Available Jobs”窗格中,选择数据同步作业类型,然后通过双击或拖动将作业从“Available Jobs”列表移动到上面的“Selected Jobs”列表。

    Navicat

  5. 单击“Automation”工具栏上的“Save”按钮,并在“Save”对话框中提供描述性名称。这将启用“the Set Task Schedule”和“Delete Task Schedule”按钮。
  6. 在“Task Schedule”对话框的“General”选项卡中,您可以再次提供任务的说明,并提供执行任务的几个选项。
  7. 在“Triggers”选项卡中,可以将任务配置为按各种计划运行,包括一次、每天、每周、每月以及每种计划的任意排列。这一次,将执行两个作业而不是一个。
  8. 完成自动化作业的配置后,可以通过单击自动化工具栏中的“Start”按钮来测试它。

事务复制

在合并复制中,只有合并的数据库包含所有最新数据。每个源数据库只包含基线数据,以及自首次填充以来插入的数据。在事务复制中,用户接收数据库的完整初始副本,然后随着数据更改而定期接收更新,以便所有数据库都使用相同的数据集。保持多个数据库同步使这成为最复杂的复制类型。

所需的数据同步作业

使用事务复制时,所需的数据同步作业的数量会大幅增加,因为必须跨所有用户数据库复制数据。例如,假设我们有三个数据库,分别是sakila、sakila2和sakila3。我们可以使用总共六个数据同步作业在所有用户数据库中合并和传播完整的数据集:三个用于合并用户数据库,另外三个用于用合并的数据集更新它们。

下面是包含所有六个作业的自动化向导:

Navicat

为了使数据合并有足够的时间完成,最好将作业分成两部分,第一部分合并数据,第二部分在指定的延迟后使用完整的数据集更新用户数据库。

下面是将合并数据集传播到用户数据库的自动化作业的外观:

Navicat

在第一次运行两小时后运行此作业应为完成合并提供足够的时间。因此,如果第一个作业计划在午夜运行,我们会将此作业设置为凌晨2点开始:

Navicat

结论

这篇文章介绍了如何使用Navicat Premium 12的自动化实用程序自动执行数据库复制。它与它的同步工具结合使用,允许DBA自动执行各种类型的复制,以按照预先定义的计划运行。

购买Navicat Premium正版授权,请点击“咨询在线客服”哟!

PyCharm