IBM® Informix® Dynamic Server (IDS) 因其管理的简便性而闻名。OpenAdmin Tool (OAT) 是一种开放源码的独立于平台的新工具,它的开发让 IDS 用户可以轻松地管理服务器。OpenAdmin Tool 提供用于执行管理任务的图形界面和性能分析工具。OAT 是在 IBM Informix Dynamic Server 11.10 中引入的,它是一种基于 PHP 的 Web 浏览器管理工具,支持从单一位置管理多个数据库服务器实例。本文介绍非常有用的一些 OAT 特性并帮助您入门。
简介
IBM Informix Dynamic Server 提供丰富的特性,能够满足不同用户群的需要,包括开发人员和管理员。IDS 的优点之一是管理成本低。IDS 因其无需手动管理而闻名。OpenAdmin Tool (OAT) 是一种开放源码的独立于平台的新工具,它的开发让 IDS 用户可以轻松地管理服务器。OAT 包含一个用于执行管理任务的图形界面和性能分析工具。OAT 是在 IBM Informix Dynamic Server 11.10 中引入的,它是一种基于 PHP 的 Web 浏览器管理工具,支持从单一位置管理多个数据库服务器实例。非常有用的 OAT 特性包括 SQL Explorer、Session Explorer、Task Scheduler、Health Center、Space Administration、Server Administration 等等。除了 OAT 提供的内置特性之外,用户还可以轻松地插入自己的扩展以创建所需的功能。本文介绍非常有用的一些 OAT 特性并帮助您入门。
前提条件
OAT 要求安装以下产品。圆括号中的版本是测试过 OpenAdmin Tool 的版本。图 1 说明这些产品如何支持 OAT。
- Web 服务器 (Apache 2.2.6)
- IBM Informix I-Connect 或 IBM Informix Client SDK (3.00)
- PHP 5.2.4(最低版本),在启用 PDO、PDO_SQLITE、GD 和 SOAP 的情况下编译 (5.2.4)
- Informix PDO Module
图 1. OpenAdmin Tool 软件组合

