登陆oracle11g 报错 ORA-01034 ORA-27101 进程 ID: 0 会话 ID: 0 序列号: 0

本文详细介绍了解决Oracle 11g在登录时遇到ORA-01034和ORA-27101错误的步骤,包括清除事件查看器中的应用程序事件,使用SQL*Plus命令进行数据库的启动、关闭操作,以及如何解决未初始化服务句柄的错误。通过遵循这些步骤,可以有效解决Oracle服务监听失败的问题。
登陆oracle11g 报错 ORA-01034 ORA-27101 进程 ID: 0 会话 ID: 0 序列号: 0
不知道什么情况,重启了下电脑,oracle登陆不上去。服务已启动,用PLSQL连接提示监听失败。
可能的原因是未正常关闭oracle


请输入用户名:  vin
输入口令:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0
解决:在事件查看器->应用程序中清除所有事件。然后CMD 两行命令搞定


C:\Documents and Settings\Administrator>SQLPLUS / AS SYSDBA


SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 20 10:04:42 2013


Copyright (c) 1982, 2010, Oracle.  All rights reserved.


已连接到空闲例程。


SQL> STARTUP
ORACLE 例程已经启动。


Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             293601744 bytes
Database Buffers          234881024 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
数据库已经打开。
SQL>
之前的解决步骤


Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.


C:\Documents and Settings\Administrator>sqlplus


SQL*Plus: Release 11.2.0.1.0 Production on 星期三 12月 4 15:50:19 2013


Copyright (c) 1982, 2010, Oracle.  All rights reserved.


请输入用户名:  vin
输入口令:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0


C:\Documents and Settings\Administrator>sqlplus /nolog


SQL*Plus: Release 11.2.0.1.0 Production on 星期三 12月 4 15:56:53 2013


Copyright (c) 1982, 2010, Oracle.  All rights reserved.


SQL> shutdown immediate
ORA-01012: not logged on
SQL> conn / as sysdba
ERROR:
ORA-28056: Writing audit records to Windows Event Log failed
ORA-28056: Writing audit records to Windows Event Log failed
清空事件 设置-控制面板-管理工具-事件查看器,右键应用程序清除所有事件。


SQL> conn / as sysdba
已连接到空闲例程。
SQL> shutdown immediate
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup
ORACLE 例程已经启动。


Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             293601744 bytes
Database Buffers          234881024 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
数据库已经打开。
如果出现
ORA-24324: 未初始化服务句柄按照此步骤。


SQL> conn / as sysdba
已连接到空闲例程。
SQL> shutdown immediate
ORA-24324: 未初始化服务句柄
ORA-24323: 不允许此值
ORA-01090: shutdown in progress - connection is not per
SQL> startup
ORA-01031: insufficient privileges
SQL> quit
已断开连接


C:\Documents and Settings\Administrator>sqlplus /nolog


SQL*Plus: Release 11.2.0.1.0 Production on 星期日 2月 9


Copyright (c) 1982, 2010, Oracle.  All rights reserved.


SQL> conn sys/system as sysdba
已连接到空闲例程。
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。


