报错信息
报错解释
ORA-00604 错误表示在递归的 SQL 级别 1 执行时发生了错误,这通常意味着在 Oracle 数据库内部执行的一个 SQL 语句或者是数据库自身的内部操作中出现了问题。
ORA-04031 错误表示 Oracle 无法分配所需的内存空间,这通常是因为数据库在运行时,可用的共享内存区(通常是共享池)不足,无法完成当前操作。
解决
1.可以通过调整初始化参数 SHARED_POOL_SIZE 增加共享池的大小,使用如下命令:(假设设置为 500MB)。
ALTER SYSTEM SET SHARED_POOL_SIZE = '500M' SCOPE=SPFILE;
2.可以通过执行一些清理操作来释放共享池中的内存。运行如下命令清理共享池。
ALTER SYSTEM FLUSH SHARED_POOL;
但是只坚持了一上午,晚上的时候又报错
Connection open error . ORA-04031: unable to allocate 752 bytes of shared memory (“shared pool”,“unknown object”,“KKSSP^371”,“kglss”)
可以用如下命令修改SGA_MAX_SIZE与SGA_TARGET的值,调大一些,
alter system set sga_max_size=2G scope=spfile;
alter system set sga_target=2G scope=spfile;