内容


通过 OpenAdmin Tool 轻松使用 Informix Enterprise Replication 特性

Comments

简介

数据库是关键的业务工具。数据库的事务概念支持以我们认为理所当然的速度和便捷性采购货物并支付货款。基于各种原因,经常存在需要在一个服务器上访问另一个服务器上存储的数据的业务要求。例如,一个服务器出现故障时,使用该服务器上的数据的备份可使公司正常运营。另外,您可以查询和操作从一个生产服务器复制出来的数据,而这样的操作不会影响生产流程。可以将来自多个远程位置的数据合并到一个中央服务器中,也可以将来自一个位置的数据传输到一组远程数据库中。基于上述原因以及其他原因,在多个数据库之间复制数据的能力十分有用。

借助 Informix Dynamic Server (IDS),您可以使用 Enterprise Replication (ER) 特性将数据复制到其他 IDS 服务器中。这个特性内置于 IDS 中,不需要额外的软硬件。您还可以使用其他各种工具在 IDS 和非 IDS 数据库之间复制数据,但本文主要关注 “IDS 到 IDS” 复制。

为了使用 Enterprise Replication,首先需要正确配置一些服务器和表:数据将在这些服务器之间传输;这些表是识别事务以便复制的地方。此前,您可能一直使用 Continuous Data Replication (CDR) 实用程序来执行这种配置,然后监控和管理这些 Enterprise Replication 任务。CDR 是一个命令行实用程序,是 Enterprise Replication 特性原来的名称。

现在可以使用 OpenAdmin Tool (OAT),通过一个 Web 浏览器来配置、监控和管理 ER 了。OpenAdmin Tool 是一个开源 Web 应用程序,支持对 IDS 进行常规监控和管理。ER 插件扩展了这个功能以包含 ER。这个插件的向导提供了一些简单的图形化逐步指南来执行任务。它的组织方式支持轻松监控已复制的数据并进一步采取行动。图形界面意味着需要理解的概念和需要记忆的命令语法更少。所有这些特点使 ER 更易于使用,操作速度更快。

下面几节将向您展示这个插件的实际运行情况。

创建一个 ER 域

一个 ER 域包含几个 IDS 服务器,可以基于用户定义的标准(将在稍后介绍)在这些服务器之间复制数据。这些参与数据复制的 IDS 服务器可以安排为各种拓扑。(参阅 IDS 信息中心中的 选择一个复制网络拓扑 主题了解更多细节。)本文将展示如何在一个 Update Anywhere 配置中设置一个包含三个服务器(g_one、g_two 和 g_three)的域,重点展示如何通过默认选项或某种最小配置更改创建一个域。本文还将展示如何使用几个高级选项。

向一个 ER 域添加服务器的一个先决条件是:每个独立 IDS 服务器必须使用已配置的 SQLHOSTS 文件运行并连接到一个网络。清单 1 包含了一个 SQLHOSTS 文件,用于本样例场景中使用的三个服务器中的每一个服务器。一旦这三个服务器使用这个 SQLHOSTS 文件运行后,它们就成为这个 ER 域的一部分了。

清单 1. 样例 SQLHOSTS 文件
g_one group - - i=100
sumanth_er onsoctcp hostA sumanth19 g=g_one
g_two group - - i=200
sumanth_er1 onsoctcp hostA sumanth20 g=g_two
g_three group - - i=300
sumanth_er2 onsoctcp hostA sumanth21 g=g_three

可以使用 OAT 的一个 4 部分向导将一个服务器添加到一个 ER 域。下面是添加第一个服务器的指导。

在 OAT 左侧导航菜单中的 Enterprise Replication 菜单组下,选择 Enterprise Replication > Domain 转到 Domain 页面。由于这是域中的第一个服务器,您将看到一个确认屏幕,询问您是否要将这个服务器定义为一个 ER 服务器(见图 1)。单击 Yes,将这个服务器定义为一个 ER 服务器。