Total System Global Area  640286720 bytes
Fixed Size                  1376492 bytes
Variable Size             276827924 bytes
Database Buffers          356515840 bytes
Redo Buffers                5566464 bytes
数据库装载完毕。
数据库已经打开。
本条目发布于4 十二月, 2013。属于Oracle分类。
<think>嗯,用户遇到了ORA-01034错误,提示“ORACLE not available”,需要找到原因和解决方法。首先,我得回忆一下这个错误的常见原因。通常,ORA-01034意味着Oracle实例没有启动,或者数据库没有正确挂载。可能的情况包括实例未启动、参数文件问题、内存分配不足或者存储路径权限错误。 用户之前提供的引用中有提到一些相关的错误处理,比如ORA-39077、ORA-31638,以及使用DBMS_REPAIR处理坏块,但这些可能和ORA-01034关系不大。不过,引用[2]中提到了catproc.sql,这可能和数据库初始化有关,但需要结合具体情况来看。 接下来,我需要一步步分析可能的原因。首先检查实例状态,使用SQL*Plus连接看看是否能够连接到空闲实例。如果实例未启动,尝试启动数据库,可能会遇到更深层次的问题,比如参数文件错误。如果参数文件路径不正确或者内容有误,实例启动会失败。此时需要检查spfile或pfile是否存在,权限是否正确。 另外,控制文件损坏或丢失也会导致数据库无法挂载。需要查看告警日志,这是关键的一步,因为日志里会详细记录启动过程中的错误信息。例如,如果显示无法锁定共享内存段,可能是内存问题或者实例已经运行。还有存储路径权限问题,比如Oracle用户对数据文件、控制文件、重做日志的目录没有读写权限,也会导致启动失败。 在解决方案中,应该分步骤指导用户检查实例状态,启动数据库,检查参数文件,查看告警日志,验证存储权限,处理控制文件问题,以及恢复备份等。同时,要提醒用户处理过程中的注意事项,比如备份的重要性,权限设置,以及可能需要的专业支持。 可能用户在实际操作中会遇到参数文件配置错误,或者存储权限问题,这些都是常见的原因。需要确保用户按照步骤检查每个环节,尤其是告警日志的内容,这能提供最直接的错误线索。另外,如果控制文件损坏,可能需要从备份恢复,或者重新创建控制文件,这需要一定的数据库管理经验。 最后,生成的相关问题应该涵盖ORA-01578(坏块错误)、ORA-12514(监听问题)、ORA-00942(表或视图不存在)、ORA-00205(控制文件错误),这些是用户可能进一步会遇到的问题,帮助用户扩展知识面。</think>### ORA-01034 "ORACLE not available" 解决方案 #### 错误原因分析 1. **数据库实例未启动** Oracle实例未处于`OPEN`状态,可能处于`NOMOUNT`或`MOUNT`阶段,甚至完全未启动[^1]。 2. **参数文件损坏或路径错误** `spfile`或`pfile`中的配置参数错误(如内存分配过大、控制文件路径错误)会导致实例无法启动[^2]。 3. **存储权限问题** Oracle用户对数据文件、控制文件或重做日志文件的存储路径缺乏读写权限。 4. **控制文件丢失/损坏** 控制文件损坏或路径错误会导致数据库无法挂载到`MOUNT`状态[^3]。 --- #### 逐步修复方法 ##### 步骤1:检查实例状态 ```sql sqlplus / as sysdba SQL> SELECT status FROM v$instance; ``` - 若返回`ORA-01034`,说明实例未启动 ##### 步骤2:尝试启动数据库 ```sql SQL> STARTUP ``` 观察报错信息: - **ORA-01078**: 参数文件问题(跳转至步骤3) - **ORA-00205**: 控制文件问题(跳转至步骤4) - **ORA-27101**: 共享内存段问题(检查内存配置) ##### 步骤3:验证参数文件 ```bash # 检查默认参数文件路径 ls $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora # 手动指定pfile启动 SQL> STARTUP PFILE='/path/to/init.ora' ``` 若提示内存不足,调整参数: ```sql SQL> CREATE SPFILE FROM PFILE; SQL> STARTUP ``` ##### 步骤4:检查告警日志 ```bash tail -100f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_*.log ``` 重点关注: - 控制文件访问错误 - 数据文件路径错误 - 内存分配失败 ##### 步骤5:验证存储权限 ```bash chown -R oracle:oinstall /u01/app/oracle/oradata chmod -R 775 /u01/app/oracle/oradata ``` ##### 步骤6:处理控制文件问题 ```sql SQL> STARTUP NOMOUNT; SQL> ALTER DATABASE MOUNT; -- 若失败则重建控制文件(需备份) SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS...; ``` ##### 步骤7:从备份恢复 ```bash rman target / RMAN> RESTORE CONTROLFILE FROM '/backup/controlfile.bkp'; RMAN> RECOVER DATABASE; RMAN> ALTER DATABASE OPEN; ``` --- #### 关键注意事项 1. **备份优先原则** 操作前务必备份现有文件(参数文件、控制文件等)[^4] 2. **权限最小化** Oracle用户需要以下权限: ```bash ulimit -a | grep 'open files' # 建议>1024 ``` 3. **专业支持阈值** 若涉及核心数据文件损坏,建议联系Oracle技术支持 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值