· onstat -g sql 查看运行的sql语句
对后台数据库的操作可以通过onstat -g sql 查看,如果详细了解sql语句,
则需要在其后加上id代码值即可。
如下:
$ onstat -g sql
IBM Informix Dynamic Server Version 9.40.FC6 -- On-Line -- Up 00:57:15 -- 2339572 Kbytes
Sess SQL Current Iso Lock SQL ISAM F.E.
Id Stmt type Database Lvl Mode ERR ERR Vers Explain
516 - - - Wait 300 0 0 9.03 Off
511 - clannt CR Not Wait 0 0 9.03 Off
497 - clannt CR Not Wait 0 0 9.03 Off
480 - clannt CR Not Wait 0 0 9.03 Off
232 - sysmaster DR Not Wait 0 0 9.03 Off
217 - clannt CR Not Wait 0 0 9.03 Off
215 - clannt CR Not Wait 0 0 9.03 Off
214 - clannt CR Not Wait 0 0 9.03 Off
213 - clannt CR Not Wait 0 0 9.03 Off
212 - clannt CR Not Wait 0 0 9.03 Off
211 - clannt CR Not Wait 0 0 9.03 Off
210 - clannt CR Wait 60 0 0 9.03 Off
209 - clannt CR Wait 60 0 0 9.03 Off
208 - clannt CR Wait 60 0 0 9.03 Off
207 - clannt CR Wait 60 0 0 9.03 Off
· ONstat -m :显示消息日志的最后20行.
消息日志的内容包括:
1)、检查点信息
2)、读写错误信息
3)、ONLINE模式转换信息
4)、长事务
5)、日志文件满(LOG FILE FULL )
若想显示完整信息,可直接编译消息日志文件.
· ONstat -d:磁盘空间的使用情况,包括DBSPACE和CHUNK的信息
Dbspaces
address number flags fchunk nchunks flags owner name
c57ef158 1 1 1 1 N informix rootdbs
c57efd18 2 2001 2 1 N T informix tmpdbs
c57efdd8 3 1 3 1 N informix llogdbs
c57efe98 4 1 4 1 N informix plogdbs
c57eff58 5 1 5 8 N informix datadbs1
5 active, 2047 maximum
Chunks
address chk/dbs offset size free bpages flags pathname
c57ef218 1 1 0 150000 148715 PO- /dev/vg01/lvol1
c57ef378 2 2 0 250000 249881 PO- /dev/vg01/lvol2
c57ef458 3 3 0 125000 197 PO- /dev/vg01/lvol3
c57ef538 4 4 0 125000 2447 PO- /dev/vg01/lvol4
其中的FREE项,显示了该CHUNK的空闲空间大小(Kbytes).
· ONstat -l :日志文件情况
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 42 256 123414 1068 115.56
phybegin physize phypos phyused %used
400035 122500 110222 42 0.03
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-2 0 64 6150454 194478 8434 31.6 23.1
Subsystem numrecs Log Space used
OLDRSAM 6150454 385076912
address number flags uniqid begin size used %used
c128d020 1 U-B---- 6776 300035 12500 12500 100.00
c128d03c 2 U-B---- 6777 303109 12500 12500 100.00
c128d058 3 U-B---- 6778 3061dd 12500 12500 100.00
c128d074 4 U-B---- 6779 3092b1 12500 12500 100.00
c128d090 5 U-B---- 6780 30c385 12500 12500 100.00
c128d0ac 6 U---C-L 6781 30f459 12500 6768 54.14
c128d0c8 7 U-B---- 6772 31252d 12500 12500 100.00
c128d0e4 8 U-B---- 6773 315601 12500 12500 100.00
c128d100 9 U-B---- 6774 3186d5 12500 12500 100.00
c128d11c 10 U-B---- 6775 31b7a9 12250 12250 100.00
其中:%USED: 使用百分比
FLAGS字段的含义:
F: 空闲 B:已备份 C: 正在接收事物记录
U: 正在使用 A: 新增日志 L: 包含最后一个检查点
· ONstat - u:ONLINE的用户情况
Userthreads
address flags sessid user tty wait tout locks nreads nwrites
c57f1018 ---P--D 1 informix - 0 0 0 757 36481
c57f1504 ---P--F 0 informix - 0 0 0 0 377273
c57f19f0 ---P--- 5 informix - 0 0 0 0 6742
c57f1edc ---P--B 6 informix - 0 0 0 29 257
其中: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+树清页线索)
· ONstat -k :用户持有锁的情况
锁按照粒度分为6种: 库锁、表锁、页锁、行锁、字节锁、键锁
字节锁:更新包含有VARCHAR类型的行时,加在该行上的锁。
键锁:用于索引树上的锁。一般在相应字节上加删除标志。
这几种锁的识别如下:
TYPE ONLSNUM ROWID SIZE
库锁 HDR+X 1000002 205 0
表锁 100000e 0 0
页锁 100 0
行锁 101
字节锁 HDR+B 909
键锁 很大的16进制数
锁的生命期:1、不使用事务时,操作完成即会释放对应的锁;
2、 若使用事务,锁将伴随整个事务。(即随这COMMIT WORK或ROLLBACK WORK而释放)
(**锁的几种类型:共享锁(SHARE),排它锁(EXCLUSIVE),可升级锁**)
· ONstat -p : 显示系统资源状况(是否充分)
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
2112876 5085802 697502689 99.70 469082 1154138 9885314 95.25
isamtot open start read write rewrite delete commit rollbk
269117818 4202839 19282008 199402561 3286406 981022 270765 261330 20733
gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
0 0 0 0 0 0 0
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 66354.52 3954.04 341 682
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
721270 153 794000443 0 0 246 72878 784815
ixda-RA idx-RA da-RA RA-pgsused lchwaits
458268 5293 1041489 1480397 1904
OVONLS:指示ONLSPACE值不够 ,ONLSPACES值应增大
OVLOCK:锁溢出 LOCKS应增大
OVUSER:用户表资源不够 USERS
OVBUF:缓冲区资源不够 BUFFERS
以上数字若持续增加,表明相应参数值应调整
DEADLOCKS:检测到的死锁数
DLTOUTS:网络超时死锁
DEADLOCK_TIMEOUT:一般为60秒,若增大此数字,可以减少死锁数,但会增加响应时间,用户看来性能更差;若减少此数字,死锁数可能会增大,但会减少响应时间,在用户看来,响应时间变快了。