早上海南的同事打电话说他们的审计库连不上了启动也报错,问了下最近做了些什么操作,答复是之前添加了一次磁盘。 猜测是添加磁盘启动后/dev/sdx顺序出错,或者没有正常的关闭数据库导致数据库无法正常启动。
远程登过去,先看了一下alert日志:
发现有如下报警:
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
Error 704 happened during db open, shutting down database
USER (ospid: 6460): terminating the instance due to error 704
Instance terminated by USER, pid = 6460
ORA-1092 signalled during: ALTER DATABASE OPEN...
opiodr aborting process unknown ospid (6460) as a result of ORA-1092
Tue Feb 23 10:59:31 2016
ORA-1092 : opitsk aborting process

尝试启动一次数据库:
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup mount;
ORACLE instance started.
 
Total System Global Area  4728872960 bytes
Fixed Size            1314156  bytes
Variable Size          163578516  bytes
Database Buffers      1019898880 bytes
Redo Buffers            6004736  bytes
Database mounted.
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
Process ID: 2056
Session ID: 128 Serial number: 7

发现报的错和alert日志显示的一样。
这个错大概是system表空间里面的核心表被删除了,所以数据库启动不起来。这里,如果没有备份的话,这个就不能用常规的手段启动了。

首先去找到报ORA-00704的原因:
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup mount;
ORACLE instance started.
 
Total System Global Area  4728872960 bytes
Fixed Size            1314156  bytes
Variable Size          163578516  bytes
Database Buffers      1019898880 bytes
Redo Buffers            6004736  bytes
Database mounted.
SQL> alter session set sql_trace=true;
SQL> select value from v$diag_info where name='Default Trace File';

VALUE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/iscba/iscba/trace/iscba_ora_22821.trc

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
Process ID: 2176
Session ID: 128 Serial number: 7

然后查看iscba_ora_22821.trc:

Trace file /u01/app/oracle/diag/rdbms/iscba/iscba/trace/iscba_ora_22821.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2/db_1
System name:    Linux
Node name:    h-badb-01
Release:    2.6.32-431.el6.x86_64
Version:    #1 SMP Sun Nov 10 22:19:54 EST 2013
Machine:    x86_64
VM name:    VMWare Version: 6
Instance name: iscba
Redo thread mounted by this instance: 1
Oracle process number: 17
Unix process pid: 22821, image: oracle@h-badb-01 (TNS V1-V3)

*** 2016-02-25 10:41:03.622
*** SESSION ID:(202.3) 2016-02-25 10:41:03.622
*** CLIENT ID:() 2016-02-25 10:41:03.622
*** SERVICE NAME:() 2016-02-25 10:41:03.622
*** MODULE NAME:(sqlplus@h-badb-01 (TNS V1-V3)) 2016-02-25 10:41:03.622
*** ACTION NAME:() 2016-02-25 10:41:03.622

。。。省略N多字。

发现最后又如下提示:
=====================
PARSE ERROR #139799411328680:len=56 dep=1 uid=0 oct=3 lid=0 tim=1456368102317169 err=942
select order#,columns,types from access$ where d_obj#=:1
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist

*** 2016-02-25 10:41:42.317
USER (ospid: 22821): terminating the instance due to error 704

*** 2016-02-25 10:41:43.413
EXEC #139799435394504:c=309952,e=2052517,p=57,cr=758,cu=0,mis=0,r=0,dep=0,og=1,plh=0,tim=1456368103413294
ERROR #139799435394504:err=1092 tim=1456368103413356

这个地方就能确定,是缺失 access$ 造成的数据库启动不起来。
为了解决问题,我们只有用非常规的手段来自己创建这个表,来进行恢复,步骤如下:
1.启动数据库到upgrade状态
SQL> startup  upgrade
ORACLE instance started.
 
Total System Global Area  4728872960 bytes
Fixed Size            1314156  bytes
Variable Size          163578516  bytes
Database Buffers      1019898880 bytes
Redo Buffers            6004736  bytes
Database mounted.
Database opened.

2.创建access$ 和相关的索引
SQL> create table access$
  2  ( d_obj#        number not null,
  3    order#        number not null,
  4    columns       raw(126),
  5    types         number not null)
  6    storage (initial 10k next 100k maxextents unlimited pctincrease 0)
  7  /
 
Table created.
 
