Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103580338
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: DB2/Informix

2008-05-31 16:44:04

使用用于故障诊断的 IDS 数据库和工具

可以使用各种工具和数据库研究引擎和共享内存结构的状态。本教程讨论以下数据库和工具:

  • onstat 实用程序
  • sysmaster 数据库
  • sysadmin 数据库

故障诊断是一个反复的过程。要进行故障诊断,就需要了解检查系统的过程。

要想使用这里介绍的各种方法,就需要了解哪些行为是正常的,哪些是异常的。一旦发现了异常情况,就可以使用这些工具进一步探索问题的原因。

本教程将介绍解决以下问题的一般技术:

  • 内存问题
  • 磁盘空间问题
  • 网络问题
  • 缓冲池问题
  • 锁和并发

本教程并不讨论跟踪。

在对 IDS 这样的应用程序进行故障诊断时,其中一个主要问题是要了解从哪里下手。通常,用一个句子描述问题,把问题条理化,这种做法非常有用。条理越接近 IDS 条件,问题解决就越容易。

例如,DBA 可能遇到的一个问题是,一个客户机应用程序似乎被锁定了。

所以,为了从 IDS 的角度考察这个问题,可以这样问:“这个应用程序正在等待什么?”

通过对体系结构进行检查,发现这个应用程序到引擎的入口点是 sqlexec。所以,要问的下一个问题是 “sqlexec 线程是哪一个?”

然后可以执行 onstat -u 来查看所有用户线程,然后就可以与应用程序联系起来(使用 tty 列或用户名)。

现在,通过研究 onstat -u 的标志,可以发现需要的东西。假设标志的第一列是 B。这说明正在等待缓冲区。下面要问的问题是 “哪个缓冲区?谁拥有它?”

执行 onstat -b 并寻找 onstat -u 输出的最后一列中的地址,就会发现拥有这个缓冲区的用户线程。

然后,再通过 onstat -u 的输出了解这个用户线程的会话。

然后,可以运行 onstat -g ses sesid,了解这个用户线程正在做什么。

还可以通过查询 sysmaster 数据库来收集这一信息。sysmaster 数据库的好处是,可以保存查询供以后使用。所以,在找到问题的原因之后,以后可以用 SQL 重新执行这种方法,而不需要输入命令。这只是个人喜好问题。

在本教程中,将用示例说明如何应用这些技术来查找 IDS 问题的原因。

阅读(593) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~