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

GBase 8t有没有进行健康检查的工具?显示全部

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

收起
参与15

查看其它 6 个回答junxi的回答

junxijunxi软件开发工程师nttdata
                
  

检查点

  
  

检查数据与索引

  
  

方法

  
  

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
浏览1270

回答者

junxi
软件开发工程师nttdata
擅长领域: 数据库GBase 8t国产数据库

junxi 最近回答过的问题

回答状态

  • 发布时间:2016-06-07
  • 关注会员:3 人
  • 回答浏览:1270
  • X社区推广