当前位置: 代码迷 >> 综合 >> ORA-01034 ORA-27101完美解决方案
  详细解决方案

ORA-01034 ORA-27101完美解决方案

热度:22   发布时间:2023-11-18 05:49:23.0

前言:

转载请附上连接,本帖原创请勿照抄。

 

出现ORA-01034和ORA-27101的原因是多方面的:

  1.主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正常启动,共享内存并没有分配给当前实例.所以,通过设置实例名,再用操作系统身份验证的方式,启动数据库。这样数据库就正常启动了,就不会报ORA-01034和ORA-27101两个启动异常了。

  2.  ....\dbhome_1\database\INITorcl.ORA、....\dbhome_1\NETWORK\ADMIN\listener.ora、....\dbhome_1\NETWORK\ADMIN\sqlnet.ora、....\dbhome_1\NETWORK\ADMIN\tnsnames.ora 配置出错

  3.监听器异常启动不了(主要问题在 2. 配置文件异常所以才会导致监听无法启动)

  4.检查环境变量配置是否正确(一般发生在重新卸载安装数据库后路径问题 自行百度查找具体方法)

解决方案

  1.一般情况按照一下配置即可解决

      1.1  打开cmd 输入                  lsnrctl start
      1.2  填写自己的实例名          set ORACLE_SID=orcl  //一般为orcl
      1.3  再输入                   sqlplus  /nolog
      //--------会出现一些系统信息
      1.4  再输入                   conn / as sysdba
      --------会出现已连接
      1.5  输入                     start
      1.6  输入                     startup
      //--------这里一般会出现LISTENER

      //--------ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'

      1.7  修改文件配置属性(....\dbhome_1\database\INITorcl.ORA)

            *.local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))'

            注意配置过程中出现空格或者符号没注意打错了也会出现,需要注意细节。

      1.8  startup pfile='E:\app\product\11.2.0\dbhome_1\database\INITorcl.ORA'

           出现数据库已经打开 则关闭现有的PLSQL SQLPLUS等 重新打开一个数据库连接工具重新连接就可以了

  2.如果以上重新连接还是报错请往下看(下面主要配置的是ora文件)(HOST值可以试计算机名、localhosr、127.0.0.1这三种)

      直接复制粘贴请注意文件路径,路径不同注意更改!配置完记得重启Oracle服务!

      2.1  将1.7中的(HOST = 127.0.0.1)修改为(HOST = 自己的计算机名)(我的电脑右键属性可以看到自己电脑的名字)

      2.2  修改tnsnames.ora文件 HOST 

            2.2.1  将 HOST 值改为计算机名(注意属性配置路径)

            ORCL =
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 自己的计算机名)(PORT = 1521))
                )
                (CONNECT_DATA =
                  (SERVICE_NAME = ORCL)
                )
              )

      2.3  修改listener.ora文件 HOST 

            2.3.1  将 HOST 值改为计算机名(注意属性配置的路径)

           SID_LIST_LISTENER =

             (SID_LIST =

               (SID_DESC =

                 (SID_NAME = CLRExtProc)

                 (ORACLE_HOME = E:\app\product\11.2.0\dbhome_1)

                 (PROGRAM = extproc)

                 (ENVS = "EXTPROC_DLLS=ONLY:E:\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")

               )

           (SID_DESC =    

                       (GLOBAL_DBNAME = ORCL)    

                       (ORACLE_HOME =  E:\app\product\11.2.0\dbhome_1)        

                       (SID_NAME = ORCL)    

                   ) 

             )

 

           LISTENER =

             (DESCRIPTION_LIST =

               (DESCRIPTION =

                 (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

               )

               (DESCRIPTION =

                 (ADDRESS = (PROTOCOL = TCP)(HOST = 自己的计算机名)(PORT = 1521))

               )

             )

 

           ADR_BASE_LISTENER = E:\app\

      2.4  重启oracle服务并尝试重新连接

  3.如果还没能成功请尝试重启监听看能不能连接成功

      3.1  打开....\dbhome_1\BIN\LSNRCTL.EXE

      3.2  先输入stop关闭监听

      3.3  在输入start打开监听 

      3.4  连接SQL plus 或者PL SQL查看是否解决问题

 

 

 

 

  

  相关解决方案