Oracle解决ORA-01034: ORACLE not available问题的办法

 更新时间:2024年02月26日 10:17:45   作者:Kida 的技术小屋  
这篇文章主要给大家介绍了关于Oracle解决ORA-01034: ORACLE not available问题的办法,今天连接oracle出现如下错误,在网查了相关资料说出现ora-01034错误的原因是因为数据库的控制文件没有加在startup mount后,需要的朋友可以参考下

这个…不知道是镜像问题还是配置上有问题,Docker版的Oracle 11g在上次部署完之后已经出现了多次无法访问的情况(就是 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g这个镜像),最后一次修复已经将连接数从150(默认)提升到8000,这次无法访问肯定不是连接数已满的问题。

遇事不要慌,先通过docker exec进入容器内部连接一下oracle数据库,看到的是

ORA-01034: ORACLE not available

这…难道是之前为了修改连接数直接关机导致日志无法归档么?

上网查了些资料,最终通过如下步骤解决的:

  • 先用sqlplus使用sysdba权限访问连接数据库
[oracle@e156e1b777f5 -]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Nov 14 13:36:28 2021
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
  • 查询v$log看看能否正常查询到日志信息
SQL> select * from v$log;
select × from v$log
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
  • 在发现报ORA-01034: ORACLE not available错误后,我们再试试操作resetlogs
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: O
Session ID: 0 Serial number: 0

要注意,这里使用resetlogs方式打开数据库对oracle进行恢复是存在风险的,如果日志文件没有损坏的情况下可以直接恢复就可以了,这次的情况比较麻烦,所以才想用这种方式进行。

  • 既然所有操作都报错了,就先关闭实例
SQL> shutdown immediate;
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
Linux-x86 64 Error: 2: No such file or directory
  • 重新挂载启动
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size                  2213776 bytes
Variable Size            1342179440 bytes
Database Buffers          251658240 bytes
Redo Buffers                7360512 bytes
Database mounted.
  • 重启之后再尝试使用resetlogs打开数据库
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery

这里又是一个ERROR,先不要管它继续下一步操作

  • 这时我们又再查一次v$log

如上图所示,通过v$log得知日志只记录到昨天(11月13日),还好不是生产环境的一天的时间还能够接受。

  • 通过recover database命令进行数据恢复
SQL> recover database until time '2021-11-13 00:00:00'
ORA-10879: error signaled in parallel recovery slave
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/home/oracle/app/oracle/oradata/helowin/systeml.dbf'

嗯…没有头绪还是先“重启”吧

SOL> shutdown;
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SOL> startup
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2213776 bytes
Variable Size            1342179440 bytes
Database Buffers          251658240 bytes
Redo Buffers                7360512 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

这次连启动也报错,真是“一波未平一波又起”。

  • sqlplus再查询一次l日志

既然这样就手动redo一次吧。

  • 执行recover database

执行完了之后再open resetlogs就可以了

SQL> alter database open resetlogs;

Database altered.

为了使操作完全生效决定重启了一下oracle

SQL> shutdown immedate;
SP2-0717: illegal SHUTDOWN option
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SOL> startup;
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2213776 bytes
Variable Size            1342179440 bytes
Database Buffers          251658240 bytes
Redo Buffers                7360512 bytes
Database mounted.
Database opened.

这样就搞定了。

总结

到此这篇关于Oracle解决ORA-01034: ORACLE not available问题的文章就介绍到这了,更多相关ORA-01034:ORACLE not available内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Oracle用户自定义异常实现过程解析

    Oracle用户自定义异常实现过程解析

    这篇文章主要介绍了Oracle用户自定义异常实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 详解Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    详解Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    本篇文章主要介绍了Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 ,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Oracle存储过程游标用法分析

    Oracle存储过程游标用法分析

    这篇文章主要介绍了Oracle存储过程游标用法,结合实例形式分析了游标的使用步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-06-06
  • Oracle如何使用PL/SQL调试存储过程

    Oracle如何使用PL/SQL调试存储过程

    这篇文章主要介绍了Oracle如何使用PL/SQL调试存储过程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Oracle SqlPlus设置Login.sql的技巧

    Oracle SqlPlus设置Login.sql的技巧

    sqlplus在启动时会自动运行两个脚本:glogin.sql、login.sql这两个文件,接下来通过本文给大家介绍Oracle SqlPlus设置Login.sql的技巧,对oracle sqlplus设置相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Oracle SCN与检查点详解

    Oracle SCN与检查点详解

    这篇文章主要介绍了Oracle SCN与检查点的相关内容,涉及SCN的定义,获取方式,以及检查点的相关介绍,需要的朋友可以了解下。
    2017-09-09
  • Oracle参数设置教程之set和reset的实用案例

    Oracle参数设置教程之set和reset的实用案例

    最近在学习oracle,学习中遇到了一些觉着有必要记录下的内容,所以下面这篇文章主要给大家介绍了关于Oracle参数设置教程之set和reset实用案例的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2017-10-10
  • EF 配置Oracle数据库数据库连接字符串的实例

    EF 配置Oracle数据库数据库连接字符串的实例

    下面小编就为大家带来一篇EF 配置Oracle数据库数据库连接字符串的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 教你怎样用Oracle方便地查看报警日志错误

    教你怎样用Oracle方便地查看报警日志错误

    由于报警日志文件很大,而每天都应该查看报警日志(查看有无“ORA-”,Error”,“Failed”等出错信息),故想找到一种比较便捷的方法,查看当天报警日志都有哪些错误。
    2014-08-08
  • ORACLE SQL语句优化技术要点解析

    ORACLE SQL语句优化技术要点解析

    这篇文章主要介绍了ORACLE SQL语句优化技术的相关内容,小编觉得挺不错的,在这里分享给大家,需要的朋友可以参考下。
    2017-10-10

最新评论