关于纠结的recycle pool的设置(r3笔记第5天)
现在生产环境中目前有一个很大的中继表,作为多个流程的数据流动所用,数据量很大。里面有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。
有了这些思路,我查看了这两天的系统负载。数据库负载时相当的高。如果做了以上的变更,可能得不偿失。所以就先把这部分的变更做了更为详细的实现步骤,在测试环境测试之后才能提交给客户。
最后的结果就是下面的步骤。
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.
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- call,apply,bind 的完全实现和理 解
- js构造函数的理解
- 实战 | PyQt5制作雪球网股票数据爬虫工具
- 别再问我Python怎么操作Word了!
- Vaex :突破pandas,快速分析100GB大数据集
- 【适合收藏】为了多点时间陪女朋友,我向BAT大佬跪求了这15条JS技巧
- Flask框架教程汇总(1)---视图/重定向/传参
- OkHttp请求耗时统计
- Ubuntu 18.04 通过 Docker 快速部署 Smokeping 2.6.11 教程
- MySQL 8.0新特性 — 函数索引
- Docker快速上手指北(一)【技术创作101训练营】
- leetcode树之二叉搜索树的最近公共祖先
- 【技术创作101训练营】技术角 | 在CentOS 8上使用Nginx 1.18: 基本配置
- Java诊断应用之Arthas实战(技术创作101训练营)
- 突击并发编程JUC系列-数组类型AtomicLongArray