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

关于DB2数据库的参数调优技巧,第1张

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

在Unix系统里 输入

su ldapdb

在Windows系统里 输入

db cmdset DB INSTANCE=ldapdb

为了调节DB 参数 运行db tunings sh脚本 你可以在这里下载: // sofare ibm /ibmdl/pub/sofare/tivoli_support/misc/Security/AMeB/_am /tuning_guide_scripts tar

或者通过ftp地址

ftp://ftp sofare ibm /sofare/tivoli_support/misc/Security/AMeB/am /tuning_guide_scripts tar

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

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

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

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

显示和验证当前设置

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

db get database configuration for ldapdb | \

egrep DBHEAP|SORTHEAP|MAXLOCKS|MINMIT|UTIL_HEAP_SZ|APPLHEAPSZ

db connect to ldapdb

db select bpname npages pagesize from syscat bufferpools

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 )的cli error文件或者IBM Tivoli Directory Server V (IDS v )的db cli log或者其他一些文件 在IDS v 系统中 该文件缺省目录在Solaris的/var/ldap/和AIX的/tmp中 在IDS v 和后来系统中 Solaris和AIX的缺省目录都是/var/ldap

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

db look 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

使用太大的缓冲池大小来恢复一个被分在系统里的数据库将会导致恢复失败 查看//publib boulder ibm /infocenter/tivihelp/v r /topic/ ibm itame doc_ /am _perftune #idtrouble来解决这个问题

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

关于MINMIT的警告

lishixinzhi/Article/program/DB2/201311/11229

不需要设置。

客户端连接的时候需要这个db2的端口,这个默认是50000,也可以通过如下查看:

C:\SQLLIB97\BIN>db2 get dbm cfg | grep SVCENAME

TCP/IP Service name (SVCENAME) = db2c_DB2_01

SSL service name (SSL_SVCENAME) =

得到了服务名称db2c_DB2_01,然后到系统端口文件去查看对应的端口号:

在windows上这个文件是C:\WINDOWS\system32\drivers\etc\service

Unix和Linux上为: /etc/services

如果该端口没有设置,可以如下设置:

db2 update dbm cfg using svcename 50000

db2 terminate


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6701018.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存