ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist的原因分析

简介:         今天突然接到同事电话,说oracle数据库连接不上了,我远程过去用pl/sql developer登录,提示ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist.意思是oracle无法使用,共享内存领域不存在。

        今天突然接到同事电话,说oracle数据库连接不上了,我远程过去用pl/sql developer登录,提示ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist.意思是oracle无法使用,共享内存领域不存在。

        马上感觉到数据库应该没启动。

       立马执行如下操作:

        1.sqlplus /nolog

        2.conn /as sysdba

        3.startup

        发现oracle报错,具体如下:

       ORA-04031: unable to allocate 68648 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","KTI-UNDO")意思是在共享内存中无法分配足够的空间。这样看来应该是初始化参数出问题了。马上询问同事,是否改了参数,得到了肯定的答案。

       我们来看一下oracle默认启动的顺序:

       1、直接在默认路径下查找spfileSID.ora --(spfile)

            如果没有再查找2

       2、直接在默认路径下查找spfile.ora      

            如果没有再查找3

       3、直接在默认路径下查找initSID.ora --(pfile)

             如果还没有 就会报错……

        马上到oracle的安装路径E:\app\Administrator\product\11.2.0\dbhome_1\database下面查找,spfilesid.ora和initsid.ora都存在。

       这样看来,出问题的肯定是spfilesid.ora了。

       尝试startup pfile='E:\app\Administrator\product\11.2.0\dbhome_1\database\initorcl.ora',成功启动数据库。

       接下来赶紧执行create spfile from pfile ='E:\app\Administrator\product\11.2.0\dbhome_1\database\initorcl.ora'; 提示文件已创建

       再通过shutdown immediate和startup,验证了一下,oracle数据库可以成功关闭和启动了。

      通过这次经历,我们不难看出,系统参数并不是修改的越大越好,系统参数值过大,很可能会造成内存空间不够,从而无法启动数据库。只能通过pfile启动数据库,然后再创建spfile。这样下来有些系统参数就会被改成pfile文件中的值了。可以通过alter system set来重新更改参数的值。在确保参数值合理,修改完之后,能够正常重启服务器的情况下,也可以通过create pfile from spfile来更改pfile,从来保证pflie的参数值和spfile的参数值统一,避免下次再通过pfile启动数据库时,又造成系统参数的值被更改。

     

      

目录
相关文章
|
5月前
|
SQL Oracle 关系型数据库
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
56 0
|
SQL Oracle 关系型数据库
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
535 0
Oracle数据库ORA-12516:“listener could not find available handler with matching protocol stack!“问题解决方法
|
Oracle 关系型数据库 Linux
oracle for linux安装报错 file /home/oracle/.Xauthority does not exist
      今天,一新手学oracle,安装完oracle数据库软件后,执行dbca时报错,核心错误是: file /home/oracle/.Xauthority does not exist 然后,使用oracle用户登录数据库...
4630 0
|
Oracle 关系型数据库 Linux
|
Oracle 关系型数据库 数据库
RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
在使用rman duplicate复制standby数据库的时候,由于standby数据库实例必须处于非mount状态,所以主数据库直接连接是会报错的,需要在standby数据库服务上的监听器上配置静态的服务名,如下:$GRID_HOME/network/admin/listener.
1466 0
|
SQL Oracle 关系型数据库
Oracle service name与instance name 不一致ORA-27101: shared memory realm does not exist
1. 今天在客户端连接服务端时报如下错误 [oracle@asm admin]$ sqlplus sys/xxxx@orcl as sysdba SQL*Plus: Release 11.
992 0
|
SQL Oracle 关系型数据库
【Oracle】-【权限-ORA-04043】- ORA-04043: object "SYS"."V_$DATABASE" does not exist
用非dba账号(但赋予了DBA角色)登录一个新的10g数据库想看下版本号, SQL> desc v$instance; ERROR: ORA-04043: object "SYS"."V_$INSTANCE" does not exist 奇怪,之前有个9i的库,同样的账号就可以查看呢??? 分析: 这里显示的是"SYS"."V_$INSTANCE"对象不存在,我们知道,当账户没有某个对象的权限时,查询该对象,可能返回的就是对象不存在的错误(我觉得有时还是有点歧义,或者说有点误导的)。
1234 0