Informix的监控和管理命令(1)

发表于:2007-06-13来源:作者:点击数: 标签:
监控ONLINE系统后动情况的工具主要有以下三类:系统监控接口(S MI )、tbstat和tbcheck。 一、 系统监控接口(SMI) 我们主要通过 SQL 命令操作online的内部 数据库 sysmaster中的内部表/结构,来获取有关的维护信息。Sysmaster是在online初次初始化时,系

监控ONLINE系统后动情况的工具主要有以下三类: 系统监控接口(SMI)、tbstat和tbcheck。

一、 系统监控接口(SMI)

我们主要通过SQL命令操作online的内部数据库sysmaster中的内部表/结构,来获取有关的维护信息。Sysmaster是在online初次初始化时,系统自动创建的。它实际主要存储了一些数据结构,而不是真正的表。使用SMI有如下限制:

 不能对SMI中的表加锁或使用隔离级别。

 不允许使用insert,delete,update等语句(只读)

 不能使用dbschema,dbexport等命令

 使用select rowid语句将会产生不可预料的结果

主要的SMI表有:

sysdatabases:online中的数据库信息

systabnames:某数据库中所有表的信息

syslogs:逻辑日志信息

sysdbspaces:数据库信息

syschunks,syslocks等

例1:显示处于脱机(offline)状态的chunk的序号和所在数据库空间

Select chknum,dbsnum from syschunks where is_offline=1 or misline=!

例二:显示满chunk的信息

Select chknum,dbsnum from syschunks where nfree=0

二、 TBSTAT

 列出当前时刻的信息(实际也是读取SMI表)

 不需要磁盘I/O

 不需要锁等系统资源,因此不会影响系统性能

用法: tbstat [-abcdklmpstuzBDFPRX] [-r seconds] [-o file] [infile]

-a print all info (options: bcdklmpstu)

-b print buffers(缓冲区)

-c print configuration file(配置文件)

-d print dbspaces and chunks(dbspace和chunk)

-k print locks(锁)

-l print logging(日志)

-m print message log(消息日志)

-p print profile(profile文件)

-s print latches(门闸)

-t print tblspaces(表空间)

-u print users(用户)

-z zero profile counts

-B print all buffers

-D print dbspaces and detailed chunk stats

-F print page flushers(页刷新进程)

-P print profile, including BIGreads

-R print LRU queues(LRU队列)

-X print entire list of sharers and waiters for buffers

-r repeat options every n seconds (default: 5)

-o put shared memory into specified file (default: tbstat.out)

infile use infile to obtain shared memory information

三、 几个常用的tbstat选项

tbstat -m :显示消息日志的最后20行. 消息日志的内容包括:

1)、检查点信息

2)、读写错误信息

3)、ONLINE模式转换信息

4)、长事务

5)、日志文件满(LOG FILE FULL )

若想显示完整信息,可直接编译消息日志文件.

Tbstat -d:磁盘空间的使用情况,包括DBSPACE和CHUNK的信息

例:RSAM Version 5.03.UC1  -- On-Line -- Up 09:45:41 -- 816 Kbytes

Dbspaces

address number  flagsfchunk  nchunks flags ownername

8040a244 1111 N informix rootdbs

1 active, 8 total

Chunks

address chk/dbs offset  size free bpages  flags pathname

80409d84 1  1  0  300000  231871PO- /dev/rdata

1 active, 8 total

其中的FREE项,显示了该CHUNK的空闲空间大小(Kbytes).

 Tbstat -l :日志文件情况

Physical Logging

Buffer bufused bufsize numpages numwrits pages/io

 P-2 016  000.00

 phybegin physize phypos  phyused %used

 101782  15000960 00.00

Logical Logging

Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io

 L-2 016  1111.01.0

address number  flagsuniqid  beginsize used%used

8042de94 1U---C-L 110521a  7500 630 8.40

8042deb0 2F------ 0106f66  75000 0.00

8042declearcase/" target="_blank" >cc 3F------ 0108cb2  75000 0.00

8042dee8 4F------ 010a9fe  75000 0.00

8042df04 5F------ 010c74a  75000 0.00

8042df20 6F------ 010e496  75000 0.00

其中:%USED: 使用百分比

FLAGS字段的含义:

F: 空闲 B:已备份 C: 正在接收事物记录

U: 正在使用 A: 新增日志 L: 包含最后一个检查点

 Tbstat - u:ONLINE的用户情况

Users

address flags  pid user tty waittout locks nreads  nwrites

804019f4 ------D 329 root console 0  00 179 2

80401a64 ------D 0  root console 0  00 00

80401ad4 ------F 330 root 0  00 00

3 active, 20 total

Transactions

address flags user locks log begin isolation retrys coordinator

804022b4 A---- 804019f4 0 0 NOTRANS  0

804028d8 A---- 80401a64 0 0 NOTRANS  0

2 active, 20 total

其中:flages字段的含义:

第一列:(S:等待mutex;Y:等待条件;L:等待锁;B:等待缓冲区;

  C:等待检查点;X:长事务清理;G:等待长缓冲写;T:等待事务)

第二列:(*:事务执行时,发生I/O错误)

第三列:(A:正在备份;B:操作已被记录在日志中;P:分布处理已准备好;  

C:正在提交;R:正在回滚)

第四列:(P:会话的主线索)

第五列:(R:在read rsam 调用中;X:进程在关键分区)

第七列:(M:特殊监控;D:特殊线索;C:清理线索;F:特殊清页进程;

B:特殊B+树清页线索)

Tbstat -k :用户持有锁的情况

锁按照粒度分为6种: 库锁、表锁、页锁、行锁、字节锁、键锁

字节锁:更新包含有VARCHAR类型的行时,加在该行上的锁。

键锁:用于索引树上的锁。一般在相应字节上加删除标志。

这几种锁的识别如下:

  TYPETBLSNUM  ROWID SIZE  

库锁  HDR+X  1000002 205 0  

表锁 100000e 00

页锁 100  0

行锁 101  

字节锁HDR+B 909

键锁 很大的16进制数

锁的生命期:1、不使用事务时,操作完成即会释放对应的锁;

共2页: 1 [2] 下一页

原文转自:http://www.ltesting.net

...