日期:2014-05-16  浏览次数:20832 次

ORA-04031: 无法分配4160字节的共享内存 ("large pool","unknown object","hash-join subh"

ORA-04031: 无法分配4160字节的共享内存 ("large pool","unknown object","hash-join subh","kllcqc:kllcqslt")

?

解决方法:

SQL> show parameter dispa

NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
dispatchers????????????????????????? string????? (PROTOCOL=TCP)
max_dispatchers????????????????????? integer???? 5
mts_dispatchers????????????????????? string????? (PROTOCOL=TCP)
mts_max_dispatchers????????????????? integer???? 5

sql> alter system set dispatchers='(PROTOCOL=TCP)(SERVICE=orclXDB)';


SQL> show parameter dispa

NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
dispatchers????????????????????????? string????? (PROTOCOL=TCP)(SERVICE=orclXDB
???????????????????????????????????????????????? )
max_dispatchers????????????????????? integer???? 5
mts_dispatchers????????????????????? string????? (PROTOCOL=TCP)(SERVICE=orclXDB
???????????????????????????????????????????????? )
mts_max_dispatchers????????????????? integer???? 5

?

问题解决,再用select × from v$session 查看 ,都是dedicated连接了

?

后者指定了服务名,而前者没有。没有指定服务器,大概就造成了oracle实例向listener注册时,
以任何服务名来建立的连接都是使用shared server方式。这是个人理解

?

?

转载