GBase 8t有没有进行健康检查的工具?

GBase 8t有没有进行健康检查的工具?

参与15

7同行回答

junxijunxi软件开发工程师nttdata
Most CPU SQL     检查点      捕获消耗CPU最多的SQL语句       方法      select  first 5 sqx_estcost,sqx_estrows,sqx_sqlstatement&n...显示全部

Most CPU SQL

        
  

检查点

  
  

捕获消耗CPU最多的SQL语句

  
  

方法

  
  

select  first 5 sqx_estcost,sqx_estrows,sqx_sqlstatement

  

from  sysmaster:syssqexplain

  

order  by sqx_estcost desc

  

Most Buffread Tables

        
  

检查点

  
  

捕获消耗最多buffer read 的表

  
  

方法

  
  

Dbaccess  sysmaster

  

select  tabname,sum(pf_bfcread) as buffreads

  

from  sysactptnhdr,systabnames

  

Where  pf_bfcread > 0

  

and  systabnames.partnum = sysactptnhdr.partnum

  

and  dbsname = "dbname"

  

group  by tabname

  

order  by buffreads desc;

  

Buffer Spin Contention

        
  

检查点

  
  

找到buffer spin争用的情况

  
  

方法

  
  

onstat  -g spi|sort -nr |head

  

Sort on Disk

        
  

检查点

  
  

是否有过多的磁盘排序

  
  

方法

  
  

A.查看session排序的情况

  

dbaccess  sysmaster

  

select  sid,total_sorts,dsksorts,max_sortdiskspace

  

from  syssesprof

  

order  by 3 desc;

  

B.查看整个排序情况是否有磁盘排序

  

dbaccess  sysmaster

  

Select  *

  

from  sysprofile

  

where  name matches "*sort*"

   

order by 3 desc;

  
  

SELECT  trim(n.dbsname) type,

  

trim(n.owner)  users,

  

trim(n.tabname)  table,

  

trim(dbinfo('DBSPACE', i.ti_partnum)) dbspace,

  

round(i.ti_nptotal*4,0)  kb -- 4 for AIX, 2 for HP-UX

  

FROM  sysmaster:systabnames n, sysmaster:systabinfo i

  

WHERE  (sysmaster:bitval(i.ti_flags, 32) = 1

  

OR  sysmaster:bitval(i.ti_flags, 64) = 1

  

OR  sysmaster:bitval(i.ti_flags, 128) = 1)

  

AND  i.ti_partnum = n.partnum

  

;

  

  

操作系统参数

        
  

检查点

  
  

检查OS参数是否正确

  
  

方法

  
  

SEMMNS NFILES

  

总结

正确配置数据库各项参数,及时运行update statistics, 经常查看online.log发现重要错误信息。监控数据库各项性能运行情况,为数据库优化提供基础参考信息。

通过健康度检查,可以帮助企业检测系统应用情况和知识管理方法论的掌握情况。基于评估结论,企业可以识别存在的问题和隐患

收起
软件开发 · 2016-06-07
浏览1229
junxijunxi软件开发工程师nttdata
Large tables     检查点      数据量特别大的表,考虑采用fragment       方法      Select  tabname,nrows,  (npused*pagesize)...显示全部

Large tables

        
  

检查点

  
  

数据量特别大的表,考虑采用fragment

  
  

方法

  
  

Select  tabname,nrows,

  

(npused*pagesize)/1024/1024  used_space_m

  

from  systables

  

where  nrows> 1000000

   

order by 2 desc;

  
  

select  dbsname,  dbinfo('UTC_TO_DATETIME',ti_created)  ,  

  

tabname,   

  

ti_nextns,  

  

ti_nptotal,

  

ti_npused,  

  

ti_npdata,  

  

ti_nrows,   

  

ti_rowsize  

  

from  systabnames, systabinfo

  

where  partnum = ti_partnum

  

and  tabname not like 'sys%'

  

and  dbsname not like 'sys%'

  

And  ti_nrows > 1000000;

  

Extents over tables

        
  

检查点

  
  

超过50 extents的表

  
  

方法

  
  

select  t.tabname tabname, count(*) extent_num, max(t.nrows) rows

  

from  sysmaster:sysextents e, systables t

  

where  e.tabname=t.tabname

  

