一、错误提示:
> EXP-00008: ORACLE error 4031 encountered
> ORA-04031: unable to allocate 4096 bytes of shared memory
("shared pool","BEGIN :EXEC_STR := SYS.DBMS...","PL/SQL MPCODE","BAMIMA: Bam Buffe
二、错误原因:
共享内存太小,存在一定碎片,没有有效的利用保留区,造成无法分配合适的共享区。
三、解决步骤:
1.查看当前环境
SQL> show sga
Total System Global Area 566812832 bytes
Fixed Size 73888 bytes
Variable Size 28811264 bytes
Database Buffers 536870912 bytes
Redo Buffers 1056768 bytes
show parameter shared_pool
NAME TYPE VALUE
------------------------------------ ------- -----
shared_pool_reserved_size string 1048576
shared_pool_size string 20971520
SQL> 0select sum(free_space) from v$shared_pool_reserved.
SUM(FREE_SPACE)
---------------
1048576
我们可以看到没有合理利用保留区
SQL> SELECT SUM(RELOADS)/SUM(PINS) FROM V$LIBRARYCACHE.
SUM(RELOADS)/SUM(PINS)
----------------------
.008098188
不算太严重
SQL> SELECT round((B.Value/A.Value)*100,1) hardpaseperc
FROM V$SYSSTAT A,
V$SYSSTAT B
WHERE A.Statistic# = 171
AND B.Statistic# = 172
AND ROWNUM = 1.
hardpaseperc
------------------
26.5
相关文章
中关键技术及难点
ORA-01536:超出表空间***的空间限量
寻找发展方向数据分析的5大技术走向
如何去降低回收Temp的使用容量
Oracle调优与深入之04031处理过程
Linux下XFConfig的有效使用
应用技术:如何给Linux补洞
用Linux轻松建立内部“因特网”
了解Oracle数据库中的系统参数
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