IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

DB2 Magazine:IDS 11 数据库监控

全新的数据库监控选项展现 Informix 的内部工作

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


Lester Knutsen (lester@advancedatatools.com), 总裁, Advanced DataTools Corp.

2008 年 1 月 18 日

Sysmaster 数据库是一种伪数据库,是 Informix Dynamic Server (IDS) 安装的一部分,表现了 IDS 服务器的共享内存结构。这是一种监控服务器状态和性能的出色工具。我已经做过一些有关此内容的演讲,也撰写过许多文章。

IDS 11(过去的代码名称是“Cheetah”)为 Sysmaster 数据库添加了众多全新特性。此专栏和未来的文章将提供一些示例,说明您可以如何利用全新的 Sysmaster 监控表。如果您参加本月举办的 IBM Information On Demand 研讨会,我还会在演讲中讨论相关主题。

全新的 Sysmaster 数据库表让我感到振奋的特性包括:

  • Syscheckpoint,跟踪服务器重启之后的最后一组检查点。
  • Sysenv,显示服务器启动时生效的环境变量。
  • Sysenvses,显示影响用户会话的环境变量。
  • Sysmgminfo,显示 Parallel Database Query (PDQ) 信息。
  • Sysnetclienttype、Sysnetglobal 和 Sysnetworkio 显示网络状态。
  • Sysonlinelog,跟踪联机日志记录。
  • Syssqltrace、Syssqltrace_info、Syssqltrace_iter,显示 SQL 配置文件和跟踪信息。
  • Systhreads,跟踪线程及其等待状态。

新的 Sysadmin 数据库是 IDS 11 Automatic Monitoring and Scheduler 系统的一部分,跟踪任务和进度。下面介绍其中的五种新特性;在后面的文章中,我将解释 command_history 表和其他主题。

Syscheckpoint

该表监控并在内存中存储 IDS 服务器启动以后的最后 20 个检查点。表 1 列举了该表中的字段。Syscheckpoint 并非物理表,而是共享内存结构的一个视图。


表 1. Syscheckpoint表的定义
Syscheckpoint表的定义

IDS 11 中的检查点发生了彻底的变化,这在专栏的上一期文章中已经解释过。检查点的目标在于保证内存缓冲区与磁盘结构保持同步。如果没有检查点,就要冒服务器崩溃的风险。在过去的版本中,有两种类型的检查点。标准检查点阻塞所有用户写入操作,直至所有缓冲区都被写入磁盘,所有内存结构都得到同步。版本 9.x 引入了模糊检查点,仅在记录了一份脏缓冲区列表时停止用户活动,当脏缓冲区在后台写入磁盘之后,用户活动即可继续。IDS 11 引入了具有专利的全新检查点算法,取代了过去那两种类型的检查点。大多数检查点不会在缓冲区进入磁盘时阻止用户写入,新的检查点也比模糊检查点更加可靠。

Syscheckpoint 表允许您监控检查点。可使用这些数据来回答的问题包括:

l 是什么导致检查点被调用?是否物理记录过小?还是逻辑日志(或用户)发出 onmode -c 命令来强制使用检查点?

  • 检查点占用了多少时间?
  • 有多少执行更新的用户(如果有)被阻塞?他们被怎样阻塞?
  • 有多少缓冲区因检查点的原因进入磁盘?




回页首


Sysenv

许多环境变量都会影响 Informix 服务器的操作和服务器性能特征。一旦 IDS 服务器开始运行,Sysmaster 表就为您提供了一种监控影响服务器的环境变量的方法。表 2 展示了该表的定义。IDS 服务器基本不需要关闭或重启。IDS 服务器运行几个月或几年之后,在服务器启动时发挥作用的环境变量很可能被忘记。该表将展示服务器启动时发挥作用的内容。可以将该表配合 Sysenvses 表使用,协助调试 IDS 服务器和客户机环境变量不同时出现的问题。


表 2. Sysenv表的定义
Sysenv表的定义




回页首


Sysenvses

各 IDS 用户会话都可以拥有不同的环境变量。调试用户会话时,查看哪些变量对正在运行的会话有影响是很有帮助的。Sysenvses 表为您提供了监控用户会话变量的方法。表 3 展示了该表的定义。


表 3. Sysenvses表的定义
Sysenvses表的定义

在尝试调试可能由客户机和服务器环境变量不同所导致的问题时,Sysenv 和 Sysenvses 非常有用。我曾经帮助一位客户调试过一个负载问题,当时日期字段中出现了一个错误;显然,IDS 服务器和客户机上对于环境变量 DBDATE 的设置不同。载入该客户机的数据时,日期对于服务器来说是不正确的格式,从而引起错误。这两个表能使问题的判断和解决更加轻松。同样的概念也适用于解决客户机和服务器上对 DB_LOCALE 变量设置不同时引起的问题。

还可使用此信息在调试性能问题时确定用户的环境。这些表提供了关于环境设置的信息,例如 PDQ_PRIORITY、PSORT_NPROCS 或 PSORT_DBTEMP,这些都可能对用户的性能产生影响。





回页首


Sysonlinelog

ONCONFIG 文件中的配置参数之一就是 MSGPATH,它定义您的联机日志文件的位置。MSGPATH 是服务器写出启动、处理或错误消息的位置。sysonlinelog 表是此类文件的虚拟视图,使您能够使用 SQL 语句来查看和监控联机日志文件。表 4 展示了这种包含三个字段的简单的表的结构。惟一重要的字段是消息文本,这也是联机日志中出现的文本行。


表 4. Sysonlinelog 表的定义
Sysonlinelog 表的定义




回页首


Sysmgminfo

我最喜爱的新 Sysmaster 表就是 Sysmgminfo。该表展示关于 IDS 服务器上运行的 Parallel Data Query (PDQ) 会话的信息。其部分信息与执行 onstat -g mgm 命令时所显示的信息类似。该表使您能够轻松捕捉和查看 PDQ 设置、活动会话数目、等待资源的会话数目,以及自服务器启动以来的会话和资源总数及平均数(参见表 5)。该表仅包含一条记录,展示内存中的当前设置。


表 5. Sysmgminfo 表的定义
Sysonlinelog 表的定义

例如,我在我的笔记本电脑上运行 SQL 语句 select * from sysmgminfo,且仅有一条 PDQ 查询运行;表 6 展示了输出结果。我在结果旁边的列中添加了一些注释,说明结果的含义。


表 6. 检索 sysmgminfo 表的结果输出
检索sysmgminfo 表的结果输出

有必要关注的重要字段是 ready 和 cnt_ready。这些字段告诉您有多少 PDQ 查询正在等待运行所需的资源,以及已经等待过运行所需资源的 PDQ 总数。在我支持过的某个大型数据仓库系统上,用户有时会抱怨查询耗费时间过长。但在查看系统时,查询实际上并未运行,而是在等待资源时被阻塞。该字段使您能够轻松跟踪被阻塞的随时可运行查询的信息。





回页首


监控和调优提示

获得 Informix IDS 服务器及其性能的更好信息是监控和调优的关键所在。IDS 11 中全新的Sysmaster 表为您提供了大量必要信息。在 dbaccess 或 Server Studio 中的这些新表上尝试使用 select 语句,了解其可提供信息的类型。





回页首


参考资料



关于作者

Lester Knutsen 是 Advanced DataTools Corp. 的总裁,这家公司是 IBM 的 Informix 咨询和培训合作伙伴,专门从事数据仓库开发、数据库设计、性能调优以及 Informix 培训和支持。他还是 Washington D.C. Area Informix User Group 的主席、International Informix Users Group 的创始人之一和 IBM Gold Consultant。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款