图 1. 域创建确认屏幕
您要将这个服务器定义为一个 ER 服务器吗?选择 Yes 或 No
您要将这个服务器定义为一个 ER 服务器吗?选择 Yes 或 No

如果要添加的服务器不在第一个向导屏幕的列表中,单击 Add a server to the list。这将显示如图 2 所示的对话框。输入必要的 server name、OAT group、host、port、user、password 和 protocol 信息,然后单击 OK

图 2. IDS 服务器连通性信息
提示输入 server、OAT group、host、port、user、password 和 protocol 信息的对话框
提示输入 server、OAT group、host、port、user、password 和 protocol 信息的对话框

(参见图 2 的 放大图。)

现在列表中出现一个新服务器。选择它(如图 3 所示),然后单击 Next

图 3. 选择服务器
从列表中选择新服务器
从列表中选择新服务器

(参见图 3 的 放大图。)

在下一个向导屏幕(见图 4)中,所有默认选项已足够创建一个域。但是,您可能想更改与拓扑相关的创建选项和 ATS/RIS (Aborted Transaction Spooling/Row Information Spooling) 配置。(参阅 IDS 信息中心中的 失败的事务(ATS 和 RIS)文件 主题了解更多细节。)单击 Next 继续。

图 4. ER 域和节点选项
选择 Create a new ER domain,并指定 Root Node 作为 ER node type
选择 Create a new ER domain,并指定 Root Node 作为 ER node type

(参见图 4 的 放大图。)

在最后一个向导屏幕(见图 5)上,惟一需要的信息是针对配置参数 CDR_QDATA_SBSPACE 的一个智能 blob 空间。(参阅 IDS 信息中心中的 CDR_QDATA_SBSPACE 配置参数 主题了解更多细节。)

在这个屏幕的 Create a new sbspace 区域(在图 5 中高亮显示)中,输入这个空间的名称、主机中的文件的路径、偏移值(cooked 文件使用值 0,表示由操作系统管理的文件)以及空间大小。单击 Create 继续。

图 5. CDR_QDATA_SBSPACE 信息输入
输入空间名称、路径、偏移值和大小
输入空间名称、路径、偏移值和大小

(参见图 5 的 放大图。)

如图 6 所示,名称为 cdrsbsp1 的 sbspace 空间被选中,以便创建。单击 Next

图 6. 选择 QDATA sbspace
完成空间定义
完成空间定义

(参见图 6 的 放大图。)

在向导确认页面(见图 7)上,检查有关信息,确保正确无误,然后单击 Finish 继续。

图 7. 确认屏幕
显示已选择的选项
显示已选择的选项

您选择的动作执行后,这个服务器就成为新创建的 ER 域的一部分,您将看到结果屏幕(如图 8 所示)。单击 Close 继续。

图 8. 结果屏幕
新的 ER 服务器成功定义
新的 ER 服务器成功定义

现在您可以通过相同的基本步骤添加其余两个服务器(g_two 和 g_three)。惟一的区别是在第二个向导屏幕(见图 4)上,应该选择 Add the server as a new node in an existing ER domain 并选择要同步到的服务器。第一步,从 Actions 下拉菜单中选择 Define New Server

将 g_two and g_three 定义为 ER 服务器后,这个域拥有了三个服务器(见图 9)。

图 9. 使用三个服务器创建的 ER 域
包含三个名为 g_one、g_two 和 g_three 的服务器的 ER 域的路由拓扑
包含三个名为 g_one、g_two 和 g_three 的服务器的 ER 域的路由拓扑

(参见图 9 的 放大图。))

模板

模板是一个机制,可用于轻松建立复制并与 ER 域中的新服务器同步数据。可以为整个数据库定义模板,也可以为数据库中单独的表定义模板。当您向 ER 域添加没有数据的新服务器时,可以在这个新服务器上实例化模板。首先,实例化过程使用源数据库服务器的适当列属性和主键约束创建数据库及其表,然后启动从源服务器的数据传输。

