Oracle数据库案例整理-Oracle系统执行时故障-Shared Pool内存不足导致数据库响应缓慢

1.1       现象描写叙述

数据库节点响应缓慢,部分用户业务受到影响。

查看数据库告警日志,開始显示ORA-07445错误,然后是大量的ORA-04031错误和ORA-00600错误。

检查数据库日志,数据库仍处于活动状态的信息例如以下:

Sat Jul 17 07:51:52 2010
Thread 1 advanced to log sequence 266272
  Current log# 2 seq# 266272 mem# 0: /dev/rlv_redo121
  Current log# 2 seq# 266272 mem# 1: /dev/rlv_redo122

1.2       可能原因

因为数据库用户业务繁忙,活动会话较多,占用了大量的Shared Pool内存。同一时候Shared Pool内部參数配置不合理导致产生大量的内存碎片。因此,导致部分进程无法申请到足够的Shared Pool内存,出现ORA-07445错误和ORA-04031错误。因为Shared Pool压力越来越大,最后还引发ORA-00600错误。

1.3       处理步骤

  1. oracle用户登录数据库主机。
  2. sysdba用户连接数据库。

% sqlplus /nolog

SQL> conn /as sysdba;

Connected.
  1. 提高Shared Pool的“reserved pool”比例。

SQL> alter system set "_shared_pool_reserved_pct"=10 scope=spfile;

  1. 减少“reserved pool”的最小请求大小。

SQL> alter system set "_shared_pool_reserved_min_alloc"=4000 scope=spfile;

  1. 将Shared Pool子池个数降低到两个。

SQL> alter system set "_kghdsidx_count"=2 scope=spfile;

  1. 分别关闭主备节点数据库。

SQL> shutdown immediate

  1. 分别在主备节点又一次启动数据库。

SQL> startup

  1. 查询设置的參数。

SQL> select a.ksppinm "Parameter", b.ksppstvl "Session Value", c.ksppstvl "Instance Value"

from x$ksppi a, x$ksppcv b, x$ksppsv c

where a.indx = b.indx and a.indx = c.indx and a.ksppinm = ‘_shared_pool_reserved_pct‘;

时间: 2024-10-12 14:31:27

Oracle数据库案例整理-Oracle系统执行时故障-Shared Pool内存不足导致数据库响应缓慢的相关文章

Oracle数据库案例整理-Oracle系统执行失败-sql_trace至TRUE导致Oracle在根文件夹中缺乏可用空间

1.1       述 在"$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace"文件夹下产生大量"oracle_w000_9708.trc"和"oracle_w000_9708.trm"文件. 产生这些文件的速度太快.导致Oracle根文件夹可用空间不足. 1.2       可能原因 导致"$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_S

Oracle数据库大量library cache: mutex X及latch: shared pool问题排查一例

业务系统数据库夯住,数据库内大量的library cache: mutex X及latch: shared pool等待,alert日志信息如下 Tue Sep 26 22:10:04 2017 WARNING: inbound connection timed out (ORA-3136) Tue Sep 26 22:10:04 2017 WARNING: inbound connection timed out (ORA-3136) Tue Sep 26 22:10:04 2017 WARN

Mysql5.7.11 安装 cacti0.8.8f ,在导入cacti.sql数据库时出现下记错误,导致数据库导入终止: ERROR 1067 (42000) at line 1847: Invalid default value for 'status_fail_date'

解决方法:vim /etc/my.cnf 文件,加入 : sql-mode="NO_ENGINE_SUBSTITUTION" , Systemctl restart mysqld 进入mysql的之后可执行: select @@sql_mode 查询当前使用的sql_mode是什么 Mysql5.7.11 安装 cacti0.8.8f ,在导入cacti.sql数据库时出现下记错误,导致数据库导入终止: ERROR 1067 (42000) at line 1847: Invalid

Oracle数据库以date类型保存日期时,Java中用哪个类对应数据库的date类型?

1. 使用JDBC操作Oracle数据库时,使用java.sql.Date类型对应数据库的date类型,此时只能保存和读取日期部分, 时间(时分秒)部分不能读取和保存:  查询结果集可以直接获取Date类型的数据:java.sql.Date date=resultSet.getDate("dateTime"): java.sql.Date类型的数据也可以直接保存到数据库或者与数据库中date类型的数据直接比较大小: 字符串的日期,则用SQL语句的转换函数 to_date('2017-4

使用maven时,如何修改JVM的配置参数;maven命令执行时到底消耗多少内存?

maven是使用java启动的,因此依赖JVM,那么如何修改JVM参数? MAVEN_OPTS 在系统的环境变量中,设置MAVEN_OPTS,用以存放JVM的参数,具体设置的步骤,参数示例如下: MAVEN_OPTS=-Xms256m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256M 或者临时设置 export MAVEN_OPTS=-Xms256m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256M 在m

Oracle Shared Pool 原理

Oracle Shared Pool 原理 由于shared pool中最重要的是library cache,所以本文主要讲解Library cache的结构,library cache latch,library cache lock,library cache pin. What is shared pool? Shared pool是SGA中的一部分,由于它是SGA的一部分,这意味着它可以被所有的进程所访问,Shared Pool当中主要包含了2部分:library cache和dicti

ORA-00064 processes设置过大导致数据库打不开

processes设置过大导致数据库打不开 在processes设置过大后,可能导致数据库打不开,开启数据库后会报错: SQL> startup ORA-00064: object is too large to allocate on this O/S (1,7746920) SQL> 解决办法: 首先找到pfile位置,然后从pfile启动数据库; startup pfile=$ORACLE_BASE/admin/SID/pfile/init.ora.49201715235' pfile一

整理ORACLE数据库备份常用术语

本文将讲述在备份是常用的数据库相关术语以及业界定义的专业术语,供大家参考和学习. 数据库相关术语: (1)冷备份: 冷备份是将数据库关闭之后,将数据文件.联机日志文件.控制文件拷贝到其他地方进行备份.此外,冷备份也可以包括对参数文件和口令文件的备份,但是这两种文件的备份是可以根据需要进行选择的,冷备份实际上也是一种物理备份. (2)热备份: 热备份是相对于冷备份而言的,不需要停机操作,直接可以在线采用archive mode下进行数据库备份和还原操作.比较常见的热备方法就是使用Rman备份. (

数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例

[本文谢绝转载原文来自http://990487026.blog.51cto.com] <大纲> 数据库编程3 Oracle 子查询 insert update delete 事务 回收站 字段操作 企业级项目案例 实验所用数据表 子查询,解决一步不能求解 查询工资比scott高的员工信息: 子查询知识体系搭建: 解释3,查询部门是sales的员工信息: 方法1:子查询 [方法2]:多表: 优化考虑: 解释4[select],只能放单行子查询 解释4[from] 考题:显示员工姓名,薪水 解释