DB2数据库故障与性能瓶颈诊断思路.doc_第1页
DB2数据库故障与性能瓶颈诊断思路.doc_第2页
DB2数据库故障与性能瓶颈诊断思路.doc_第3页
DB2数据库故障与性能瓶颈诊断思路.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文主要介绍了db2数据库在遇到故障及性能问题时运用什么方法去快速诊断定位问题,希望本文内容可以为从事db2的网友提供一些指导和参考 。1、在db2数据库主机遇到重大故障时我们可以通过db2support收集数据库诊断日志数据#在可以连接的时候#db2support . -d sample -c -g -s#不能连接的时候#db2support . -c -g -s2、bufferpool设置的太大连接数据库时导致系统宕机的解决方法:操作步骤:#db2set DB2_OVERRIDE_BPF=10000#db2 terminate#db2stop#db2start#db2 connect to db#连上db#db2 alter bufferpool buffer001 numblockpages#原来的块SIZE太大,我们这里禁用它#db2 force applications all#db2 connect to db#db2 alter bufferpool buffername immediate size 50000#将SIZE改小#db2set DB2_OVERRIDE_BPF= #设置为空,还原回去#db2 terminate#db2 force applications all#db2stop#db2start3、如何快速定位问题1)如果系统的CPU利用很高,IO很少,那么数据库的排序较多2)如果系统的IO繁忙,CPU很多是wait,那么说明数据库有过多的IO3)如果系统CPU,IO都很空闲,那么说明可以是有锁的问题4)如果系统IO,CPU都非常忙,说明有执行代价非常高的sql在执行4、快速找到执行成本较高的sql#首先要打开监视器的开关#db2 update monitor switches using bufferpool on lock on sort on statement on table on uow on#在系统最繁忙的时候,运行#db2 get snapshot for all applications app.out#然后在该文件中查找处于Executing状态的应用,找到执行的对应的sql语句。#如果用这种方法找不到,再收集sql的快照#db2 get snapshot for dynamic sql on sql.out5、如何优化sql语句DB2提供了很好的工具来做sql语句优化。首先要对找到的sql语句进行分析,看是否是该语句引起了性能问题。我们可以使用db2expln来查看sql语句的访问计划和执行成本。#首先将找到的sql语句写到一个文本文件中以;结尾,然后运行#db2expln d dbname -f sqlfile -g -o sql.explain查看 sql.explain可以看到这个sql语句的执行成本。#如果确认该语句有问题,可以使用db2advis来通过建索引的方法来优化该语句.db2advis -d -i sqlfile如果通过创建索引无法优化该语句,一般只能从业务角度优化。6、如果发生锁的问题如何处理发生锁的问题,一般有两种情况,一是锁等待,二是死锁。#首先检查数据库配置参数locktimeout,该参数一定不能设为-1,因为会引起某些应用无限期的等待。#其次可以通过快照来确定数据库发生的问题是哪一种。#db2 get snapshot for db on#查看输出中的下列内容:#Deadlocks detected = 0#Lock Timeouts = 0#如果发生了死锁,可以通过创建死锁监视器来分析产生死锁的原因,命令如下:#mkdir /tmp/dlmon#db2 connect to dbname#db2 create event monitor dlmon for deadlocks with detail write to file /tmp/dlmon replace#db2 set event monitor dlmon state 1等有死锁发生后#db2 set event monitor dlmon state 0#db2evmon d /tmp/dlmon /tmp/dlmon.out#分析/tmp/dlmon.out文件就可以找到造成死锁的信息,结合应用就可以找到造成死锁的原因了。二、关于bufferpool1、大缓冲池的优点它们使频繁请求的数据页能够保存在缓冲池中,这样可更快地访问。更少的 I/O 操作可以减少 I/O 争用,从而可提供更短的响应时间并减少 I/O 操作所需的处理器资源。它们提供在相同的响应时间内到达更高的事务处理速率的机会。它们防止频繁使用的磁盘存储设备(如目录表)和频繁引用的用户表和索引的 I/O 争用。由于包含临时表空间的磁盘存储设备上的 I/O 争用减少,查询所需的排序也从中受益。许多缓冲池的优点2、基于下列原因可考虑使用多个缓冲池:可以把临时表空间分配给单个缓冲池中,以便为需要临时存储器的查询尤其是执行大量排序的查询提供更佳性能。如果数据必须由很多小的更新事务应用程序反复地快速访问,考虑将包含该数据的表空间指定给单独的缓冲池。如果此缓冲池的大小定得合适,将有更多的机会找到它的页,以利于缩短响应时间和降低事务成本。您可以将数据隔离到不同的缓冲池中,以利于特定的应用程序、数据和索引。例如,您可能要将频繁更新的表和索引置于一个单独的缓冲池中,与那些虽频繁查询但不频繁更新的表和索引分开。此更改将减少对第一组表的频繁更新对第二组表的频繁查询具有的影响。对于很少使用的应用程序所访问的数据,可使用较小的缓冲池,尤其对于需要对一个很大的表非常随机地进行访问的应用程序。在 这种情况

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论