ORA-4031诊断分析
1.Environment
11.2.0.4 RAC
2.Symptoms
rac的一节点alert日志一直刷ORA-4031报错,提示shared pool不足,二节点并没有此报错
Sat Oct 09 09:53:30 2021
Errors in file /data1/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_smon_7537104.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","update sys.mon_mods$ set ins...","sga heap(1,0)","kglsim object batch")
Errors in file /data1/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_smon_7537104.trc:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","select ts#,file#,block#,cols...","sga heap(2,0)","kglsim object batch")
XXX:/data1/app/oracle$ oerr ora 4031
04031, 00000, "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")"
// *Cause: More shared memory is needed than was allocated in the shared
// pool or Streams pool.
// *Action: If the shared pool is out of memory, either use the
// DBMS_SHARED_POOL package to pin large packages,
// reduce your use of shared memory, or increase the amount of
// available shared memory by increasing the value of the
// initialization parameters SHARED_POOL_RESERVED_SIZE and
// SHARED_POOL_SIZE.
// If the large pool is out of memory, increase the initialization
// parameter LARGE_POOL_SIZE.
// If the error is issued from an Oracle Streams or XStream process,
// increase the initialization parameter STREAMS_POOL_SIZE or increase
// the capture or apply parameter MAX_SGA_SIZE.
XXXX:/data1/app/oracle$
3.Changes
巡检时发现
4.Cause
sys@PES1DB2>show spparameter sga
SID NAME TYPE VALUE
-------- ----------------------------- ---------------------- ----------------------------
* lock_sga boolean
* pre_page_sga boolean
* sga_max_size big integer 3G
orcl1 sga_target big integer 1472M
* sga_target big integer 3G
两节点sga设置不一致,正常情况下,sga的设置所有节点生效,默认是*,此环境指定实例,指定实例的参数优先级更高,虽然*的设置为3G,但是实际上1G的参数生效。
规范的做法是删除指定实例的sga参数,需要重启。为了缩小影响,且sga_target参数为动态参数,故重新设置为3G即可。
5.Solution
ALTER SYSTEM SET sga_target='3G' SCOPE=BOTH SID='orcl1';
sys@PES1DB2>show spparameter sga
SID NAME TYPE VALUE
-------- ----------------------------- ---------------------- ----------------------------
* lock_sga boolean
* pre_page_sga boolean
* sga_max_size big integer 3G
orcl1 sga_target big integer 3G
* sga_target big integer 3G
sys@PES1DB2>
延续:主机收到告警
告警描述:#(系统+计算)内存使用率持续10分钟超过95%,内存使用中会发生换页空间切换,影响实际数据调用,可综合考虑是否扩容
告警时间:2021.10.09 11:21:12
---------
orcl1:/data1/app/oracle$ ps aux | head -1 ; ps aux | sort -rn +3 | head -10
查看确实是数据库相关的进程占用内存,进一步分析
8G主机内存,SGA 3G,PGA 1G,调整sga为2G,主机内存(nmon->m)从96%降为86%。
sys@PES1DB1>show parameter pga
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
pga_aggregate_target big integer 1000M
sys@PES1DB1>show parameter process
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
aq_tm_processes integer 1
cell_offload_processing boolean TRUE
db_writer_processes integer 4
gcs_server_processes integer 3
global_txn_processes integer 1
job_queue_processes integer 1000
log_archive_max_processes integer 4
processes integer 1000
processor_group_name string
sys@PES1DB1>show parameter session
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
java_max_sessionspace_size integer 0
java_soft_sessionspace_limit integer 0
license_max_sessions integer 0
license_sessions_warning integer 0
session_cached_cursors integer 50
session_max_open_files integer 10
sessions integer 1536
shared_server_sessions integer
6.References
Diagnosing and Resolving Error ORA-04031 on the Shared Pool or Other Memory Pools (Doc ID 146599.1)
参考中还有更加详细的解释和介绍。
http://blog.itpub.net/26736162/viewspace-2137064/
ORA-4031诊断分析的更多相关文章
- gops —— Go 程序诊断分析工具
GitHub: https://github.com/google/gops 一个用于列出和诊断分析系统中正在运行的 Go 程序的命令行工具 安装 go get -u github.com/googl ...
- cognos服务器性能测试诊断分析优化过程记录
前段时间客户方一个系统上线后出现性能问题,就是查询报表的时候出现宕机现象,应项目组要求过去帮忙测试优化问题. 该项目的架构相对比较复杂,登录后要先进行认证服务器认证用户然后登录到应用系统A,在跳转到 ...
- mysql查询诊断分析工具
Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方.通常我们是使用的explain,以及slow query log都无法做到 ...
- ORACLE AWR结合ASH诊断分析enq: TX - row lock contention
公司用户反馈一系统在14:00~15:00(2016-08-16)这个时间段反应比较慢,于是生成了这个时间段的AWR报告, 如上所示,通过Elapsed Time和DB Time对比分析,可以看出在这 ...
- GSEA - Gene set enrichment analysis 基因集富集 | ORA - Over-Representation Analysis 分析原理与应用
RNA-seq是利器,大部分做实验的老板手下都有大量转录组数据,所以RNA-seq的分析需求应该是很大的(大部分的生信从业人员应该都差不多要沾边吧). 普通的转录组套路并不多,差异表达基因.富集分析. ...
- 建立标准编码规则(二)-DiagnosticAnalyzer 增加诊断分析代码
1.使用语法树 当我们要编写一个规则,例如 检测正值表达式的时候,如何编写有效的规则呢 Regex.Match("my text", @"\pXXX"); 这里 ...
- mysql的sql语句的性能诊断分析
1> explain SQL,类似于Oracle中explain语句 例如:explain select * from nad_aditem; 2> select benchmark(co ...
- 利用MemoryAnalyzer进行OutOfMemoryError的诊断分析
这篇帖子只介绍利用MemoryAnalyzer进行简单的JVM的堆的分析,至于JVM的内部结构是怎么样的,这里不进行分析.好吧,废话不多说:首先如果我们要分析JVM某个时刻的Heap的对象分配情况,我 ...
- linux系统判断是否重启、关机、查询登录诊断分析简介
Last reboot这个命令是查看每次系统重启的信息 [root@dg01 log]# last rebootreboot system boot 2.6.32-300.10.1. Thu May ...
随机推荐
- Jemeter压力测试
Jmeter教程 简单的压力测试 Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 转载自小坦克:https: ...
- Oracle数据库 —— DDL
时间:2016-10-5 14:55 逆风的方向更适合飞翔我不怕千万人阻挡只怕自己投降 --------------------------------------- 一.表的创建与管理1.表的基本操 ...
- Web安全-CDN相关技术
CDN介绍 CDN的全称是Content Delivery Network,即内容分发网络.CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发. ...
- 25道经典Java算法题
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 [Java] 纯 ...
- Excel vba call Python script on Mac
How can I launch an external python process from Excel 365 VBA on OSX? It took me a while, but I fig ...
- 20201219 u,v,w
开考前刚起床,所以一边考一边吃饭,然后整场都很迷... A. u 考场 半天才搞懂"下三角区域"指哪个区域,手模样例确认后打了 \(O(qn^2)\) 的裸暴力,然后就不会做了. ...
- Java 扫描识别条形码图片
1.条形码扫描识别的实现方法及步骤 本文以Java代码示例介绍如何来扫描和识别条形码图片.这里使用免费条码工具 Free Spire.Barcode for Java,调用BarcodeScanner ...
- Devexpress 饼状图
<dxc:ChartControl Name="chart" BorderThickness="0&q ...
- lua中的随机数
Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]]) 1. math.randomseed(n) 接收一个整数 n 作为随机序列种 ...
- Vue3.x全家桶+vite+TS-搭建Vue3.x项目
目录 一.搭建基础项目 1.vite创建项目 3.运行项目 2.环境变量设置介绍 vite配置多环境打包 二.配置Router 1.安装路由 2.配置路由 3.引入 三.配置Vuex 1.安装vuex ...