本小节简述定义一个模板,在 ER 域中的一个新服务器上实现(实例化)它,以及与一个源服务器同步数据的步骤,描述如何使用最小选项定义并实例化一个模板。当您理解这个流程的基本原理后,就能够探索大量可用选项来满足您自己的特定环境的需求。

场景描述:一个名为 g_two 的服务器拥有一个名为 atest 的数据库,这个 atest 数据库有一个填充了数据的、名为 tab 的表(见图 10)。第二个服务器 g_three 没有 atest 数据库(见图 11)。通过在 g_three 上定义一个模板并实例化该模板,您可以在 g_three 上创建 atest 数据库并从 g_two 到 g_three 复制数据。

图 10. g_two 服务器上 atest 数据库中数据的 OAT 视图
OAT 显示 atest 数据库的 tab 表中的样例数据
OAT 显示 atest 数据库的 tab 表中的样例数据

(参见图 10 的 放大图。)

图 11. g_three 服务器(没有 atest 数据库)上数据库的 OAT 视图
OAT 显示 g_three 服务器数据库;在这个场景中的这个时点上,atest 数据库没有在这个服务器上
OAT 显示 g_three 服务器数据库;在这个场景中的这个时点上,atest 数据库没有在这个服务器上

(参见图 11 的 放大图。)

在 OAT 中,选择 Enterprise Replication > Replicates 转到 Replicates 页面。当您到达这个页面时,默认打开的选项卡是 Templates。

要开始定义一个新模板,从 Actions 下拉菜单中选择 Define New Template(见图 12)。

图 12. 开始定义一个新模板
从 OAT 中的 Replicates 页面选择 Define New Template 操作
从 OAT 中的 Replicates 页面选择 Define New Template 操作

(参见图 12 的 放大图。)

在 Define New Template 向导(见图 12)的第一个页面中,输入模板名称 atestTempl。然后从左侧的 Tables 选择框中选择整个 atest 数据库,单击 Add 将 atest 及其所有表都包含在右侧的 Templates 选择框中。这意味着 atest 是这个模板将在其他服务器上创建并复制的数据库。单击 Next 前往第二个向导屏幕。

图 13. Define New Template 向导的第一个屏幕
输入 atestTempl 作为模板名称;atest 数据库已经添加到模板中。
输入 atestTempl 作为模板名称;atest 数据库已经添加到模板中。

(参见图 13 的 放大图。)

第二个向导屏幕(见图 14)允许您选择其他几个模板选项。对于这个示例,您可以只使用默认选项。(参阅 IDS 信息中心中的 cdr 定义模板 主题了解关于具体选项的细节。)单击 Finish 定义模板。

图 14. Define New Template 向导的第二个屏幕
图 14
图 14

成功创建模板后,您将看到 Define New Template 向导结果屏幕(见图 15)。单击 Close 返回 OAT Replicates 页面的 Templates 选项卡。

图 15. Define New Template 向导的结果屏幕
屏幕包含消息:Template atestTempl created successfully
屏幕包含消息:Template atestTempl created successfully

(参见图 15 的 放大图。)

现在您可以在源服务器(g_two)和目标服务器(g_three)上实例化这个新模板 atestTempl 了。这将在 g_three 上创建数据库并使用来自 g_two 的数据填充它。

在 Templates 选项卡中,选择 atestTempl 模板并从 Actions 下拉菜单中选择 Realize Template(见图 16)。

图 16. 选择 Realize Template 操作
在 Actions 下拉菜单中选择 Realize Template
在 Actions 下拉菜单中选择 Realize Template

在 Realize Template 向导的第一个屏幕(见图 17)上,选择将在其上实例化模板的服务器。即使 g_two 服务器是源服务器,但模板还没有在其上实例化,因此同时选择 g_two 和 g_three 服务器。单击 Next 继续。

