DB2动态配置参数(Linux)

     前言:此文档中提供的脚本试用于任何的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 中执行重组和运行统计信息   

 缓冲池 1MB  

1000  

500  

500  

2000   

 缓冲池 2MB  

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 5044 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 参数,它也是只适用于新的连接,可用来为决策支持查询提供增强的查询内并行性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值