在 OpenAdmin Tool 附带的 readme 文件中可以找到安装说明(参见 参考资料)。
登录并连接 IDS 服务器
完成安装之后,访问 OAT 根 URL(例如,http://SERVERNAME/LOCATION,其中的 SERVERNAME 是运行 Web 服务器的服务器的名称,LOCATION 是 OAT 在 Web 服务器文档根目录中的位置,也就是解压 OAT 的 tar 或 zip 的位置)。图 2 显示登录屏幕:
图 2. 登录屏幕

在登录屏幕的左上角有两个单选按钮,Login 和 Admin。默认选择 Login。Group 列表框包含连接组名。可以使用默认组,也可以使用一个用户定义的组,您的所有服务器连接都属于这个组。在选择 Admin 单选按钮时会启用一些选项,可以通过选择这些选项设置组的配置、服务器的详细信息及其密码。
此屏幕上的 Get Servers 按钮会显示一个列表框,其中包含属于所选组的所有服务器连接。填充屏幕右边的列表框。现在,单击屏幕右边的 Login 按钮,就可以开始使用所选的服务器连接。
选择 Admin 单选按钮就会切换到管理屏幕。管理屏幕提供用来配置 OAT、管理连接的选项。
图 3. 打开管理菜单

OAT Config 选项
在管理菜单中,选择 OAT Config 以设置运行 OAT 所需的参数。图 4 显示 OAT 配置屏幕。
图 4. 配置屏幕

在此屏幕上,可以设置以下参数:
表 1. 配置参数
参数 | 说明 |
---|---|
Default language | 默认情况下,语言是英语。可以切换到德语 |
Base URL | 这个 URL 指向 OAT 管理控制台 |
Install directory | 安装 OAT 之后,存放与 OAT 相关的所有文件和文件夹的位置 |
Connections database location | 存储与服务器连接所需的数据库详细信息 |
Pinger interval | 可以根据需求和环境设置此值。默认值是 300 |
IDS protocol | 可以选择 onsoctcp 或 ontlitcp 协议(onsoctcp 是默认协议) |
Manage Connections:
可以使用 Manage Connections 添加组、添加连接或查看 Connection Admin 屏幕。
- Add Group
在 Manage Connection 下面,选择 Add A Group。屏幕应该与图 5 相似。
图 5. 添加一个新组

要想添加一个 IDS 服务器组,需要提供您选择的服务器组名和服务器组密码。如果选择 Read only,就会禁用此组中定义的所有服务器的 OAT 管理特权,比如添加区块(chunk)的特权。决定是否把此组标为 “Read only” 并单击 Add 以确认添加此组。
- Add Connection
添加新的 IDS 服务器连接需要设置以下参数。
表 2. 添加 IDS 服务器连接所需的参数
参数 | 说明 |
---|---|
Group | 每个服务器连接都应该属于已经定义的组。如果没有选择组名,新的服务器连接就属于 'Default' 组 |
Username | IDS 服务器所在的主机的用户名 |
Password | 与用户名相关联的密码 |
Informix Server | IDS 服务器实例的名称 |
Host Name | 驻留 IDS 服务器的主机的名称 |
Port | IDS 服务器使用的端口号 |
Attributes | 决定是在当前日志后面添加逻辑日志,还是在日志的末尾追加它 |
纬度、经度和 IDS 端口值有助于确定 Informix 服务器的位置。
选择 Test the connection 按钮测试连接。如果为参数提供的任何值是错的,或者此服务器关闭了,用户可能会看到下面的错误消息。
图 6. 连接错误消息

如果 Informix 服务器正在运行,参数值也是正确的,就会成功地建立连接。用户会看到成功消息(显示 “online”),见图 7。
图 7. 连接成功消息

成功地测试这个新连接之后,单击 Save 把它添加到选择的组中。
- Connection Admin
在 Connection Admin(图 8)屏幕上,可以删除不再需要的组。单击要删除的组旁边的复选框,然后选择 Delete。这会删除整个组以及其中配置的连接。这个操作对于管理许多组的管理员很有用。
图 8. Connection Admin 屏幕

OAT login
这个选项返回到前面解释的 OAT 登录屏幕。也可以通过直接单击 Login 到达 OAT 登录屏幕。
Health Center
可以通过 Health Center 全面了解系统和服务器的状态。Health Center 由警报和一个 dashboard 组成。
警报
如果单击 Health Center > Alerts,就会看到与图 9 相似的屏幕。可以选择要查看的警报的严重程度、警报类型和状态。还可以选择以不同颜色显示不同类型的警报,从而使输出更清晰。
图 9. Health Center 警报

管理 dashboard
如果选择 Dashboard,就会看到系统的相关信息。Dashboard 提供两个选项卡 —— Default 和 Space。Default 选项卡(图 10)显示系统的当前内存消耗量和事务信息,Space 选项卡(图 11)包含关于 dbspace 和锁的使用情况。
图 10. Health Center dashboard —— Default

图 11. Health Center dashboard —— Space

Logs
这个部分可以显示与数据库服务器相关的各种日志,包括管理命令、在线消息和 OnBar 活动。
- Admin Command
图 12. Admin Command

- Online Messages
图 13. Online Messages

- OnBar Activity
如果选择 OnBar Activity 选项,就会看到数据库服务器配置变量 BAR_ACT_LOG 指向的文件的内容(图 14)。这个日志是在通过 OnBar 实用程序执行备份时生成的。错误和警告消息分别以红色和黄色显示。
图 14. OnBar Activity 日志

Task Scheduler
通过使用 OAT 的 Task Scheduler 特性,可以在预先指定的时间(或由服务器内部决定的时间)运行维护、监视和管理任务。可以监视活动(例如,检查空闲的日志空间)并创建自动的纠正操作。可以使用一个基于 SQL 的管理系统和一组任务收集信息、监视和调整服务器。
Task Scheduler 是由任务定义和驱动的。sysadmin 数据库是带有日志信息的数据库,其中包含存储 Task Scheduler 信息的表。在默认情况下,只有 Informix 用户有权访问 sysadmin 数据库。任务属性存储在 sysadmin 数据库中的 ph_task 表中。此表中的每一行是一个单独的任务,每个列是一个任务属性。可以修改任务属性,也可以通过在表中插入行来设置新任务。PH_RUN、PH_ALERT、PH_THRESHOLD、PH_GROUP 等表也与任务调度有关。关于这些表的更多信息,请参见 参考资料。
OAT 中的 Task Scheduler 分为三部分 —— Scheduler、Task Details 和 Task Runtimes,见图 15。
图 15. Task Scheduler

- Scheduler
Dynamic Server 中的调度器包含下表所示的任务。可以使用 Task Scheduler 提供的 Task Scheduler Wizard 修改这些任务和设置新任务。表 3 给出修改任务和设置新任务所需的参数。
表 3. Task Scheduler 中的参数
参数 | 说明 |
---|---|
mon_command_history | 清空命令历史表 |
mon_config | 保存在 ONCONFIG 文件中所做的修改 |
mon_config_startup | 在每次服务器启动时保存 ONCONFIG 文件 |
mon_sysenv | 跟踪数据库服务器启动环境 |
mon_profile | 保存服务器概况信息 |
mon_vps | 收集虚拟处理器信息 |
mon_checkpoint | 保存关于检查点的信息 |
mon_memory_system | 监视系统内存消耗量 |
mon_table_profile | 保存表概况信息,包括在此表上发生的更新、插入和删除的总数 |
mon_table_names | 保存表名和创建时间 |
mon_users | 保存每个用户的概况信息 |
check_backup | 检查备份是否已经运行 |
ifx_ha_monitor_log_reply_task | 监视 HA 次级日志重放位置 |
Alert Cleanup | 从系统中删除所有旧的警告项 |
post_alarm_message | 发出警告的系统函数 |
Auto Update Statistics Evaluation | 评估哪些列和表的统计数据和分布应该刷新 |
Auto Update Statistics Refresh | 刷新评估器建议的统计数据和分布 |
图 16. Scheduler 屏幕

单击 Add New Task 按钮,使用 Task Scheduler Wizard 定义新任务。
图 17. Task Scheduler Wizard

有两种调度器任务,任务和传感器。任务 (task) 在特定时间或以特定的时间间隔运行特定的作业。传感器 (sensor) 用来收集和保存信息。如果选择 Run Only at Server Startup,那么只在服务器启动时执行任务。
提供任务名称、任务组(例如,DISK、NETWORK、CPU、BACKUP 等等)和描述。单击 Next。图 18 显示这些步骤。
图 18. New Task Setup Wizard

现在,要为新任务指定调度计划,见图 19。输入任务的启动和停止时间以及频率。单击 Next。
图 19. 新任务的调度计划

为了指定新任务应该运行的命令,在这里输入在每次运行任务时执行的多个 SQL 语句(以分号分隔)或一个用户定义函数。
图 20. 新任务运行的命令

Task Scheduler Wizard 的最后一个屏幕显示新任务的设置汇总,要求用户确认这些设置值。确认之后,就会创建新任务。
使用 Task Scheduler Wizard 创建传感器
正如前面提到的,DBA 可以使用传感器收集服务器数据,从而维护关于服务器上活动的历史记录。可以使用 Task Scheduler Wizard 创建传感器。与创建新任务相似,向导会提示您输入传感器名称、传感器组、描述、启动时间、停止时间和频率。
注意,在创建传感器时,有一个额外的输入字段 —— data delete(数据删除)—— 这由日、时和分组成。在执行传感器时,收集的数据被存储在一个用户定义的表中,这个表是在创建传感器时创建的。“数据删除” 指定从此表中删除数据的时间间隔。应该根据 DBA 希望维护的数据历史类型设置数据删除时间间隔。与任务相似,必须提供在执行传感器时应该执行的 SQL 语句。完成这些步骤之后,新的传感器就会显示在任务表中。
- Task Details
输入传感器的所有信息之后,可以查看 Task Details 屏幕,见图 21。
图 21. Task Details 屏幕

Task Details 屏幕的顶层显示所有任务以及它们的组、描述、下一次执行时间和频率。在屏幕顶部,“Group to View” 允许选择特定类别的任务。例如,如果选择 CPU 作为要查看的组,那么表中只显示 mon_vps 任务。要想进一步了解某个任务或修改任务的参数集,应该单击 Name 列下面的任务名称。然后就会看到一个显示此任务的详细信息的新屏幕。
图 22 显示任务的详细信息屏幕:
图 22. Task Details 屏幕

- Task Runtime
Task Runtime 提供每个任务的运行情况汇总。汇总表提供的信息包括已经执行的次数、每次执行花费的平均时间、所有执行花费的总时间以及每个任务最后一次运行的时间。图 23 显示 Task Runtime 屏幕示例。
图 23. Task Runtime 屏幕

通过单击 Name 列下面的任务名称,可以查看任务的详细信息和修改任务。从 Task Runtime 访问任务时,可以看到一个额外部分 Task Parameters。有一个名为 ph_threshold 的 sysadmin 表,它用来存储调度器任务的阈值。在到达阈值时,任务可以决定采取不同的操作。任务参数就是指这些阈值。阈值实际上是任务的参数。图 24 显示系统定义的任务 'check_backup',它有两个参数。只有在 ph_threshold 表中包含与此任务相关的数据项时,OAT 中才会显示 Task Parameters 部分。
图 24. Task Parameters

Space Administration
Space Administration 进一步分为三个部分,即:
- Dbspaces
- Chunks
- Recovery logs
Dbspaces
在介绍 dbspace 及其使用之前,先介绍可以使用 OAT 创建的空间类型。
可用的空间类型有:
- dbspace:dbspace 是一个逻辑单元,可以包含 1 到 32,766 个区块(chunk)。把数据库、表、逻辑日志文件和物理日志放在 dbspace 中。一个 dbspace 包含一个或更多的区块。
- 临时 dbspace:临时 dbspace 是专门为存储临时表保留的 dbspace。数据库服务器会清除自从数据库服务器上一次关闭以来可能留下的任何表。
- blobspace:blobspace 是一个逻辑存储单元,它由一个或更多的区块组成,其中只存储 TEXT 和 BYTE 数据。可以把与不同的表相关联的 TEXT 和 BYTE 列存储在同一个 blobspace 中。
- 智能 blobspace (sbspace):sbspace 是一个逻辑存储单元,它由一个或更多区块组成,其中存储智能大对象。智能大对象包括字符大对象 (CLOB) 和二进制大对象 (BLOB) 数据类型。用户定义的数据类型也可以使用 sbspace。
DATA 空间/BLOB 空间 —— 图形表示和统计数据
图 25 用图形和统计数据显示不同 dbspace 类型使用的空间 —— DATA 空间、TEMP 空间和 BLOB 空间。上半部显示图形,下半部以数据形式显示相同的信息。
图 25. DATA - BLOB 空间的图形表示和统计数据

下面的 dbspace 表显示以下信息:空间的名称、空间的类型(dbspace 或 blobspace)、状态、总大小、可用空间量、已用空间的百分比、空间占据的区块数量以及页面大小。
图 26. dbspace 内容表

如果在您的环境中有许多 dbspace,为了查看它们的详细信息,可以使用表上面的下拉菜单(在 OAT 控制台上的图形下面)选择页号。表右上角的 ALL 选项(也在 OAT 控制台上的图形下面)把所有现有的 dbspace 显示在给定的页面上,这样就可以在一个页面上同时查看所有 dbspace。
创建空间
在 dbspace 表下面,可以使用 Create a Space 部分中的选项创建新的空间。图 26 显示创建空间的选项。
图 27. 创建空间

只需提供以下参数,然后单击 Create。
表 4. 创建新空间所需的参数
参数 | 说明 |
---|---|
Name | 要创建的空间的名称 |
Path | 新空间的路径位置 |
Offset | 空间的偏移量(如果有的话) |
Size | 所需的空间大小,应该根据需求和可用性决定 |
Type | 要创建的空间的类型 —— dbspace、临时 dbspace、blobspace 和智能 blobspace |
如果成功地创建了空间,就会在 dbspace 图形上面显示以下消息。
图 28. 成功创建了 dbspace

注意:创建的空间的名称应该追加在路径文本框中输入的路径后面。例如,如果名称是 'myspace',路径应该与 '/usr2/IDS1150/data/myspace' 相似。
如果没有正确地指定路径,就会在 dbspace 图形上面显示与图 29 相似的错误消息。
图 29. 创建 dbspace 时的错误消息

要想了解 dbspace 中的空间使用分布情况,可以单击 dbspace 表中列出的 dbspace 之一。这会显示四个选项卡:Summary、Admin、Tables 和 Extents。
- Summary
Summary 选项卡以图形和统计数据两种形式提供所选 dbspace 的相关信息。dbspace 信息是分页提供的。在 'Dbspace Info' 表中显示统计数据,右边的饼图显示此 dbspace 的使用情况。
dbspace 信息包括 dbspace 的名称、所有者、创建时间、页面大小、数据和索引等占用的页面数量以及可用的空闲页面数量。
- Admin
可以在 Admin 选项卡上执行管理操作,比如删除整个 dbspace、在现有 dbspace 中添加空间以及对 dbspace 表格式和 dbspace 区段(extent)执行完整性检查。
Chunks 表的参数参见 表 6。
Drop space:在这里,可以删除整个空间。只需在下拉菜单中选择 YES,然后单击 Drop。对于 'rootdbs' dbspace,这个选项是禁用的。
Add space:在这里,可以在现有 dbspace 中添加空间。这需要给以下变量提供适当的值:
表 5. 在现有 dbspace 中添加空间所需的参数
参数 | 说明 |
---|---|
Path | 新空间所处的路径位置 |
Offset | 空间的偏移量(如果有的话) |
Size | 所需的空间大小,应该根据需求和可用性决定 |
File Creation | 可以选择两个模式之一 —— “Create file if none exists” 或 “File must exist” |
Integrity of:可以通过检查 'Dbspace Table Format' 和 'Dbspace Extents',检查空间的完整性。
- Tables
Tables 选项卡列出此 dbspace 中的所有表。dbspace 表列表提供的信息包括表名、与此表相关联的数据库名、与数据库和表对应的 DB_LOCALE 值、表中的行数、创建表的日期和时间、分配给表的页面数量、已经使用的页面数量和区段数量。
- Extents
Extents 选项卡列出与给定的 dbspace 相关联的所有区段。dbspace 区段列表提供的信息包括表名、区段的起始地址和结束地址以及与它们相关联的大小。
区块
区块是用于数据库服务器数据存储的最大物理磁盘单元。区块为管理员提供一个很大的磁盘空间分配单元。单一区块的最大大小是 4TB。允许的最大区块数量是 32,766 个。
如果选择 Space Admin > Chunks,会看到两个选项卡 —— Chunk 和 Chunk IO(见下图)。在默认情况下,显示 Chunk 选项卡的统计数据。
下面的表是命令 “onstat -d” 的部分输出。
图 30. 区块表

Chunk 选项卡中的表显示与每个区块的配置相关的详细信息。
表 6. 区块列表中的信息
列 | 说明 |
---|---|
Chunk number | 区块号(单击列标题就会反转显示次序) |
Page size | 此区块中每个页面的大小 |
Offset | 空间的偏移量(如果有的话) |
Size | 此区块占据的磁盘空间 |
Free | 与可用空间相关的统计数据 |
Used % | 此区块已经使用的空间百分比 |
Status | 表示此区块的状态是在线还是离线 |
Path | 路径指向此区块所处的位置 |
Chunks I/O
Chunks I/O 选项卡提供关于每个区块执行的 I/O 的信息。下面的表描述 Chunk I/O 选项卡提供的信息。
表 7. Chunk I/O 选项卡提供的信息
字段 | 说明 |
---|---|
Chunk number | 区块号 |
Chunk path | 区块所处的位置 |
Reads | 对区块的读操作总数 |
Writes | 对区块的写操作总数 |
Recovery logs
Recovery logs 部分进一步分为四个部分 —— Logical logs、Physical logs、Checkpoint 和 Admin。
- Logical Logs
逻辑日志记录对数据库服务器实例所做的修改。逻辑日志记录用于事务回滚、系统故障恢复等等。
如果选择 Space Administration > Recovery Logs,在默认情况下会显示 Logical logs 选项卡。页面的上半部分现在有一个饼图,显示逻辑日志的已用空间、空闲空间和已备份空间使用量。可以通过选择 Data 按钮显示饼图的统计信息。
图 31. Logical Log Status

下半部分提供逻辑日志的状态信息。Number 列显示逻辑日志的编号。第二列显示每个逻辑日志的惟一 ID。Size 列显示每个逻辑日志的大小,第四列 Used 表示每个逻辑日志上已经使用的空间量。Location 列显示每个逻辑日志所处的位置。
Last Filled 列显示最后一次使用每个逻辑日志的日期和时间。日期采用 YYYY-MM-DD 格式,时间采用 HH:MM:SS 格式。Notes 列显示逻辑日志的状态。这些状态包括 used、used and backed up、used and current 或 newly added。最后一列 Fill Rate 表示填充逻辑日志的速度。填充速度表示为每秒字节或每秒千字节。
- Physical Logs
物理日志是数据库服务器上的一组磁盘页面,用于存储未修改的页面拷贝(称为 before-image)。
在 Physical Logs 选项卡上,有一个表和一个饼图。Physical Log Info 表包含物理日志的相关信息,包括大小、已用空间量、物理日志的位置、起始偏移量和缓冲区大小。
另一方面,饼图表示可用空间和物理日志使用的空间。单击图右上角的 Data 选项卡,就会以数字形式显示相同的信息。
- Checkpoint
检查点是指数据库服务器在特定的时间点对磁盘上的页面和共享内存缓冲区中的页面进行同步。
在检查点过程中,数据库服务器会在消息日志中写一条检查点完成消息。
下面的表是在 Chunk 选项卡上获得的,它是命令 “onstat -g ckp” 的部分输出。
图 32. 检查点的信息

下表说明 Checkpoints 表中的列:
表 8. Checkpoints 表中的列
列 | 说明 |
---|---|
Interval | 检查点间隔 ID |
Type | 指定检查点的类型,可以是四种检查点类型之一:block、hard、norm 和 unblock |
LSN | 记录检查点的逻辑日志位置 |
Trigger | 触发检查点的事件;这些事件包括 Admin、Startup、CKPTINTVL、LongTX、Recovery、Backup、Plog、Llog、Misc、RTO、CDR、Pload、Conv/Rev、Reorg、HDR、User 和 Lightscan |
Time | 发生检查点的时钟时间 —— 星号 (*) 表示请求的检查点是事务阻塞检查点 |
Block time | 此检查点的各个事务阻塞时间(秒数) |
Crit time | 等待释放临界区花费的时间 |
Flush time | 刷新缓冲区池的时间(秒数) |
Ckpt duration | 所有事务意识到请求的检查点的时间(秒数) |
# Dirty Buffers | 在检查点期间刷新到磁盘上的脏缓冲区数量 |
# Waits | 事务等待检查点的平均时间(秒数) |
- Admin
在 Admin 选项卡上,可以执行以下操作:
- 执行检查点
- 添加逻辑日志
- 删除逻辑日志
- 移动物理日志
执行检查点
在这里,可以启动两种检查点 —— 一般检查点和同步检查点。
添加逻辑日志
选择 Admin 选项卡 > Do checkpoint > Add logical log 选项。表 9 说明在添加逻辑日志时需要提供的参数。
表 9. 添加逻辑日志所需的参数
参数 | 说明 |
---|---|
Dbspace name | 选择可用的 dbspace 之一,将在此 dbspace 上添加日志 |
Size | 根据需求指定逻辑日志的大小(以 KB 为单位) |
Number | 需要添加的日志总数,值范围在 1 到 6 之间 |
Attributes | 决定是在当前日志后面添加逻辑日志,还是在日志的末尾追加它 |
删除逻辑日志
选择 Admin 选项卡 > Do checkpoint > Drop logical log 选项。表 10 说明在删除逻辑日志时需要提供的参数。
表 10. 删除逻辑日志所需的参数
参数 | 说明 |
---|---|
Logical log number | 这个下拉列表列出现有逻辑日志的编号和位置。选择希望删除的日志(每次只能选择一个日志) |
确认 | 选择 Drop logical log 确认删除逻辑日志。如果不肯定是否应该删除逻辑日志,那么选择 Do not drop logical log |
移动物理日志
选择 Admin 选项卡 > Do checkpoint > Move physical log 选项。表 11 说明在移动物理日志时需要提供的参数。
表 11. 移动物理日志所需的参数
参数 | 说明 |
---|---|
Dbspace name | 选择可用的 dbspace 之一,将把日志移动到此 dbspace 上 |
Size | 根据需求指定物理日志的大小(以 KB 为单位) |
确认 | 选择 Move physical log 确认移动物理日志。如果不肯定是否应该移动物理日志,那么选择 Do not move the physical log |
- Recovery Policies
在 Recovery Policies 选项卡上,可以配置 Recovery Time Objective、打开或关闭 Auto Checkpoints 和 Auto LRU Training 以及保存设置。可以关闭 Recovery Time Objective,还可以把它的值调整为 30 秒到 30 分钟之间的任何值。对于 Auto Checkpoint 和 Auto LRU Tuning,只能选择打开或关闭。
Server Administration
这个部分有助于查看数据库服务器和执行服务器管理操作。有多个子选项可以补充 Server Administration 部分的功能。
- MACH
这是 IDS 11.10 和 IDS 11.50 的关键特性之一。此特性有助于维护高可用性数据复制 (HDR)、远程单独辅助服务器 (RSS) 和共享磁盘辅助服务器 (SDS)。不久后会发表一篇详细解释此特性的文章。
- 配置
这显示 ONCONFIG 文件中声明的配置参数。每一行都显示参数名、当前值以及此参数是否可以动态地配置(见图 33)。单击任何参数就会打开另一个屏幕,其中显示参数名、描述和当前值;如果系统发现任何不妥当,还会显示对值的修改建议;此外,还显示关于参数作用的信息(见图 34)。所有包含建议的行都用黄色突出显示。还可以使用屏幕顶部的列表框过滤出推荐的和动态的参数。
Onconfig 文件
图 33. Onconfig 文件的参数

Onconfig Parameter Details:
图 34. 参数的详细信息

- 系统检验
这个特性检查数据和区段的一致性和损坏,当前这是通过 oncheck 实用程序完成的。它提供很大的灵活性,可以在数据库级检查数据格式,也可以在表级进行检查。可以检查每个 dbspace 的区段。
单击 Server Administration > System Validation 就会看到 Server Administration Check Validation 屏幕。图 35 说明如何对数据和区段执行一致性和损坏检查,并把检查范围收缩到表级。
图 35. Server Administration 检查 1

图 36 显示对每个 dbspace 的区段进行检查:
图 36. Server Administration 检查 2

- 用户特权
可以使用这个特性在数据服务器上声明不同级别的用户特权。根据选择的选项不同,可以在数据库级、表级和角色级声明特权。
在数据库级,用户可以通过选择适当的选项修改和创建特权,见图 37。
要想在数据库级管理特权,应该选择希望修改的数据库并选择 Database-Level privileges 选项。填写或修改用户、特权和默认角色的信息。
图 37. 管理特权 —— 数据库级

在表级,可以看到当前对于每个表分配给每个用户的特权。要想在表级管理特权,应该选择希望修改的表并选择 Table-Level privileges 选项。可以修改每个用户对每个表的当前特权,以及声明每个用户对不同表的新特权。这个屏幕上的操作是基于菜单的,很容易管理。
图 38 说明如何在表级管理特权。
图 38. 管理特权 —— 表级

在 Manage Privileges 屏幕上,选择 Roles 并填写创建新角色所需的信息。图 39 说明这个步骤。
图 39. Server Administration —— 创建角色

- Virtual Processors
可以通过 Virtual Processors 选项查看运行数据库服务器的虚拟处理器的当前状态和使用情况。可以以图形方式或数据格式查看数据。图 40 显示虚拟处理器的图形示例。
图 40. Server Administration —— 处理器

在需要时,还可以通过选择屏幕底部的 Add 创建虚拟处理器。
图 41. Server Administration —— 虚拟处理器

- Auto Update Statistics
Auto Update Statistics 特性是本系列后面一篇文章的主题。
Performance Analysis
Performance Analysis 菜单分为四个部分 —— SQL Explorer、Performance History、System Reports 和 Session Explorer。可以通过 Performance Analysis 特性监视 IDS 的各个方面。
图 42. Performance Analysis

- SQL Explorer
对整个系统进行性能分析的方法之一是研究执行的 SQL 查询。这可以使用查询钻取特性来完成。可以通过查询钻取特性收集关于系统上执行的每个 SQL 语句的统计信息并分析语句历史。查询钻取特性有助于判断 SQL 语句的长度、每个语句使用的资源、执行语句的时间长度、等待资源的时间长度等等。此特性在默认情况下是关闭的,但是可以为所有用户或特定的一组用户打开它。
使用配置参数 SQLTRACE 控制在数据库服务器启动时的默认跟踪行为。如果以默认配置启用此特性,数据库服务器会跟踪运行的最后 1000 个 SQL 语句,并提供这些语句的统计数据。可以修改 $INFORMIXDIR/etc/$ONCONFIG 文件的任何用户都可以修改 SQLTRACE 配置参数的值,以此影响启动配置。但是,只有 Informix 用户和对 sysadmin 数据库有连接特权的 DBA 才能使用 Administration API 命令修改 SQL 跟踪特性的运行时状态。控制跟踪行为的信息包括:
- 级别 —— 这可以是 low、medium 或 high。低级跟踪捕捉语句统计数据、语句文本和语句迭代器。中级跟踪捕捉低级跟踪信息,再加上表名、数据库名和存储过程堆栈。高级跟踪捕捉中级跟踪涉及的所有信息,再加上主机变量
- 要跟踪的 SQL 语句数量 (ntrace)
- 跟踪缓冲区的大小 (size),以 KB 为单位
- 模式 (mode) 指定跟踪的范围,即是针对系统上的所有用户,还是只针对通过 Administration API task() 函数启用了跟踪的用户
如果要存储大量历史信息,此特性所需的内存会很大。SQL 历史跟踪所需的默认空间量是 2MB。
在 SQL Tracing Admin 选项卡上,可以修改跟踪参数,见图 43。选择 Modify 即可修改任何参数。
图 43. SQL Explorer,SQL Tracing Admin 选项卡

在图 44 所示的 Statement Type 选项卡上,可以按照语句类型执行查询钻取。系统中已经执行的语句按类型分组,还提供每个 SQL 语句组的统计汇总数据。语句类型包括 SELECT、INSERT、DELETE、UPDATE、CREATE、DROP 等等。在屏幕右边还可以看到饼图。选择 Data 按钮就会看到表格形式的语句数据。
图 44. Statement Type 选项卡

可以通过选择一个 SQL 语句类型(例如,SELECT 或 DELETE)查看语句级的详细信息。选择 SELECT 即可进入这个 SQL Type 选项卡,其中所有相同的语句被分到一组,见图 45。
图 45. SQL Type 选项卡

在 SQL Type 选项卡上,可以选择感兴趣的一个 SQL 语句,并通过单击 Drill Down 进入 SQL List 屏幕,见图 46。此屏幕显示关于此 SQL 语句的每次调用的详细统计数据。提供的统计数据包括运行此命令的用户的用户 ID、数据库会话 ID、查询的响应时间等等。
图 46. SQL List 屏幕

在 SQL List 屏幕上,可以选择感兴趣的会话并单击 Drill Down,从而获得关于此 SQL 语句的详细信息。SQL Profile 选项卡(图 47)提供的统计数据包括执行的扫描、缓冲区读写的数量、页面读写的数量、锁请求和等待的数量、估计的行数、估计的优化器成本、返回的行数等等。
图 47. SQL Profile 选项卡

与按 SQL 语句钻取相似,还可以按事务时间钻取性能统计数据。Transaction Time 选项卡是 SQL Explorer 的选项卡之一。这个选项卡显示最近 100 个事务的事务时间。提供的信息包括会话 ID、对应的 SQL 语句数量、平均响应时间、最大响应时间、使用的平均内存量和处理的行数。图 48 显示 Transaction Time 选项卡。
图 48. Transaction Time 选项卡

单击 Drill Down 按钮可以显示特定事务的详细信息。这会显示此事务已经运行的 SQL 语句列表。还会显示事务统计数据汇总。这些信息包括响应时间、此事务的 SQL 语句计数、估计的成本、排序统计数据、与锁相关的详细信息等等。可以使用 Drill Down 按钮进一步钻取到语句级。这会显示特定语句的全部 SQL 信息,这在讨论 SQL Profile 选项卡屏幕时已经解释过了。
图 49. Transaction 选项卡屏幕

还可以按频率研究 SQL 语句。Frequency 选项卡按执行频率列出 SQL 语句并显示平均响应时间、锁等待时间和 IO 等待时间。使用 Drill Down 按钮进一步钻取,研究各个语句的情况。
图 50. Frequency 选项卡屏幕

Performance History
通过使用 Performance Analysis 中的 Performance History 菜单项,可以以图形方式显示数据库操作影响性能的各个方面。它还以表格形式提供数据,帮助用户分析服务器的性能和采取适当的纠正措施。涉及的领域包括自动检查点、磁盘读、磁盘写、磁盘刷新、区块写、前台写、缓冲区读、缓冲区写、缓冲区等待、一般汇总信息(包括删除、提交、锁、死锁、排序、扫描等)和 btree 扫描器。
这些图覆盖的时间范围由在 sysadmin:mon_profile 表中可以找到的数据决定。mon_profile 表的内容由 dbcron 任务 'mon_profile' 填充,所以其中数据的时间范围取决于运行此任务的频率。在默认情况下,此任务每四小时运行一次。还会根据 mon_profile 任务的设置自动删除数据。默认设置是七天,所以七天前的数据会从表中删除,无法在这些图中看到。2k、4k 等表示 dbspace(和区块)可用的页面大小。例如,如果用 8k 页面创建 dbspace,那么此 dbspace 中的区块也采用 8k 页面,因此页面读/写和缓冲区读/写都是 8k 的。
System Reports
Performance Analysis 下面的 System Reports 菜单项帮助用户生成关于服务器不同方面的各种报告,例如磁盘使用量、内存池、表操作、性能、会话等等。这些报告向用户提供采取必要措施所需的信息;例如,在磁盘空间不足时添加新的区块,通过监视表锁、内存使用量、虚拟处理器等检查性能改进的效果,通过监视逻辑日志确保日志可用性,等等。
如图 51 所示,报告分为 Disk、Performance、Network、SQL Tables 和 Users 几类。每个类别包含几个报告,例如如果在列表框中选择 Disk 类别,会自动选择 Disk Space Usage、Online Log、Logical Logs、View Checkpoints、Disk IO Levels、Server Admin Commands、Physical Log 和 System Backups 报告。使用 Create Report 按钮生成这些报告的整合报告。
图 51. System Report 屏幕

图 52 显示一个关于逻辑日志的报告。此报告提供的信息包括日志的总数、状态(已备份、已使用、可用)、填充速度等等,这些信息有助于用户决定是否需要添加新日志以及执行一般的日志维护。
图 52. Logical Logs Report 屏幕

Session Explorer
顾名思义,Session Explorer 可以提供关于当前在服务器上运行的所有用户会话的详细信息。图 53 显示典型的 Session Explorer 屏幕。
图 53. Session Explorer 屏幕

单击 SID 下面的会话 id,就可以看到会话的详细信息。
Session Explorer 的 SQL 选项卡显示 SQL 语句的 ID 和类型(INSERT、DELETE、SET ISOLATION、SET LOCK MODE 等)。只有使用配置参数 SQLTRACE 启用 SQL 跟踪,才能看到这些 SQL 语句。
图 54. Session Explorer SQL 选项卡

Locks 选项卡提供与一个会话相关联的所有锁的相关信息。这些锁可以是表级锁、行级锁、索引锁等等。对于每个锁,提供的信息包括应用此锁的数据库名:表名/索引名、锁的类型(共享、排他、更新、字节、意向共享、意向排他、意向共享排他等等)、持有此锁的持续时间、锁定的行的 ID 和锁的等待者(如果有的话)。Index # 1 表示此锁在索引上。Key Item Locked 是锁定的索引项。
图 55. Session Explorer Locks 选项卡

Session Explorer 的 Threads 选项卡提供属于所选会话的线程的相关信息。一个用户会话有一个相关联的主线程;根据处理客户机请求的方式不同,可能有许多其他线程。在 Threads 选项卡上,用户可以看到当前线程、它们的 ID、优先级、每个线程在虚拟处理器上运行的次数 (NUM_SCHEDULED)、每个线程在虚拟处理器上运行花费的时间 (TOTAL_TIME)、每个线程获得的时间片段 (TIME_SLICE)、最近运行此线程的虚拟处理器的 ID (VPID)、每个线程的等待原因 (WAIT_REASON) 和 IO 等待。
图 56. Session Explorer Threads 选项卡

Memory 选项卡提供关于一个会话的内存使用量和可用性的信息。Name 列列出内存池的名称。NAME 列中的数字是会话 ID,因为会话的内存池是按会话 ID 跟踪的。USED 和 FREE 列列出已用列表中的内存总量和空闲列表中的内存总量。这两列使用 format_units 函数进行格式化。
图 57. Session Explorer Memory 选项卡

Network 选项卡提供关于一个会话的网络使用情况的详细信息。客户机协议名显示为 THREAD_NAME。还可以看到会话的起始时间 (SESSION_START)、会话的持续时间 (CONNECT_DURATION)、最近从网络读的时间 (LAST_READ) 和最近向网络写的时间 (LAST_WRITE)。在 AVERAGE_RECV、AVERAGE_SEND、RECEIVED_DATA 和 SEND_DATA 列中显示通过网络发送和接收数据的情况。RECEIVED_DATA 是发送到此服务器的字节数,SEND_DATA 是服务器发送给客户机的字节数。网络读和网络写数量用来计算显示的平均值。
图 58. Session Explorer Network 选项卡

可以通过 Environment 选项卡全面了解服务器和会话环境。Environment 选项卡列出服务器的启动环境设置和会话(即客户机)级的环境变量。
图 59. Session Explorer Environment 选项卡

Session Explorer 的 Profile 选项卡提供会话的汇总数据。与锁相关的信息包括:Locks 是当前持有的锁数量,Lock Requests 是请求的锁数量,Lock Waits 是等待的锁数量,Dead Locks 是探测到的死锁数量,Lock Time Outs 是超时的锁请求数量。与日志相关的信息包括:Log Records 是此会话创建的日志记录数量,Log Space 是当前使用的日志空间,Max Log Space 是曾经使用的最大日志空间。
图 60. Session Explorer Profile 选项卡

处理的行数(isam 读,Rows Processed)、插入的行数(isam 写,Rows Inserted)、更新的行数 (Rows Updated) 和删除的行数等提供记录级统计数据。Commits、Rollbacks 和 LongTXs 提供与事务相关的数据,分别表示提交数量、回滚数量和长事务数量。Sequential Scans 是执行的连续扫描数量。与排序相关的信息包括:Sorts 是执行的排序操作总数,Disk Sorts 是在磁盘上执行的排序数量,Memory Sorts 是在内存中执行的排序数量(这是总排序数和磁盘排序数的差值)。Largest Sort 是磁盘上使用的最大排序空间。关于缓冲区的统计数据有两个 Buffer Reads 和 Buffer Writes,它们分别表示对缓冲区的读写数量。
Foreground (FG) reads 和 FG writes 是在会话期间发生的一般读写操作。总之,Profile 选项卡可以提供关于会话各个方面的有用信息。
SQL Toolbox
SQL Toolbox 分为三个部分:
- Databases
- Schema browser
- SQL editor
Databases
Databases 链接打开 Databases 选项卡,其中的饼图不仅显示每个数据库占用的空间的百分比,还显示数据库的列表。如果把鼠标指针放在饼图上面,指向每个数据库部分,就会看到对应的百分数。单击图右上角的 Data 选项卡,就会看到统计数据。
图 61. 关于各个数据库的信息

注意,图下面的 Databases 表在 Names 列下列出给定的 IDS 服务器上的所有数据库。Collation 列是数据库的 DB_LOCALE 值。Create Date 列是创建数据库的日期,采用 YYYY-MM-DD 格式。Logging 列显示在创建数据库时设置的日志模式(buffered、unbuffered、ANSI compliant 和 not logged)。
Schema Browser
要想进一步研究每个数据库的内容,单击 Databases 表中列出的数据库。这会激活 'Schema Browser'。在默认情况下,显示 Tables 选项卡的内容。Tables 选项卡是 Schema Browser 的第一个选项卡,后面还有 SPL/UDR 选项卡。
Tables 选项卡列出所选数据库中的所有表。用户可以在任何时候使用屏幕右上角的选项选择数据库或 IDS 服务器。Server 下拉菜单列出为所选的组定义的服务器,Database 下拉菜单列出此 IDS 服务器中的数据库。
是否需要同时列出数据库编目表?这由您决定。要想同时列出数据库编目表,只需选中 Include Database Catalog Tables 框,然后选择 Submit。如果执行此步骤,就会看到数据库编目表;如果不这么做,列表就不包含数据库编目表。
图 62 显示 Tables 选项卡上的表:
图 62. Schema Browser 的 Tables 选项卡

下表说明 Tables 选项卡上字段的含义。
表 12. Tables 选项卡中的字段
字段 | 说明 |
---|---|
Browse | 这个图标会打开 'Table Browse' 选项卡 |
Name | 表、视图或同义词的名称 |
Create date | 创建表的日期 |
Table id | 系统分配的顺序标识符 |
Partnum | 物理位置编码 |
Rowsize | 行大小 |
NRows | 表中的行数 |
NIndexes | 表中的索引数 |
Locklevel | 表的锁模式: B = Page P = Page R = Row |
Fextsize | 初始区段的大小(以 KB 为单位) |
Nextsize | 所有后续区段的大小(以 KB 为单位) |
Pages Used | 使用的页面数量 |
View |
在表 12 中列出的字段中,Browse、Name 和 Partnum 列可以提供更多信息。单击 Browse 列中的图标,就会在 SPL/UDR 选项卡旁边打开 'Table Browse' 选项卡。这个选项卡列出查询 ' select * from tabname;' 的输出,其中的 tabname 是与图标相关联的表的名称。
选择 Name 列下面列出的一个表就会打开 Column Info 选项卡,其中描述表列的属性。提供的信息包括列名、列类型、列长度和扩展类型。表的 Column Info 选项卡如下所示。
图 63. 表的 Column Info 选项卡

选择 Partnum 列中的值就会打开一个窗口,其中显示相应的分区信息,如下所示。
图 64. 分区信息

SQL Editor
在 SQL Editor 中,可以输入或粘贴 SQL 语句,然后执行它。要想执行 SQL 语句,需要单击 Run Query。可以通过单击 Save query to file 保存 SQL Editor 中的查询。在把查询保存到文件时,OAT 会自动生成一个文件名,此文件名的末尾是一个数字,用户每次把查询保存到文件时会递增此数字。
图 65. SQL Editor

注意在图 65 中,在 SQL Editor 窗口中输入了两个 SQL 语句,语句之间以分号分隔。在使用 'Run Query' 按钮执行以上查询时,结果显示在单独的 Results 选项卡中,见图 66。
图 66. SQL 结果

除了 Results 选项卡中显示的结果之外,还会看到与图 67 相似的消息。
图 67. SQL Editor 导入限制

此消息指出只执行第一个分号前面的查询,这个分号后面的所有查询都被删除。
限制产生的输出:可以使用 SQL Editor 提供的以下选项限制执行查询产生的输出。
表 13. 限制查询产生的输出
选项 | 说明 |
---|---|
Text/Clob column option | 选择对 Text/Clob 输出的处理方式;选择以下选项之一限制查询输出: Show All Show 255 Chars Show in File Show Size only Ignore Column |
Byte/Blob column option | 选择对 Byte/Blob 输出的处理方式;选择以下选项之一限制查询输出: Ignore Column Show in File Show Size Only Show As Image |
Number of rows | 对于包含 order by、group by、子查询、union 和聚合的查询,可以通过在此文本框中设置值来限制获取的行数。用户也可以使用 'Reset' 按钮复位此值。 |
导入查询:还可以导入现有文件中的查询。为此,只需单击 Browse,找到文件,然后单击 Import。文件中的查询会出现在 SQL Editor 窗口中。注意,就像在解释 Run Query 时一样,在导入时只把第一个分号前面的查询导入到 SQL Editor,这个分号后面的所有查询都被删除。然后,可以执行嵌入的查询,结果会显示在 Results 选项卡中。
结束语
OpenAdmin Tool 是一种高效的 IDS 数据库管理前端工具。在本文中,我们介绍了许多 OAT 组件并描述了如何使用它们。阅读本文之后,您应该能够用此工具连接 IDS 实例、管理连接组、执行基本操作、执行各种管理功能、生成相关报告、根据需要显示足够的信息和执行查询。在本系列的后续文章中,将学习如何从 Informix Server Administrator 迁移到 OAT,以及如何使用 OAT 分析服务器性能。(责任编辑:A6)