前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于纠结的recycle pool的设置(r3笔记第5天)

关于纠结的recycle pool的设置(r3笔记第5天)

作者头像
jeanron100
发布2018-03-14 17:23:50
6840
发布2018-03-14 17:23:50
举报
文章被收录于专栏:杨建荣的学习笔记

现在生产环境中目前有一个很大的中继表,作为多个流程的数据流动所用,数据量很大。里面有clob字段,加上庞大的数据量,表就显得很臃肿了。

目前在做大批量的数据处理的时候发现了一些问题,事物数在不断增加的情况下,数据的处理速度也在不断的降低。最后出现了一些资源的问题。

在抓取了awr和同事的分析之后,产品部门建议把对应的clob放入recycle pool里面。一方面能够降低buffer cache的负载。让clob的部分尽快的从缓存中不断的刷新。

对于recycle pool的设置没有问题,可以设置db_recycle_cache_size来实现,但是这些操作在生产环境中一定要多评估和分析,因为有一些潜在的问题和风险。

首先就是来看sga中是否有足够的空间,因为这个库在开始的时候没有考虑recycle,keep pool的设置,根据很多的项目的反馈,目前用处还不是很大,所以就没有分配足够的空间,sga绝大部分都给了shared pool, buffer_cache,其他的pool都相应的分配了较少的一部分缓存。

这样如果要分配足够缓存,留给recycle pool的部分就很有限了。估算下来,不到200M左右的样子,直观感觉,这样的设置还不如不设置,可能没达到预期的目标还可能使问题更加严重。

第2个思路就是从sga的其他池中拿出一部分的缓存来,分配给recycle pool,这个思路也是很自然的。或者考虑设置sga_target来调高实现,不过这个部分,自己还是有阴影的。

一条sql语句导致的数据库宕机问题及分析 http://blog.itpub.net/23718752/viewspace-1141131/

所以我是不敢自己往枪口上撞的。

还有一个思路就是根据系统的资源情况来分配更多的sga资源,可以调高sga_max_size,这个部分需要重启数据库实例。如果调高的幅度较大,还需要看看内核参数是否有潜在的影响,是否也需要相应的调高。

这个部分还是有影响的。

服务器增加内存后无法重启数据库的问题及解决 http://blog.itpub.net/23718752/viewspace-1137256/

考虑了如上的一些情况,就给产品部门去了封邮件,让他们来帮助评估一下设置的recycle pool最小或者建议值是多少,我来根据这个参数来考虑使用哪种方法。因为产品部门这方面要更专业一些。

自己琢磨了半天,最后的结果也不一定就是最优的。

过了一会,产品部门回邮件了,综合了我的顾虑,他们认为这部分的修改可以稍微延后一些,影响不是特别大,至少从目前的评估来看,不过从长远的情况来看他们建议还是需要这个变更。建议值为500M。

有了这些思路,我查看了这两天的系统负载。数据库负载时相当的高。如果做了以上的变更,可能得不偿失。所以就先把这部分的变更做了更为详细的实现步骤,在测试环境测试之后才能提交给客户。

最后的结果就是下面的步骤。

代码语言:javascript
复制
1.
Alter system set sga_max_size=20G scope=spfile;
Alter system set db_recycle_cache_size=2G scope=spfile;
2.
Bring down DB instance
Restart DB instance.
3.
Run below sql statement under PRDAPPO.
alter table trb1_pub_log modify lob(GENERAL_DATA_C) (storage (buffer_pool recycle) cache);    
4.
and  use below statement to check if recycle setting is properly, column buffer_pool value should be RECYCLE.
set linesize 200
col table_name format a30
col column_name format a30
col segment_name format a30
col buffer_pool format a20
set pages 50
select table_name,column_name,se.segment_name,buffer_pool from user_segments se,user_lobs sl
where se.segment_name=sl.segment_name
and sl.table_name='TRB1_PUB_LOG';
example like below.
TABLE_NAME                     COLUMN_NAME                    SEGMENT_NAME                   BUFFER_POOL
------------------------------ ------------------------------ ------------------------------ --------------------
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
PUB_LOG                       GENERAL_DATA_C                 SYS_LOB0002403829C00014$$      RECYCLE
18 rows selected.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档