Oracle Database 12c连接问题

时间:2015-12-02 08:12:05

标签: oracle database-connection oracle12c

我已经在我的oracle linux 6.5机器上成功安装了oracle 12c,并且我能够使用以下命令连接到数据库:

$ Sqlplus / as sysdba
  Connected to idle instance
SQL> startup;
SQL> Connected

但现在问题是当我尝试使用'startup'命令启动我的数据库时,它给了我这个错误信息

  

ORA-04031:无法分配760字节的共享内存(“共享池”,“未知对象”,“sga堆(1,0)”,“ksdhng:els blkrs cache”)

我已经在互联网上查找了这个错误,我得到的解决方案是改变共享池大小,但我无法这样做,因为我无法连接到数据库。任何人都可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

您必须在启动数据库之前更新Oracle内存参数。你有超过分配的内存。

答案 1 :(得分:0)

@ daniyal.bashir,你能从pfile或spfile和你的机器ram和“vmstat 1 1”输出你的内存相关参数吗?你提到的错误主要与内存有关,最快的选择是从pfile中删除所有内存参数并设置“memory_target = X number of bytes”

谢谢, KK

答案 2 :(得分:0)

话题不大,但也许有人觉得有用。

如果您玩过alter system set processes, sessions, transactions (etc.),但现在由于值太高而得到ORA-04031: unable to allocate ...,最快的解决方法是转到spfilexe.ora(或类似名称)并手动更正值

但是spfilexe.ora文件是二进制文件,因此您不能简单地将一个数字更改为另一个数字!

使用此技巧: 为:*.sessions=30000进行以下更改:*.sessions=00300

文件大小和校验和将保持不变,而以后您将能够startup数据库并通过SQL查询更正值。

如果某件事很愚蠢但有效,那不是愚蠢吧? ;-)