ORA-04031无法分配内存问题

各种教程·supo的文章 · 10 天前 · 36 人浏览

报错

ORA-04031: 无法分配 40 字节的共享内存 ("shared pool","CREATE TABLE VTZ13IQTWWZ18KK...","TCHK^e208f2e","chedef : qcuatc")

解决思路

解析

share_pool_size(共享池)的作用:

1、sql共享缓冲池

2、该参数是库高速缓存和数据字典的高速缓存

查看SHARED_POOL大小

SHOW PARAMETERS SHARED_POOL_SIZE

更改SHARED_POOL大小

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

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


若出现问题ORA-32001

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

显示spfile是未启动状态

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

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

show parameter spfile

NAME TYPE VALUE
------------------------------------ -----------------------------------------
spfile string
值为空,表示数据库以pfile启动

有值,且值为地址,表示数据库为spfile启动

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

create spfile from pfile;
shutdown immediate;
startup;
Theme Jasmine by Kent Liao