您的位置:首页 > 运维架构 > Linux

DB2动态配置参数(Linux)

2008-06-23 12:38 344 查看
前言:此文档中提供的脚本试用于任何的OS,但是.sh只能在LINUX上执行。对以如定时执行.sh脚本,请看Linux下的corntab的用法,到这不再赘述。

DB2 允许您利用动态配置。在 DB2 数据库正在运行、接受连接或处理事务时,可以更改该数据库或实例中的某些配置参数。下面是一个说明可以如何使用 DB2 中的动态配置功能的示例。

在此方案中,为数据库服务器配置了 4 GB 的内存,其中 .5 GB 内存可用于数据库管理器。有8个处理器。数据库服务器专用于正在 DB2INST 实例上运行的名为 DB2DYN 的单个数据库。数据库工作负载在一天和一周中是有所变化的,如下所示:

l 白天的工作负载(05:00-20:00)包括许多连接和并发事务。
l 一天结束时的工作负载(20:00-24:00)包括总结报告和决策支持查询,具有很少的连接和事务。
l 日常维护工作负载(24:00-05:00)包括联机装入操作、增量备份和索引创建等等
每周维护工作负载包括大型表重组操作、运行统计信息操作和创建较大索引

如果具有这些工作负载特征,则可如下表所示来配置系统。

白天05:00 - 20:00
一天的结束20:00 - 24:00
日常维护(24:00 - 05:00
每周维护(星期天)
数据库活动
较重的事务工作负载
决策支持查询
装入、备份和索引创建
在缓冲池 1 中执行重组和运行统计信息
缓冲池 1(MB)
1000
500
500
2000
缓冲池 2(MB)
1000
500
500
200
排序堆(MB)
0.1
20
200
200
目录高速缓存(MB)
200
200
50
50
程序包高速缓存(MB)
800
200
200
200
实用程序堆(MB)
0
0
1000
0
对话级别
1
4
4
可以从将数据库配置参数 database_memory 设置为 3.5GB 开始,从而为数据库保留此指定数量的可用内存。这是一次性操作,一旦完成此操作, 它就将为数据库提供 3.5 GB(或 917 504个4 KB 页)的保留内存,用于创建缓冲池或调整配置。

db2start
db2 update db cfg for db2dyn using database_memory 917504
db2stop
然后,可以使用下列脚本来将数据库从一种配置转换为另一种配置,(可以安排在适当的时间运行这些脚本。)

MorningConfiguration.sh
# This script is used to prepare
# the database server for the
# morning configuration,
# for a workload consisting of
# a large number of OLTP connections and
# concurent transactions.
db2 connect to db2dyn

db2 update db cfg using sortheap 25
db2 update db cfg using util_heap_sz 32
db2 alter bufferpool bufferpool1 size 262144
db2 commit
db2 update db cfg using catcachesz 51200
db2 update db cfg using pkcachesz 204800
db2 alter bufferpool bufferpool2 size 262144
db2 commit
db2 flush package cache dynamic
db2 get db cfg show detail
db2 connect reset
db2 attach to instance db2inst
db2 update dbm cfg using diaglevel 1
db2 get dbm cfg show detail
db2 detach
EveningConfiguration.sh

# This script is used to prepare
# the database server for the
# evening configuration,
# for a workload consisting of
# decision-support queries.

db2 connect to db2dyn

db2 alter bufferpool bufferpool1 size 131072
db2 commit
db2 alter bufferpool bufferpool2 size 131072
db2 commit
db2 update db cfg using pkcachesz 51200
db2 update db cfg using catcachesz 51200
db2 update db cfg using util_heap_sz 32
db2 update db cfg using sortheap 5120
db2 flush package cache dynamic
db2 get db cfg show detail
db2 connect reset
db2 attach to instance db2inst
db2 update dbm cfg using diaglevel 3
db2 get dbm cfg show detail
db2 detach
NightTimeConfiguration.sh

# This script is used to prepare
# the database server for the
# daily maintenance configuration,
# for a workload consisting of
# index creation and load and backup
# operations.

db2 connect to db2dyn

db2 alter bufferpool bufferpool1 size 131072
db2 commit
db2 alter bufferpool bufferpool2 size 131072
db2 commit
db2 update db cfg using catcachesz 51200
db2 update db cfg using pkcachesz 51200
db2 update db cfg using sortheap 51200
db2 update db cfg using util_heap_sz 262144
db2 flush package cache dynamic
db2 get db cfg show detail
db2 connect reset
db2 attach to instance db2inst
db2 update dbm cfg using diaglevel 4
db2 get dbm cfg show detail
db2 detach
MaintenanceConfiguration.sh

# This script is used to prepare
# the database server for the
# weekly maintenance configuration,
# for a workload consisting of
# reorg and runstats operations executed
# in buffer pool 1.

db2 connect to db2dyn

db2 update db cfg using util_heap_sz 32
db2 alter bufferpool bufferpool2 size 51200
db2 commit
db2 update db cfg using sortheap 5120
db2 update db cfg using catcachesz 51200
db2 update db cfg using pkcachesz 51200
db2 alter bufferpool bufferpool1 size 524288
db2 commit
db2 flush package cache dynamic
db2 get db cfg show detail
db2 connect reset
db2 attach to instance db2inst
db2 update dbm cfg using diaglevel 4
db2 get dbm cfg show detail
db2 detach
注意,一个脚本与下一个脚本的操作顺序是不同的。 应该在执行会增大内存需求的操作之前完成将减少内存需求的操作;否则,增大内存需求可能会失败。

所有缓冲池大小调整都是在落实操作之前进行的,原因是缓冲池更改是 SQL 操作,并且是事务的一部分。

每次重新配置之后都会刷新程序包高速缓存, 以发出信号通知优化器已经对配置进行了重大更改,现有的所有动态 SQL 存取方案现在都变得无效。

动态数据库管理器重新配置操作是在应用程序连接至实例时执行的, 而动态数据库操作则是在应用程序连接至数据库时执行的。

GET DATABASE MANAGER CONFIGURATION 命令或 GET DATABASE CONFIGURATION 命令的 SHOW DETAIL 子句可用来验证动态重新配置操作是否已生效。

此方案中可能已动态更改的其它数据库配置参数包括:
locklist 参数,如果数据库经常进行锁定升级,则可动态增大该参数。但是,不能动态减小此参数的值。 dft_queryopt 参数,它只适用于新的连接,在启动决策支持工作负载之前可以用来提高优化级别。 dft_degree 参数,它也是只适用于新的连接,可用来为决策支持查询提供增强的查询内并行性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: