出现ORA-01034和ORA-27101的原因

本文介绍了解决Oracle数据库启动时出现ORA-01034和ORA-27101错误的方法,包括检查监听状态、设置实例名及使用正确方式启动数据库等步骤。

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

 

还有就是可能是登录数据库后,不正常的退出,比如直接关掉窗口,而这时数据库里有未完成的动作,再次登录时就会提示“insufficient privileges”的报错,SQL>shutdown immediate;   SQL>startup;就恢复正常了。

 

最后可能你虚拟机的共享内存问题,看下数据库的配置文件是否对应了512M内存?还是你设置的大了,本身给的不足?

方法/步骤

  1. 先看oracle的监听和oracle的服务是否都启动了。

    启动oracle监听:cmd命令行窗口下,输入lsnrctl start,回车即启动监听。

  2. 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“orcl”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl

  3. 再输入sqlplus  /nolog,回车

    再输入 conn / as sysdba;回车

  4. 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。

  5. 过几秒钟等命令运行完成,就能连接了。这个时候,可以输入"select * from user_tables;"测试一下,看是否有查询结果。

ORA-01034 ORA-27101Oracle 数据库中常见的错误,通常在使用 SQL*Plus 或其他 Oracle 客户端工具时出现。这些错误与数据库实例的状态或环境配置相关。 ### 错误解释 - **ORA-01034: ORACLE not available** 表示当前无法连接到 Oracle 实例。这通常是由于数据库实例未启动、环境变量配置不正确或监听器未运行所导致的。 - **ORA-27101: shared memory realm does not exist** 表示 Oracle 无法找到用于连接数据库实例的共享内存区域。这通常发生在数据库实例未启动的情况下,或者 `ORACLE_SID` 环境变量设置不正确。 ### 解决方法 #### 1. 检查数据库实例是否已启动 确保 Oracle 数据库实例正在运行。可以通过以下命令检查: ```bash sqlplus / as sysdba SQL> startup ``` 如果数据库尚未启动,执行 `startup` 命令来启动它。如果数据库已经启动但仍然无法连接,则可能需要检查日志文件以获取更多信息。 #### 2. 验证环境变量设置 确保所有必要的环境变量(如 `ORACLE_HOME`、`ORACLE_SID` `LD_LIBRARY_PATH`)都已正确设置。例如: ```bash export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 export ORACLE_SID=orcl export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` 其中 `ORACLE_SID` 应该匹配你想要连接的数据库实例名称。 #### 3. 检查监听器状态 确保 Oracle 监听器 (`LISTENER`) 正在运行。可以使用以下命令检查监听器状态并启动它: ```bash lsnrctl status lsnrctl start ``` #### 4. 使用正确的 PDB 名称 如果你使用的是多租户架构(Multitenant Architecture),确保你在连接时指定了正确的可插拔数据库(PDB)。例如: ```bash sqlplus username/password@pdb1 ``` 此外,可以在 SQL*Plus 中切换到指定的 PDB: ```sql ALTER SESSION SET CONTAINER = pdb1; ``` #### 5. 检查 Oracle 服务状态 在 Windows 平台上,确保 Oracle 服务(如 `OracleService<ORACLE_SID>` `OracleOraDB19Home1TNSListener`)正在运行。可以使用服务管理器 (`services.msc`) 来查看启动这些服务。 #### 6. 检查磁盘空间系统资源 ORA-27101 错误有时也可能是由于系统资源不足(如共享内存或临时文件空间)引起的。确保系统有足够的磁盘空间可用内存。 #### 7. 重新安装或修复 Oracle 客户端 如果问题仍然存在,尝试重新安装或修复 Oracle 客户端软件。确保客户端版本与数据库版本兼容 [^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值