and  t.tabname not like "sys%"

  

group  by 1

  

having  count(*) > 50

  

order  by 2 desc;

  

Level over indexes

        
  

检查点

  
  

索引层超过4层的表

  
  

方法

  
  

select  t.tabname,i.idxname, i.levels

  

from  sysindexes i,systables t

  

where  i.tabid = t.tabid

  

and  i.levels>=4

  

order  by 3 desc

  

Sequence scan tables

        
  

检查点

  
  

顺序扫描的表及扫描次数

  
  

方法

  
  

  select p.dbsname , t.tabname ,   

  

  sum(p.seqscans) seqscans  , max(t.nrows)  nrows

  

  from sysmaster:sysptprof p , systables t

  

  where p.tabname = t.tabname   

  

  and t.nrows > 100  and p.seqscans>0

  

  and p.dbsname not like "sys%" and  p.tabname not like "sys%"

  

  group by 1,2  

   

  order by 3  desc  

  
  

select  first 10 p.tabname::char(20) tabname,t.nrows,p.seqscans

  

from  sysmaster:sysptprof p, utilitydb:systables t

  

where  p.tabname=t.tabname and p.dbsname='utilitydb'

  

and  t.tabid >99 and p.seqscans > 0

  

order  by p.seqscans desc;

  

DBSpace I/O

        
  

检查点

  
  

Dbspace I/O 情况 衡量磁盘读和磁盘写

  
  

方法

  
  

select  d.name dbspace, fname[1,125] chunk_name,

  

sum(pagesread)  diskreads,

  

sum(pageswritten)  diskwrites,

  

sum(pagesread)+sum(pageswritten)  disk_rwes

  

from  sysmaster:syschkio c, sysmaster:syschunks k, sysmaster:sysdbspaces d

  

where  d.dbsnum = k.dbsnum

  

and  k.chknum  = c.chunknum  --# c.chknum

  

group  by 1, 2

  

order  by 5 desc;

  

onstat  -D

  

onstat  -g iof

  

Most I/O tables

        
  

检查点

  
  

I/O最多的表

  
  

方法

  
  

select  dbsname, tabname,

  

(isreads  + pagreads) diskreads,

  

(iswrites  + pagwrites) diskwrites,

  

(isreads  + pagreads)+ (iswrites + pagwrites)   disk_rsws

  

from  sysmaster:sysptprof

  

where  tabname not like 'sys%'

  

and  dbsname not like 'sys%'

  

order  by 5 desc

  

Read Ahead

            
  

检查点

  
  

RA_PAGES & RA_THRESHOLD 参数配置

  
  

方法

  
  

查看onconfig参数文件

  
  

运行情况

  
  

RA_PAGES 64

  

RA_THRESHOLD 60

  

Most Resource SQL

        
  

检查点

  
  

监控消耗当前消耗最多资源的SQL

  
  

方法

  
  

select username,

  

syssesprof.sid,

  

lockreqs, lockwts,

  

deadlks,

  

lktouts,

  

logrecs,

  

isreads, iswrites, isrewrites,  isdeletes,

  

iscommits, isrollbacks, longtxs,

  

bufreads, bufwrites,

  

seqscans,

  

pagreads, pagwrites,

  

total_sorts, dsksorts,  max_sortdiskspace,

  

logspused

  

from syssesprof, syssessions

  

where syssesprof.sid =  syssessions.sid

  

order by bufreads desc;--根据需要按照不同的资源进行排序

  

onstat -g ses sid

  

等待事件

        
  

检查点

  
  

SESSION等待事件

  
  

方法

  
  

select username,

  

sid,

  

is_wlatch, -- blocked waiting on a  latch

  

is_wlock, -- blocked waiting on a  locked record or table

  

is_wbuff, -- blocked waiting on a  buffer

  

is_wckpt, -- blocked waiting on a  checkpoint

  

is_incrit -- session is in a  critical section of

  

-- transaction (e.g writing to  disk)

  

from syssessions

  

Where is_wlatch+ is_wlock+ is_wbuff+ is_wckpt>0

  

order by username;

  

onstat -g ses sid

  
收起
软件开发 · 2016-06-07
浏览1288
junxijunxi软件开发工程师nttdata
    检查点      检查数据与索引       方法      A. 验证表数据页:oncheck  -cD  B. 验证索引:oncheck  -cI &nb...显示全部
                
  

