Informix® Dynamic Server (IDS) OpenAdmin Tool (OAT) 是一个基于 PHP 的开放源码管理工具,在 IDS 11.1 和更高版本上支持此工具。在本文中,学习如何从 Informix Server Administrator (ISA) 迁移到 OAT。本文还介绍在 OAT 上如何更轻松地执行 ISA 核心功能以及 OAT 的增强功能。因为 OAT 是一个开放源码工具,所以很容易修改它来满足自己的需要。OAT 具有一些非常出色的特性,比如对 MACH(IDS 11 的一个新特性)的支持、从单一实例管理多个 Informix 服务器的能力、容易使用的 GUI 和 Automated Update Statistics。
简介
本系列的 第 1 部分 介绍了 IDS OAT,这是在 IDS 11.10 和更高版本上支持的基于 Web 的 IDS 管理界面。OAT 具有许多优点:
- 一个 OAT 系统可以管理多个数据服务器。
- 不需要在数据服务器上额外安装软件,OAT 可以在任何 Web 浏览器中运行。
- 自动化安装程序简化了安装过程。
- IDS 11 和 OAT 结合在一起,形成一个 “免管理” 区。
ISA 是一种用来监视 Informix Server Version 10 的与 OAT 相似的工具。尽管 OAT 和 ISA 具有相似的功能,但是 OAT 具有一些独特的特性。本文还讨论在 ISA 上支持的一些核心功能,以及如何在 OAT 上更轻松地执行相同的任务。
实际迁移过程
SQL 编辑器
在 ISA 上
要想使用 ISA 执行 SQL 查询,必须单击 ISA 主菜单中的 SQL 链接,这会在一个列表框中显示可用的数据库。选择数据库并编写要在服务器上执行的查询,然后单击 Submit。然后,ISA 会把查询传递给服务器并把结果返回当前 Web 页面。图 1 显示 ISA SQL 编辑器。
图 1. ISA SQL 编辑器
在 OAT 上
OAT 提供一个称为 “SQL Toolbox” 的组件。此组件包含以下子组件:
- Databases
- Schema Browser
- SQL Editor
前两个子组件分别用来显示当前数据库和每个数据库的模式。第三个组件对于通过 OAT 执行 SQL 查询尤其有用。单击 SQL Toolbox 就会打开一个屏幕,可以在其中的文本框中输入查询。当前,OAT 只支持每次输入一个 SQL 语句。
图 2. OAT SQL Editor
还可以从文本文件导入并执行查询,而不必在文本框中手工输入查询。同样,还可以使用 Save Query to File 按钮把输入的查询保存到外部文件中。
配置参数
在 ISA 上
在使用 ISA 时,可以从远程机器创建新实例并编辑配置。用户可以编辑 sqlhosts 文件 onconfig。为此,需要单击 ISA 主菜单中的 configuration 链接。这个菜单项会列出 ISA 可用的各个配置菜单。
图 3. ISA 上的配置参数列表
在 OAT 上
可以通过 OAT 的一个选项查看所有决定服务器行为的配置参数。OAT 提供了一个更先进的功能:如果某个 onconfig 参数没有设置为推荐的值,OAT 会提供对参数值的建议。建议会用黄色背景突出显示。可以通过 OAT 动态地修改某些参数。单击特定参数就会显示详细信息,比如对参数作用的描述、参数类型、约束(比如最小值和最大值)和当前值。
图 4. OAT 上的配置参数列表
查看日志
在 ISA 上
在 ISA 菜单上选择 Logs 并选择所需的日志类型,就可以查看逻辑、物理和在线日志。但是,不能同时查看所有日志文件。图 5 只显示 Logical Logs 屏幕。
图 5. 在 ISA 上查看日志
在 OAT 上
在 OAT 上,可以通过生成报告查看逻辑、物理和在线日志内容。OAT 还提供一个饼图,这个饼图以图形方式显示已用空间和空闲空间。单击 Performance Analysis > System Reports。选中 Logical Logs、Physical Log 和 Online Log 并按 Create Report 按钮,见图 6。这会在一个新窗口中创建日志文件的报告。
图 6. 在 OAT 上查看日志
空间管理
在 ISA 上
可以使用 ISA 工具直接创建或查看 dbspace。在 ISA 主菜单上,单击 Storage 进入 Spaces 屏幕,其中的 Show 选项列出现有的 dbspace。还可以使用 Add dbspace、Add blobspace 和 Add sbspace 按钮在服务器环境中创建空间。
图 7. 在 ISA 上管理空间
在 OAT 上
选择 Space Administration 组件并选择 DBSpaces 选项卡,就会显示服务器的空间信息。单击 Graph 或 Data 按钮可以在饼图和一个两列的表视图之间切换。此页面的底部显示服务器上的所有 dbspace 和相关信息,包括以下列:
- Number:dbspace 的编号
- Name:dbspace 名称
- Type:空间类型(dbspace、sbspace 或临时 dbspace)
- Status:dbspace 的当前状态
- Size:空间的大小
- Free:dbspace 中的空闲空间量
- Used %:dbspace 中已用空间的百分比
- Number of Chunks:dbspace 中的 chunk 数量
- Page Size:dbspace 的页面大小
这个表格可以按任何列的升序或降序排序。单击 dbspace 名称就会看到更多信息,如果有适当的授权,还可以对 dbspace 执行管理任务。这会显示 Summary、Admin、Tables 和 Extents 选项卡。还可以使用这个特性创建 dbspace、blob 空间、智能 blob 空间和临时 dbspace。
图 8. 在 OAT 上管理空间
系统检验
在 ISA 上
ISA 允许轻松地运行各种 oncheck 功能。为此,需要单击主菜单中的 Check。这会打开数据库选择向导,可以在此向导中选择要执行各种检查的数据库,比如数据库、数据、索引、日志和空间检查。这些是 IDS 支持的选项。
图 9. ISA 上的系统检验
在 OAT 上
可以使用 Server Administration 下面的 System Validation 页面对当前数据库服务器上的数据库和表执行系统检验。按照以下步骤检查特定表的数据格式:
- 在 Database Name 下拉菜单中选择数据库。
- 在 Table Name 下拉菜单中选择表。
- 单击 Check Table。
要想检查数据库的区段格式,应该在 Database Name 下拉菜单中选择 dbspace 并单击 Check Extent。
图 10. OAT 上的系统检验
OAT 的特别之处是什么?
监视多个 IDS 实例
首先,可以使用一个 OAT 实例管理多个数据库服务器实例。此特性对数据库管理员 (DBA) 特别有用。DBA 可以非常轻松地管理和监视分布在不同地理位置的多个服务器。图 11 和图 12 展示了在多个数据库服务器之间切换是多么容易。当前,OAT 标题栏显示它正在监视 “Athens” 数据库服务器,见图 11。下拉框列出当前运行的所有 IDS 服务器。很容易切换到其他服务器,例如在下拉框中选择 Berlin,即可从 Athens 服务器切换到 Berlin IDS 服务器。这时会显示一个弹出窗口,要求您确认。单击 Yes,马上就可以监视 Berlin IDS 服务器了,而这个服务器的位置可能离 Athens IDS 服务器很远。另外,与 ISA 相比 OAT 还有另一个优点:不需要在 IDS 服务器上安装 OAT。
图 11. 当前连接的服务器
图 12. 切换服务器时的确认屏幕
容易使用的 GUI
OAT 的突出特点是能够非常轻松地管理数据库服务器。它提供的 Web 界面非常简单并提供 DBA 最可能需要的信息。它用饼图显示数据,所以用户能够快速地理解信息的含义,而不需要浏览大量统计数据。尽管有许多特性增强了 OAT 的易用性,但是下面讨论的两个特性对于改进使用 OAT 的总体体验尤其重要。
首先,在需要连接 IDS 服务器时,不需要每次都指定服务器和机器的详细信息。在登录屏幕上,只需单击 Admin 并填写 IDS 服务器详细信息一次。然后返回到登录屏幕。
图 13. 登录屏幕
登录屏幕会列出刚才添加的服务器名。单击服务器名,OAT 会自动地替您填写所有详细信息,包括用户名、密码和主机名。这就避免了重复输入详细信息的麻烦。
第二,OAT 会显示 DBA 需要的信息,帮助他们分析 IDS 服务器的性能和采取必要的措施。屏幕左边的 Performance Analysis 组件有一个 Systems Report 子组件,它列出反映 IDS 服务器当前状态的所有报告,包括 SQL 语句汇总、内存使用情况和网络状态。
图 14. System Reports 页面
如图 14 所示,可以从下拉框中选择报告类型,也可以手工选择所需的报告。选择所需的报告之后,单击 Create Report,OAT 就会动态地生成报告。通过使用此特性,可以获得所需的大量信息,比如 IO 时间最长的 SQL 语句和最慢的五个 SQL 语句。如果仍然对某个组件的使用方法有疑问,可以在 OAT 屏幕的右上角找到 Help 按钮 ,它会指导您执行操作。
任务调度器向导
任务调度器向导 (task scheduler wizard) 用来调度两种任务。第一种是 “典型的” 任务,它们在特定的时间执行特定的操作;另一种特殊形式的任务称为 “传感器”,它们收集并保存数据。在 OAT 中,可以指定任务类型(典型任务或传感器)、应该执行任务的时间、任务的频率和任务应该执行的操作,还可以检查任务是否执行成功以及编辑任务的详细信息。在服务器上直接完成相同的操作要涉及大量的数据库和表,所以 OAT 极大地简化了整个任务调度和监视过程。OAT 还支持称为 “启动任务” 和 “启动传感器” 的特殊任务,这些任务只在服务器启动时运行一次。图 15 显示任务调度器向导。
图 15. 调度新任务
例如,一个名为 “Sample Task_1” 的任务被安排在 10am 执行,在 11am 停止。也可以不指定停止时间。Frequency 参数指定此任务每两天执行一次,此任务对一个表执行一个简单的插入操作。任务的详细信息见图 16。在成功地调度一个任务之后,可以在 Task Details 子组件中新出现的行中看到任务的详细信息,见图 17。在这里单击任务名(用红色圈标出),就可以编辑或禁用此任务。
图 16. 任务确认
图 17. cron 任务列表
可以使用 Task Runtimes 子组件检查任务是否成功执行和其他性能信息,比如执行任务花费的时间。
图 18. 任务运行列表
如果成功地执行了任务,会在 Last Execution Status 列中显示绿色的复选标记,类似于 并填充 Last Run Time 列。
注意:某些特殊的任务(比如删除调度器中的任务)只在 Informix Server Version 11.50 和更高版本上得到支持。
OAT 是开放源码的
OAT 最灵活的特性之一是,它是开放源码的。因此,可以根据自己的需要定制此工具。可以修改外观、定制菜单、隐藏组件,以及通过修改代码显示相关的信息。图 19 给出调整后台代码时的页面示例。另外,也提到了详细说明更改的代码片段。
图 19. 调整后的 OAT 页面
添加菜单
OAT 有两种菜单链接:基于管理的菜单链接和基于用户的菜单链接。它们分别存储在 OATDIR/admin/menu.xml 和 OATDIR/admin/conf/menu.xml 文件中。添加新的菜单项需要在 conf/menu.xml 文件中做以下修改。此示例使用 My Customized Menu。
清单 1. My Customized Menu
<menu id="MyNewCust" name="My Customized Menu" lang="MyNewCust" expanded="false"> <item name="Online Log" lang="onlinelogC" link="index.php?act=show& do=showOnlineLogTail" title="Show Online Message Log"/> <item name="OnBar Act Log" lang="baractlog" link="index.php?act=show&do =showBarActLogTail title="Show OnBar Activity Log"/> </menu> |
因为 OAT 支持多种语言,所以如果希望在浏览器中显示内容,还需要在相关的语言文件中添加相同的内容。在这个示例中,“My Customized Menu” 是新添加的内容,在 OATDIR/lang/en/lang_menu.xml 文件中应该添加对应的条目。
清单 2. lang_menu.xml 文件中的条目
<MyNewCust><![CDATA[My Customized Menu!]]></MyNewCust> <onlinelogC><![CDATA[My Cheetah 11.10 UC1 Log!]]></onlinelogC> |
所有与语言相关的条目都需要添加到 OATDIR/lang 目录中。
搜索和显示内容
此示例在菜单中添加以下链接。
清单 3. 在菜单中添加链接的代码
<item name="Online Log" lang="onlinelogC" link="index.php?act=show& do=showOnlineLogTail" title="Show Online Message Log" /> |
每个菜单链接可以有变量,比如:
- act:模块名,这与模块目录下应该调用的文件名相同。此示例使用 act=show,所以绝对文件名是 show.php。
- do:这是传递给模块的关键字,它向模块指出应该做什么,例如模块中要运行的函数。
此示例使用 do=showOnlineLogTail,调用的开关分支是 showOnlineLogTail。
在单击 My Cheetah 11.10.UC1.Log 时,浏览器在 OATDIR/modules 目录中搜索 “act” 变量指定的文件,并把 “do” 的内容传递给文件。例如,浏览器把 showOnlineLogTail 传递给 OATDIR/modules/show.php 文件,这会在浏览器中显示 Online Message Log! 内容。
Automated Update Statistics
此特性可以在 Informix Server Version 11.50 和更高版本上使用。OAT 的 Auto Update Statistics (AUS) 组件根据特定的策略运行统计数据更新命令,从而简化 DBA 的工作。这些策略基于不同的配置参数,比如 AUS_AGE、AUS_CHANGE、AUS_SMALL_TABLES、AUS_AUTO_RULES 和 AUS_PDQ。统计数据更新只能在启用了日志的数据库上执行。
为什么要使用 Auto Update Statistics?
- 为了确保最优性能,DBA 需要反复执行统计数据更新,AUS 可以简化此工作。
- 确保数据库引擎的最优性能。许多 Informix 新客户没有认识到他们必须更新统计数据,因此由于缺少最新的优化器统计数据,他们的数据库性能很差。
- 开发运行统计数据更新的优化计划很复杂,要花费很多时间,所以大多数 DBA 使用的计划不是最优的,或者不了解如何开发优化计划。
图 20. Automated Update Statistics
此屏幕显示数据库和表,需要按照 AUS 所做的前一次评估刷新它们的统计数据。单击 Refresh Evaluation 获取最新的详细信息。各个选项卡的作用如下:
- Info:提供执行 AUS 评估和刷新的时间。可以修改这些任务的设置。
- Alerts:提供缺少统计数据更新的表的详细信息。
- List:提供用来运行统计数据更新的命令。
- Config:允许用户设置 AUS 参数,比如 AUS_AGE、AUS_CHANGE、AUS_SMALL_TABLES、AUS_AUTO_RULES 和 AUS_PDQ。
AUS 的 OAT Help 选项提供对所有 AUS 配置参数的详细描述。
支持高可用性多节点活动集群(MACH)
因为 OAT 上的许多特性支持 MACH,下面提一下与 MACH 相关的核心 OAT 功能:
- 配置 IDSD 守护进程
- 启动和停止集群中的服务器
- 创建 SD 辅助服务器
- 用 Connection Manager Wizard 管理服务级协议和故障转移配置
图 21. MACH 页面
Database Privileges Manager
可以通过 OAT 轻松地添加或修改数据库和表特权。Database Privileges Manager 要求用户首先选择一个数据库,然后就能够修改此数据库中的特权。在任何时候都可以通过页面顶部的 database 下拉框切换数据库。
- 数据库级特权:它有三个选项。可以查看当前特权、向用户授予新的数据库特权和修改现有的特权。
图 22. 数据库级特权
- 表级特权:可以使用这个选项查看、授予和修改特定表的特权。
图 23. 表级特权
- 角色:可以在数据库中创建和查看角色。
图 24. 角色
结束语
本文解释了从 ISA 到 OAT 的迁移过程。在 OAT 上可以更轻松地执行 ISA 的核心功能,并且在某些方面还进行了增强。另外,还介绍了一些 OAT 特有的特性。本文提供了一些特性的屏幕图,帮助用户掌握使用 OAT 的全过程。IDS 是一个强大的数据库引擎,而 OAT 提供一个容易使用的 IDS 管理 GUI,大大简化了 DBA 的工作。(责任编辑:A6)