ORA-04031:oracle无法分配共享内存

摘要:
share_pool_size(共享池)的作用:1、sql共享缓冲池2、该参数是库高速缓存和数据字典的高速缓存。设置共享池后,可能出现ORA-32001:已请求写入SPFILE,但是在启动时未指定SPFILEaltersystemsetSHARED_POOL_SIZE='50M'SCOPE=both;ORA-32001:已请求写入SPFILE,但是在启动时未指定SPFILE显示spfile是未启动状态首先确定数据库是以spfile启动的还是pfile启动用showparameterspfile查看如果values对应有值,表示是spfile启动的。否则就是pfile启动的。

百度知,是由于oracle的shared_pool空间不够的原因,解决方式有两种

第一种:治标不治本

alter system flush shared_pool;

这种方法可以立即有效果,但是不是根本的解决办法,一小时左右又开始报上面的错误了,再次执行就可以了。

第二种:治标又治本

查看:

SHOW PARAMETERS SHARED_POOL_SIZE

更改:

alter system set SHARED_POOL_SIZE='50M' SCOPE=both;

上面这句话必须在sys用户下或是用dba的身份登录的用户下执行。

贴士:shared_pool 是什么东东?

share_pool_size(共享池)的作用:

1、sql共享缓冲池 2、该参数是库高速缓存和数据字典的高速缓存。

设置共享池后,可能出现ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE

alter system set SHARED_POOL_SIZE='50M' SCOPE=both;

ORA-32001: 已请求写入 SPFILE, 但是在启动时未指定 SPFILE

显示spfile是未启动状态

首先确定数据库是以spfile启动的还是pfile启动

用show parameter spfile查看如果values对应有值,表示是spfile启动的。否则就是pfile启动的。

SQL> show parameter spfile

NAMETYPEVALUE
------------------------------------ -----------------------------------------
spfilestring
值为空,表示数据库以pfile启动

要动态修改一定要用spfile启动。如果现在是用pfile启动,可以这样切换成spfile启动:

SQL>create spfile frompfile;

SQL>shutdownimmediate;

SQL>startup;

免责声明:文章转载自《ORA-04031:oracle无法分配共享内存》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQLSERVER排查CPU占用高的情况VS中更改栈和堆空间的大小下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle 存储过程的基本语法 及注意事项

oracle 存储过程的基本语法 1.基本结构CREATE OR REPLACE PROCEDURE 存储过程名字(    参数1 IN NUMBER,    参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGIN END 存储过程名字2.SELECT INTO STATEMENT  将select查询的结果存入到变...

Centos6/7下静默安装oracle10g

Centos6/7下静默安装Oracle10g 远程安装oracle10g,通过网上资料,不断摸索成功安装。先在本地虚拟机Centos7上做实验,快照恢复快照恢复,安装了几十次成功之后,再在服务器Centos6上安装,(6和7还是有区别的,比如默认防火墙)中间遇到各种问题特记录下来分享。 在linux下安装oracle主要注意点: 1.关闭不必要的服务...

ORACLE 查看RMAN的备份信息总结

    关于Oracle数据库的RMAN备份,除了邮件外,是否能通过其它方式检查RMAN备份的成功与失败呢?其实我们可以通过下面SQL脚本来检查某个时间段备份失败的记录: SELECT * FROM V$RMAN_STATUS WHERE START_TIME >= TO_DATE(&START_TIME,'YYYY-MM-DD HH24...

如何查看Oracle,MySQL,SQLServer三大数据库的事务隔离级别

1:mysql的事务隔离级别查看方法 mysql 最简单,执行这条语句就行:select @@tx_isolation 详情: 1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transactio...

未在本地计算机上注册"MSDAORA.1"提供程序

C#连接Oracle时报这个错误。 解决方案, 原因:如错误,64位系统未注册"MSDAORA.1"提供程序 解决:在IIS应用程序池中找到自己的网站,打开高级设置,设置“启用32位应用程序”为“True”即可。 另外还有其他解决方案,比如设置项目目标平台为x86,使用其他连接字符串等。相对来说改应用程序池最简单方便,也不会更改项目和代码。 思考:是不是就...

SQL Server与Oracle有什么区别?

1.可操作平台上: Oracle可在所有主流平台上运行,Oracle数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。而SQL Server却只能在Windows上运行了。 但SQL Sever在Window平台上的表现,和Windows操作系统的整体结合程度,使用方便性,和Microso...