检查点

  
  

检查数据与索引

  
  

方法

  
  

A. 验证表数据页:oncheck  -cD

  

B. 验证索引:oncheck  -cI  

  
  

运行情况

  
  

检查输出结果中是否有错误和警告类信息

  
  

健康状况评估

  
  

oncheck -cD 命令。

  

如果数据页确认检测到错误,则尝试从指定表卸装数据、删除表、重新创建表以及重新装入数据。如果该过程不成功,请从存储空间备份执行数据恢复。

  

oncheck -cI 命令

  

要确认数据库中每个表上的索引,如果该命令检测到错误,则删除并重新创建受影响的索引。

  

Instance Profile

        
  

检查点

  
  

数据库实例概要信息

  
  

方法

  
  

onstat -p

  

Current Active SQL

        
  

检查点

  
  

当前正在运行的SQL情况

  
  

方法

  
  

onstat -g sql

  

onstat -g ses

  

onstat -g sql #sid

  

onstat -g ses #sid

  

onstat -g stm

  

Checkpoint

        
  

检查点

  
  

Checkpoint次数及时长

  

检查点是使磁盘上的页与共享内存缓冲池中的页同步的过程。在检查点期间,IDS 阻止用户线程进入临界会话,并阻止所有的事务活动。因此,如果检查点持续时间过长,那么用户可能会经历系统挂起。在存在几千个事务并且响应时间至关重要的 OLTP 环境中,情况尤其如此。

  
  

方法

  
  

grep Checkpoint online.log

  

Long Transaction

        
  

检查点

  
  

Long Transaction发生的次数及相应的事务

  
  

方法

  
  

online.log

  

监控当前长事务:onstat

  

Lock

        
  

检查点

  
  

Lock发生的次数及相应的事务

  
  

方法

  
  

A.Onstat -g ppf

  

监控当锁与死锁事务:onstat -g ppt

  

B.dbaccess sysmaster

  

select  dbsname,tabname,

  

sum(pf_rqlock)  as locks,

  

sum(pf_wtlock)  as lockwaits,

  

sum(pf_deadlk)  as deadlocks

  

from  sysactptnhdr,systabnames

  

where  pf_wtlock > 0

  

and  systabnames.partnum = sysactptnhdr.partnum

  

--and  dbsname = "dbname"

  

group  by dbsname,tabname

  

order  by lockwaits desc;

  

Blocking Lock

            
  

检查点

  
  

当前发生blocking lock的情况

  
  

方法

  
  

Dbaccess  sysmaster

  

Select  t2.dbsname database, t5.sid sessionID,t8.txt type,t2.tabname tablename,

  

T4.sid  lock_sess,t5.username lock_user,t6.sid wait_sess,t1.rowidr row_id,t1.keynum

  

From  syslcktab t1,systabnames t2,systxptab t3,sysrstcb t4,

  

      sysscblst t5,sysrstcb t6,sysscblst t7,flags_text  t8

  

Where  t1.owner=t3.address and t1.partnum=t2.partnum

  

And  t3.owner=t4.address and t1.wtlist=t6.address

  

And  t4.sid=t5.sid and t8.tabname='syslcktab'

   

And t8.flags=t1.type and t6.sid=t7.sid;

  
  

Select  t2.dbsname database, t5.sid sessionID,t8.txt type,t2.tabname tablename,

  

T4.sid  lock_sess,t5.username lock_user,t6.sid wait_sess,t1.rowidr row_id,t1.keynum,

  

t9.sqs_statement

  

From  syslcktab t1,systabnames t2,systxptab t3,sysrstcb t4,

  

      sysscblst t5,sysrstcb t6,sysscblst  t7,flags_text t8,

  

      syssqlstat t9

  

Where  t1.owner=t3.address and t1.partnum=t2.partnum

  

And  t3.owner=t4.address and t1.wtlist=t6.address

  

And  t4.sid=t5.sid and t8.tabname='syslcktab'

  

And  t8.flags=t1.type and t6.sid=t7.sid

  

and  t5.sid=t9.sqs_sessionid

  
  

运行情况

  
  

database sessionid  type  tablename  lock_sess l ock_user  wait_sess  row_id keynum

  

