数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

关于DB2数据库的参数调优技巧


发布日期:2018年07月07日
 
关于DB2数据库的参数调优技巧

在开始前请关闭IBM目录服务器将上下文切换到IBM目录服务器DB实例拥有者一般是ldapdb用户 比如

在Unix系统里输入

su ldapdb

在Windows系统里输入

dbcmd

set DBINSTANCE=ldapdb

为了调节DB参数运行dbtuningssh脚本你可以在这里下载:http://wwwsoftwareibmcom/ibmdl

/pub/software/tivoli_support/misc/Security/AMeB/_

am/tuning_guide_scriptstar

或者通过ftp地址

ftp://ftpsoftwareibmcom

/software/tivoli_support/misc/Security/AMeB/am/tuning_guide_scriptstar

Web页面需要注册用户名和密码

这个脚本的文件系统拥有者必须是DB实例拥有者一般就是ldapdb用户文件系统组应该和实例拥有者相同(一般是dbsysadm)脚本必须在DB实例拥有者的上下文中使用

脚本中的ibmdefaultbp和ldapbp参数控制着DB的缓沖池db_turningssh脚本设置了DB缓沖池的建议大小其他一些可选的设置在脚本的注释里写明了IBM目录服务器的性能随着DB缓沖池的增长而提高然而在大多数情况下通过这样的参数调节方式你可以预见不超过%的性能提高

DB缓沖池是DB缓存数据表和索引的地方DB用户使用索引来在查询时迅速找到该获取哪个表行项需要更多信息请参考IBM Directory Server Tuning Guide

显示和验证当前设置

输入如下命令来显示当前的DB参数调节设置的结果

db get database configuration for ldapdb | \

egrep DBHEAP|SORTHEAP|MAXLOCKS|MINCOMMIT|UTIL_HEAP_SZ|APPLHEAPSZ

db connect to ldapdb

db select bpnamenpagespagesize from syscatbufferpools

db terminate

如果某个堆配置参数过低就将出现一些功能性的问题输入如下命令来显示当前的堆参数设置

db get db cfg for ldapdb | grep HEAP

下面是一个使用了推荐值的多种堆参数的输出例子显示

Database heap (KB) (DBHEAP) =

Utilities heap size (KB) (UTIL_HEAP_SZ) =

Max appl control heap size (KB) (APP_CTL_HEAP_SZ) =

Sort list heap (KB) (SORTHEAP) =

SQL statement heap (KB) (STMTHEAP) =

Default application heap (KB) (APPLHEAPSZ) =

Statistics heap size (KB ) (STAT_HEAP_SZ) =

如果一个堆参数小于最小值输入如下命令将其增大到最小值

db update db cfg for ldapdb using parm_name parm_value

这里parm_name是上文输出中的第三栏的字样(无括号)parm_value是最后一栏的值

如果堆参数设置的过高或者过低IBM的目录服务器都会以失效来提示出现了问题在这种情况下需要查看诸如IBM Directory Server V(IDS )的clierror文件或者IBM Tivoli Directory Server V(IDS v)的dbclilog或者其他一些文件在IDS v系统中该文件缺省目录在Solaris的/var/ldap/和AIX的/tmp中在IDS v和后来系统中Solaris和AIX的缺省目录都是/var/ldap

注意dblook能够在一条命令下提供关于数据库及其配置的足够多的信息例子如下

dblook d ldapdb u ldapdb p o output_file

output_file是存储结果的文件位置

关于IBM目录服务器运行的警告

DB参数调节使用了db terminate如果当该命令发出IBM目录服务器slapd或ibmslapd进程在运行它将阻止服务器的部分功能所有缓存的搜索看起来反应正常其他的搜索将会简单的变为无结果或者出现错误信息恢复功能将会重启IBM目录服务器因此最好是在调节DB参数时关闭IBM目录服务器

关于缓沖池内存使用的警告

如果任何的缓沖池被设置过高DB将会因为缺少足够内存而无法启动如果出现该问题将会有一个核心转储的文件但是通常没有错误信息

在AIX系统里系统错误日志将会报告一个内存分配失败查看这个日志请输入

errpt a | more

使用太大的缓沖池大小来恢复一个被分在系统里的数据库将会导致恢复失败查看http://publibboulderibmcom/infocenter/tivihelp/

vr/topic/comibmitamedoc_/am_perftunehtm#idtrouble来解决这个问题

如果DB因为缓沖池过大而无法启动请重新调节DB参数

关于MINCOMMIT的警告

不要设置MINCOMMIT为以外的数最新的db_tuningssh脚本正确的设置了该值为以前的版本均设置为设置为非的值将会导致更新操作的超时并且有可能影响更新的速度

上一篇:了解有关DB2数据库优化的几条策略

下一篇:在DB2数据库中很难理解的Catalog单词