SQL> create index i_access1 on
  2    access$(d_obj#, order#)
  3    storage (initial 10k next 100k maxextents unlimited pctincrease 0)
  4  /
 
Index created.
注意:创建语句可以在$ORACLE_HOME/RDBMS/ADMIN/dcore.bsq中找到

3.重启数据库
QL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
 
Total System Global Area  4728872960 bytes
Fixed Size            1314156  bytes
Variable Size          163578516  bytes
Database Buffers      1019898880 bytes
Redo Buffers            6004736  bytes
Database mounted.
Database opened.

4.检查状态并用tnsname去连接
select status from v$instance;
sqlplus username/password@TNSNAMES

解决报错 ora-00704 ora-00604 ora-00942 启动不了数据库问题的更多相关文章

  1. vue 解决报错1

    [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available ...

  2. 解决报错:import sun.misc.BASE64Decoder无法找到

    解决报错:import sun.misc.BASE64Decoder无法找到 2017年09月29日 16:03:26 chaoyu168 阅读数:2116 标签: sun.misc.BASE64De ...

  3. 【整理】解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function https://www.cnblogs.com/jaso ...

  4. (转)coures包下载和安装 可解决报错ImportError: No module named '_curses'

    原创文章,转载请注明出处. coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 UNIX 的系统(包括Linux)的标准部分,而且 ...

  5. 解决报错:axios is not defined

    好家伙,来解决报错:axios is not defined 写前端嘛,修bug,不寒颤 进入页面一片空白 来看看报错: 1.axios在安装时:npm install axios --save-de ...

  6. Springboot连接数据库 (解决报错)

    好家伙,来解决报错 1.新建项目时, 将SQL的" Spring Date 'jdbc' "点上 2.使用idea快速创建springboot项目时会出现连接不到服务器的情况 这里 ...

  7. Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程

    [案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结一个恢复的问题,11.2.0.3版本,非归档,大概是rm掉current ...

  8. 【Linux】 解决报错: ImportError: libSM.so.6: cannot open shared object file: No such file or directory

    centos7 +  python3.6.4 我使用 pip3 install opencv-python 安装了opencv-python  之后,在使用 import cv2  报错如下 报错原因 ...

  9. window安装Scrapy———解决报错问题

    系统是WIN10 64位Python是3.5.2今天安装pip install Scrapy  来安装发现报错Microsoft Visual C++ 14.0 is required 检查发现电脑中 ...

  10. 【PHP】 解决报错:Error: php71w-common conflicts with php-common-5.4.16-43.el7_4.x86_64

    背景: 手动安装的PHP7 环境 问题:在安装扩展的时候.无论输入 php-*  来安装任何扩展.都会报错 Error: php71w-common conflicts with php-common ...

随机推荐

  1. Eclipse启动Tomcat时server.xml和content.xml自动还原问题

    当我们在处理中文乱码或是配置数据源时,我们要修改Tomcat下的server.xml和content.xml文件. 但是当我们修改完后重启Tomcat服务器时发现xml文件又被还原了,修改无效果. 为 ...

  2. effective java 学习心得

    目的 记录一下最主要学习心得,不然凭我这种辣鸡记忆力分分钟就忘记白看了... 用静态工厂方法代替构造器的最主要好处 1.不必每次都创建新的对象 Boolean.valueOf Long.valueOf ...

  3. sql注入的基本防范手段

    基本的sql注入防御手段,概括来讲就是权限控制和关键词过滤. 防御sql注入 ============================================================= ...

  4. 阿里提前批校招内推offer经历

    经过一个半月的阿里内推面试,今天终于收到了阿里的offer邮件 .阿里的内推面试一共有四轮,本人是7月19号投的内推邮件,8月28号收到了offer的邮件.首先本人谈谈内推的看法.内推是公司招聘人才的 ...

  5. 信息安全比赛总结(21ic转帖)

    我们的题目是基于这个ZedBoard的__视频流的人脸识别识别的算法采用的是PCA,,但是在后期的调试和实验中发现,,PCA的效果很容易受到环境,比如光照强度,背景,摄像头像素等影响:如果后期的改进的 ...

  6. 关于firefox对font awesome本地环境无法加载问题

    问题描述 昨天尝试使用font awesome加载字体图标,直接在本地引入相关文件,测试发现图标在chrome和IE环境支持,但是在firefox上怎么都显示不出来. 解决方法 通过测试发现通过htt ...

  7. 分分钟教你从根本上认识Struts2框架

    在了解Struts2之前我们先来聊聊Struts1,我们都知道在很长的一段时间内,所有的MVC框架中,Struts1他是处于一个超级大咖的地位,无论是从市场角度和使用的用户的数量这个角度而言,Stru ...

  8. Python学习笔记—Python基础1 介绍、发展史、安装、基本语法

    第一周学习笔记: 一.Python介绍      1.Python的创始人为吉多·范罗苏姆.1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言 ...

  9. jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)

    今天学习jQuery,看到nth-child(even)用法,特意找了下这个选择器的用法,在CSS3标准中,用法很强大. 对此,我把CSS3标准中nth-child()用法大致介绍下: CSS3伪类选 ...

  10. final修饰符

    final本身的含义是"最终的,不可变的",它可以修饰非抽象类,非抽象方法和变量.注意:构造方法不能使用final修饰,因为构造方法不能被继承,肯定是最终的. final修饰的类: ...