分类: DB2/Informix
2008-05-31 16:45:44
sysmaster 数据库
sysmaster 数据库有时候称为系统监视接口(system monitoring interface,SMI),它是由真实表和伪表组成的特殊数据库,可以用来收集 IDS 系统的许多组件的状态信息。通过查询这些表,可以识别系统瓶颈、判断资源使用情况、跟踪会话或数据库服务器活动等等。
在对磁盘空间进行初始化时,数据库服务器创建 sysmaster 数据库。数据库服务器使用非缓冲的日志创建这个数据库。不能通过一般的数据库删除命令删除这个数据库或其中的任何表。要想重新构建 sysmaster 数据库,应该与技术支持人员联系,通过 $INFORMiXDIR/etc/buildsmi 实用程序进行这一操作。
首先看看 sysmaster 数据库中的 syslocks 表,了解如何使用它解决锁的问题。
syslocks 表对锁进行跟踪,它与 onstat -k
的输出相似。
清单 26 是 onstat -k
输出中的一行:
> Locks address wtlist owner lklist type tblsnum rowid key#/bsiz 10a166f68 0 10afa7008 10a166ce8 HDR+X 10015f 100 0 |
这里有许多数据,但是要费一番工夫才能获得有意义的信息。
通过执行清单 27 中的命令,看看 sysmaster 中的锁信息。(注意,这里省略了 “where” 子句。)
Select * from syslocks dbsname stores_demo tabname customer rowidlk 256 keynum 0 type X owner 28 waiter |
首先注意到的是,这里没有显示神秘的编号,而是显示实际的数据库名和表名。这对我们更有意义。还请注意,这里没有像 onstat -k
的输出那样显示所有者的地址,而是给出了会话 id。所以可以运行 onstat-g ses, -g sql, -g stm
,查明这个用户做了什么导致了这个资源被锁定。
注意,查询 sysmaster 数据库的结果常常显示为十进制格式,而 onstat
的输出可能采用十六进制格式。如果同时使用这两种方法追踪问题,这一差异可能会导致混乱。
sysmaster 数据库中还有许多伪表,它们往往具有直观的名称,与其跟踪的资源一致。
表 | 对应的 onstat 命令 |
---|---|
sysconfig | onstat -c |
syschunks | onstat -d(块部分) |
sysdbspaces | onstat -d(dbspace 部分) |
syslogs | onstat -l(逻辑日志部分) |
sysprofile | onstat -p |
sysptntab | onstat -t |
sysusers | onstat -u |