监控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