图 17. Realize Template 向导的第一个屏幕
同时选中 g_two 和 g_three 服务器,作为在其上实例化模板的服务器
同时选中 g_two 和 g_three 服务器,作为在其上实例化模板的服务器

在 Realize Template 向导的第二个屏幕(见图 18)上,为 realize template 操作指定参数。选择 Synchronize the data with this source server 选项,并从下拉列表中选择 g_two 作为源服务器。保留屏幕上的其他选项的默认值。单击 Finish 继续。

图 18. Realize Template 向导的第二个屏幕
选中复选框 “Synchronize the data with this server”,并选择 g_two 作为源服务器
选中复选框 “Synchronize the data with this server”,并选择 g_two 作为源服务器

实现模板并启动同步之后,您将看到 Realize Template 向导的结果屏幕(见图 19)。同步需要的时间取决于需要复制的数据量。单击 Close

图 19. Realize Template 向导的结果屏幕
结果屏幕显示模板已经在 g_two 和 g_three 服务器上实例化,状态消息显示处于同步过程中
结果屏幕显示模板已经在 g_two 和 g_three 服务器上实例化,状态消息显示处于同步过程中

图 20 和 21 中的 OAT 视图显示已经在服务器 g_three 上创建了数据库和表,且使用服务器 g_two 作为源对其进行了填充。

图 20. 在服务器 g_three 上创建的数据库 atest
atest 数据库现在出现在 g_three 服务器上的数据库列表中
atest 数据库现在出现在 g_three 服务器上的数据库列表中

(参见图 20 的 放大图。)

图 21. g_three 服务器上的 atest 数据库中的 tab 表与 g_two 服务器同步
g_three 服务器上的 atest 数据库中的 tab 表;COL2 显示街道地址 4100 Bohannon Drive
g_three 服务器上的 atest 数据库中的 tab 表;COL2 显示街道地址 4100 Bohannon Drive

(参见图 21 的 放大图。)

细节问题:在图 21 中,数据的 COL 2 中显示的街道地址 4100 Bohannon Drive 的意义何在?(参阅本文 “结束语” 小节寻找答案。)

数据一致性

ER 特性自动将每个提交的事务同步复制到适当的服务器上,并有效地处理多种情况,比如网络链接断开和 IDS 掉线。但是,也可能出现数据不同步的情况。OAT 允许您轻松启动并监控多个检查和修复作业。您可以使用这些作业来纠正错误,或者只是检查您的所有数据是否一致。

通过同时验证多个复制的数据,这些作业可以更快地完成。这种 “并行性” 需要富余的处理器资源。OAT 允许选择想要的 “并行性”,并显示任务的总体信息和关于个别部分的细节信息。OAT 使用进度条和其他有用的用户界面消息表示任务的总进度和每个部分的进度。本节介绍如何使用 Check or Sync Replicate Set 向导。

在 OAT 中的 Replicate Sets 选项卡(见图 22)中,选择一个复制集。

图 22. 选择一个复制集
从屏幕左侧的菜单选择的 Replicates;从列表选中 template_A
从屏幕左侧的菜单选择的 Replicates;从列表选中 template_A

(参见图 22 的 放大图。)

Actions 下拉菜单选择 Check or Sync Replicate Set(见图 23)启动 Check or Sync Replicate Set 向导。

图 23. 选择 Check or Sync Replicate Set 操作
Actions 下拉菜单中选中了 Check or Sync Replicate Set 的 Replicate 页面
Actions 下拉菜单中选中了 Check or Sync Replicate Set 的 Replicate 页面

(参见图 23 的 放大图。)

在 Check or Sync Replicate Set 向导的第一个屏幕(见图 24)上,输入 OAT_template_A 作为 Task Names,选择 Check and Repair 作为要执行的任务。单击 Next 继续。

图 24. Check or Sync Replicate Set 向导的第一个屏幕
输入任务名 OAT_template_A;选中了 Check and Repair 单选按钮
输入任务名 OAT_template_A;选中了 Check and Repair 单选按钮

