错误现象:
04031, 00000, "unable to allocate %s bytes of shared memory ("%s","%s", "%s","%s")"
这个错误临时解决办法:
alter system flush shared pool;
但是这个方式治标不治本,过段时间还是会出现这个错误。
根本的解决办法:
ALTER SYSTEM SET sga_target=8192M SCOPE=SPFILE;
ALTER SYSTEM SET sga_max_size=8192M SCOPE=SPFILE;
#这个值的大小根据服务器内存大小判断,一般设置成物理内存的一半是没有问题的。
另外要注意shared pool size
的值要设置为0.
操作系统Kernel.shmmax
的值要改大一些:
vi /etc/sysctl.conf
kernel.shmmax=34359738368
立即生效:
sysctl -p
这一行如果没有就增加,这样问题就彻底解决了。