【问题标题】:Oracle Database 12c Connectivity issueOracle Database 12c 连接问题
【发布时间】:2020-07-29 19:35:56
【问题描述】:

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

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

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

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

我在 Internet 上查找了此错误,我得到的解决方案是更改共享池大小,但我无法这样做,因为我无法连接到数据库。谁能帮我解决这个问题。

【问题讨论】:

    标签: oracle database-connection oracle12c


    【解决方案1】:

    您必须在启动数据库之前更新 Oracle 内存参数。您已过度分配内存。

    【讨论】:

    • 你能告诉我在哪里可以找到更新内存参数的文件
    【解决方案2】:

    @daniyal.bashir,您能否从 pfile 或 spfile 以及您的机器 ram 和“vmstat 1 1”输出中发布与内存相关的参数?您提到的错误主要与内存有关,最快的选择是从 pfile 中删除所有内存参数并设置“memory_target=X 字节数”

    谢谢, KK

    【讨论】:

    • 问题已解决,我可以使用 pfile 连接到我的数据库,使用以下命令:startup pfile= /path of pfile
    【解决方案3】:

    有点离题,但也许有人觉得这很有用。

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

    但是spfilexe.ora 文件是二进制的,所以你不能简单地将一个数字换成另一个数字!

    使用这个技巧: 对于:*.sessions=30000 以这种方式进行更改:*.sessions=00300

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-25
      • 2017-02-21
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多