(参见图 24 的 放大图。)

在第二个向导屏幕(见图 25)上,选择要使用的进程数。为了获得最佳性能,指定的进程数应该与复制集中的复制数一致。对于这个样例场景,选择 4。单击 Finish 继续。

图 25. Check or Sync Replicate Set 向导的第二个屏幕
显示进程数和其他服务器选项
显示进程数和其他服务器选项

(参见图 25 的 放大图。)

Check or Sync Replicate Set 向导确认页面(见图 26)表明检查和维修任务已经成功提交。单击 Close 继续。

图 26. Check or Sync Replicate Set 向导确认页面
消息:Check and repair task successfully submitted.
消息:Check and repair task successfully submitted.

导航到 OAT Tasks Status 选项卡。如图 27 所示,这个样例场景的任务还在运行。要获取某个任务的详细信息,双击任务进入 Task Details 页面。

图 27. Task Status 选项卡
显示任务和状态的表
显示任务和状态的表

(参见图 27 的 放大图。)

在 Task Details 页面(见图 28)上,OAT 显示关于该任务的详细信息,一个进度条(顶部的进度条)表示整个任务的进度,另外几个进度条表示模板中每个复制的进度。

图 28. Task Details 页面
Shows progress of each task
Shows progress of each task

(参见图 28 的 放大图。)

您可以跟踪一个任务的进度,直到任务结束(见图 29)。

图 29. 所有任务都已完成的 Task Details 页面
显示每个任务都已完成
显示每个任务都已完成

(参见图 29 的 放大图。)

监控 ER 系统

与 Enterprise Replication 的设置和管理一样,对设置好的系统进行监控和分析同样重要,操作也比较简单。为监控和分析系统,OAT 的 ER 插件为您的 ER 系统提供了三个级别的监控:监控整个域,监控单独的服务器或节点,以及监控复制活动。这三个级别分别对应 ER 的 OAT 菜单上的三个视图。

域监控

ER 监控最重要的部分也许是拥有一种简单的方法来从一个位置确定整个系统的健康状况。通过从 OAT 菜单选择 Domain 来访问 Domain Monitoring 页面,这个页面是您的系统的 “一站式” 总体视图。这个视图提供关于每个节点及其复制状态的健康和配置信息。

Domain Monitoring 页面的基础是您的 ER 拓扑的一个图形表示。可以从这个拓扑选择任意节点,并显示一个带有该节点状态的弹出窗口。节点状态显示关于节点健康状况的最重要数据(见图 30)。针对每个服务器显示的配置数据与在命令行执行 cdr view profile 命令得到的信息相同。这个域页面上的数据自动刷新,以便您总是能够查看您的 ER 系统的最新状态和健康状况。

图 30. Domain Monitoring 页面显示选中节点的状态
展示选中一个节点并显示状态的拓扑
展示选中一个节点并显示状态的拓扑

(参见图 30 的 放大图。)

对于轻松诊断问题最为关键的是,您可以为每个配置统计数据配置阈值。如果达到某个阈值,您将通过 Domain Monitoring 页面收到一个关于系统潜在问题的警报。通过设置关于数据采集、收发队列、应用统计数据、网络状态和磁盘使用情况的阈值,您可以创建一个早期警报系统来识别您的 ER 系统的潜在问题。

例如,在图 31 中,g_two 和 g_three 服务器带有图标警报,表明它们的连接断开。

图 31. 在 Domain Monitoring 中显示警报
为断开的节点显示警报
为断开的节点显示警报

(参见图 31 的 放大图。)

节点监控

除域级别监控之外,您还可以深入探讨一个特殊的服务器,从节点视角详细检查 ER 的状态。这种类型的视图由 OAT 中的 Node Details 页面提供。