demodb    145    IX    test_lock     145       informix     146       1      1

  

Larger SQL

            
  

检查点

  
  

改进返回数据量大的SQL语句的性能

  
  

方法

  
  

setenv FET_BUF_SIZE 32767

  
  

运行情况

  
  

对于返回大数据的应用,如报表,可以设置该环境变量,提高数据返回速度。

  
收起
软件开发 · 2016-06-07
浏览1256
junxijunxi软件开发工程师nttdata
磁盘空间     检查点      磁盘空间- dbspace which exceed 90%       方法      select  name dbspace, sum(chksize) allocated, sum(nfr...显示全部

磁盘空间

        
  

检查点

  
  

磁盘空间- dbspace which exceed 90%

  
  

方法

  
  

select  name dbspace, sum(chksize) allocated, sum(nfree) free,

  

round(((sum(chksize)  - sum(nfree))/sum(chksize))*100,2) pcused

  

from  sysmaster:sysdbspaces d, sysmaster:syschunks c

  

where  d.dbsnum = c.dbsnum

  

group  by name

  

order  by 4 desc,name;

  

磁盘chunk状态

        
  

检查点

  
  

Chunk状态

  
  

方法

  
  

onstat  -d

  

临时表空间

        
  

检查点

  
  

临时表空间Temporary dbspace

  
  

方法

  
  

查看onconfig参数DBSPACETEMP或环境变量DBSPACETEMP  

  

onstat  -d

  

临时表

            
  

检查点

  
  

临时表temp table

  
  

方法

  
  

dbaccess  sysmaster

  

select  dbsname,tabname

  

from  sysptprof, sysdbspaces

  

where  dbsnum = trunc(partnum/1048576)

  

and  name like 'tmpdbs%'

  

order  by 1

  
  

运行情况

  
  

dbsname  demodb

  

tabname  tmp_1

  

name     tmpdbs02

  

逻辑日志

        
  

检查点

  
  

逻辑日志 (Logical Logs)

  
  

方法

  
  

onstat -l

  

物理日志

            
  

检查点

  
  

物理日志 (Physical logs)

  
  

方法

  
  

onconfig参数 onstat -l

  
  

运行情况

  
  

A. onconfig:

  

B. onstat -l:

  

Physical  Logging

  

Buffer  bufused  bufsize  numpages    numwrits   pages/io

  

  P-1   31       64        535        9          59.44

  

      phybegin         physize    phypos      phyused    %used   

  

      2:53             999500      511064     543        0.05   

  

备份与恢复

            
  

检查点

  
  

Backup and Restore

  
  

方法

  
  

ontape,onbar

  
  

运行情况

  
  

确认数据库最近一次0级备份的时间,是否可以用来恢复。确认1,2级备份的情况。在系统需要备份逻辑日志的情况下,备份的逻辑日志是否可用

  

使用onstat -g arc查看表空间最近一次备份的时间点

  

Update Statistics

        
  

检查点

  
  

表统计信息更新情况

  
  

方法

  
  

检查系统表与统计信息确定哪些表需要进行统计更新。

  

对比A、B的输出数据:

  

Sqlfile.sql

  

Select  count(*) from manufact;

  

Select  count(*) from stock

  

Select  count(*) from customer;

  

Select  count(*) from cust_calls;

  

A.dbaccess  -e demodb sqlfile.sql

  

B.   select tabname,nrows   from  systables where tabid >99

  

oncheck

            
  

检查点

  
  

检查系统关键区信息

  
  

方法

  
  

A. 验证系统目录表:oncheck  -cc

  

B. 验证保留页:oncheck  -cr

  

C. 打印系统保留页:oncheck  -pr

  
  

运行情况

  
  

检查输出结果中是否有错误和警告类信息

  
收起
软件开发 · 2016-06-07
浏览1202
junxijunxi软件开发工程师nttdata
CPU相关     检查点      CPU 利用率(idle)        方法      top,sar   Solaris   ps –aux       &n...显示全部

CPU相关

        
  

检查点

  
  

CPU 利用率(idle)

  
  

方法

  
  

top,sar   Solaris   ps –aux   

  
        
  

检查点

  
  

CPU VP 运行情况

  
  

方法

  
  

onstat -g glo

  

内存利用率

        
  

检查点

  
  

系统内存空间、空闲内存空间

  
  

方法

  
  

Top

  

数据库内存使用情况

        
  

检查点

  
  

数据库内存使用情况

  
  

方法

  
  

onstat -g seg

  

rootdbs

        
  

检查点

  
  

监控在rootdbs表空间上是否创建了业务数据库及表

  
  

方法

  
  

dbaccess sysmaster

  

select distinct t.dbsname database,  d.name dbspace, t.tabname

  

from   sysdbstab d,syschunks c,sysextents t

  

where t.chunk = c.chknum

  

and c.dbsnum=d.dbsnum

  

and t.dbsname not like 'sys%'

  

and t.dbsname != 'onpload'

  

and t.tabname not like 'sys%'

  

and d.name = 'rootdbs'

  

系统I/O

        
  

检查点

  
  

用iostat监视I/O子系统情况

  
  

方法

  
  

iostat [ -c | -d ] [ -k ] [ -t ] [  -V ] [ -x [ device ] ] [ interval [ count ] ]

  

其中,-c为汇报CPU的使用情况;-d为汇报磁盘的使用情况;-k表示每秒按kilobytes字节显示数据;-t为打印汇报的时间;-v表示打印出版本信息和用法;-x device指定要统计的设备名称,默认为所有的设备;interval指每次统计间隔的时间;count指按照这个时间间隔统计的次数。

  

iostat 2 10

  

数据库写类型

        
  

检查点

  
  

数据库写操作类型

  
  

方法

  
  

onstat -F

  

网络连接数

        
  

检查点

  
  

网络连接数

  
  

方法

  
  

onstat -g ntu

  

网络连接失败情况

        
  

检查点

  
  

网络连接失败情况

  
  

方法

  
  

onstat -g ntd

  

NETTYPE参数

        
  

检查点

  
  

NETTYPE参数设置

  
  

方法

  
  

查看onconfig参数文件

  

Error严重错误

        
  

检查点

  
  

Error : 严重错误导致系统崩溃

  
  

方法

  
  

查看online.log

  

grep  Error online.log|wc -l

  

grep  Error online.log

  

grep  Thread online.log

  

Warning

        
  

检查点

  
  

Warning

  
  

方法

  
  

查看online.log

  

grep  Warning online.log|wc -l

  

grep Warning online.log

  
收起
软件开发 · 2016-06-07
浏览1320
南帝南帝数据库运维工程师data
informix数据库没有像oracle那样的AWK工具,来生成数据库性能报告。informix主要通过onstat命令查看数据库性能:CPU高:onstat -u|grep -E "PX|PR" |awk '{print "onstat -g ses "$3}'|sh查看系统当前运行的SQL,重复率高的SQL要特别分析。很多时候由索引错误或全表扫描引起。虚...显示全部

informix数据库没有像oracle那样的AWK工具,来生成数据库性能报告。

informix主要通过onstat命令查看数据库性能:

CPU高:onstat -u|grep -E "PX|PR" |awk '{print "onstat -g ses "$3}'|sh

查看系统当前运行的SQL,重复率高的SQL要特别分析。很多时候由索引错误或全表扫描引起。

虚拟内存高:虚拟内存使用率高是V段分配过多,需要分析初始V段大小和每次分配的V段大小:onstat -g seg查看。V段的使用一般是session连接数过多,可以通过命令:onstat -g ses |sort -nrk 8 |more  查看消耗内存多的session。

CKPT:ckpt的时间一般在10s以内是正常的。如果ckpt过高,可以查看onstat -g ckp中 磁盘刷新页数/s(Dskflu)。dskflu平均为8千页每秒(和I/O有关),如果刷新太少,说明I/O有竞争。业务忙的时候,这个是最烦人的。

收起
IT咨询服务 · 2016-06-08
浏览1267
trydbatrydba软件开发工程师阿里巴巴
有没有一体化的健康检查工具,直接出一个整体报告的工具显示全部

有没有一体化的健康检查工具,直接出一个整体报告的工具

收起
软件开发 · 2016-06-07
浏览1205

提问者

trydba
软件开发工程师阿里巴巴

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2016-06-07
  • 关注会员:3 人
  • 问题浏览:5039
  • 最近回答:2016-06-08
  • X社区推广