在开始前请关闭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脚本正确的设置了该值为以前的版本均设置为设置为非的值将会导致更新操作的超时并且有可能影响更新的速度