Node Details 页面提供 10 个选项卡,这些选项卡包含关于您的域中每个服务器的详细信息:

  • Summary 选项卡提供节点的高级别统计数据,用于确定这个节点及其伙伴节点的当前复制状态。
  • Capture 选项卡提供关于节点的数据采集活动的统计数据。
  • Send Queue 选项卡允许监控关于选中节点及其目标节点和复制的发送队列的重要统计数据。
  • Network 选项卡允许监控选中节点及其伙伴 ER 节点之间的网络活动。
  • Disk Usage 选项卡显示关于 ER 在节点处使用的空间的三个区域的信息和使用情况统计数据。
  • Apply 选项卡提供关于选中节点的复制应用活动的信息。
  • ATS 和 RIS 选项卡可用于识别并修复失败的事务。
  • Errors 选项卡提供一种机制来审查与当前节点相关的错误。
  • Configuration 选项卡允许查看和编辑节点的 ER 配置参数。

图 32 展示了一个 Summary 选项卡示例。

图 32. Summary 选项卡
Nodes Detail 页面的 Summary 选项卡显示当前节点及其伙伴节点的高级别统计数据
Nodes Detail 页面的 Summary 选项卡显示当前节点及其伙伴节点的高级别统计数据

(参见图 32 的 放大图。)

图 33 展示了一个 Capture 选项卡示例。

图 33. Capture 选项卡
Nodes Detail 页面的 Capture 选项卡展示关于当前节点的数据采集活动的统计数据
Nodes Detail 页面的 Capture 选项卡展示关于当前节点的数据采集活动的统计数据

(参见图 33 的 放大图。)

图 34 展示了一个 Disk Usage 选项卡示例。

图 34. Disk Usage 选项卡
Disk Usage 选项卡显示关于 ER 在节点处使用的空间的三个区域的信息和使用情况统计数据
Disk Usage 选项卡显示关于 ER 在节点处使用的空间的三个区域的信息和使用情况统计数据

(参见图 34 的 放大图。)

复制监控

最后一层监控由 Replicates 页面提供,该页面允许查看模板、复制集和复制的状态。因此,您可以监控与您的域内的复制活动相关的所有对象的状态。参见 “模板” 小节中的图,获取展示这一点的示例。

ER 的灵活性

IDS 中的 Enterprise Replication 特性非常灵活,能够满足多种业务要求。下面是一些示例:

  • 可以精确指定要复制的数据。只需要表 1 和表 2 但不需要表 3 吗?只要州名称以 “A” 开头的行吗?ER 能够提供所有这些规则。
  • 可以设置复制数据的来源和目标。例如,某个公司可能需要将来自商店 #208 和 #209 的数据发送到商店 #150,但商店 #150 则不需要返回任何数据。
  • ER 在不同版本的 IDS 之间仍然有效,例如,在一个版本 10 服务器和一个版本 11.50 服务器之间。当您升级 IDS 或者在不同的操作系统上使用 IDS 时,这个特性会很有用。

如果您拥有一个具有特定复制要求的业务场景,ER 有可能就拥有满足那个要求的功能。

结束语

ER 的功能已经很丰富,且还在不断得到增强。最近的增强功能可以通过 OAT ER 插件和 CDR 使用。例如,最近的改进包括通过指定只检查最近修改的数据来提高检查和修复任务的速度。OAT ER 插件已经包含了所有有用的 CDR 命令。

Enterprise Replication 是一个 “即将上市(already-in-the-box)” 的有用工具,允许 IDS 服务器交换数据。它在进行快速数据共享和驱动由数十个数据库 24x7 组成的复杂层级时很方便。OAT ER 插件使 ER 简便易用。

图 21 下面的细节问题的答案:4100 Bohannon Drive 是 Informix 公司总部的地址(自二十世纪 80 年代初期公司成立到 2001 年被 IBM 收购)和一个 IBM 站点的地址(到 2007 年末)。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=497370
ArticleTitle=通过 OpenAdmin Tool 轻松使用 Informix Enterprise Replication 特性
publish-date=06212010