ORA-01109 错误解决

oracle 数据库时出现了错误:SQL> connect / as sysdba;
  已连接。
  SQL> shutdown immediate;
  ORA-01109: 数据库未打开
  
  已经卸载数据库。
  ORACLE 例程已经关闭。
  SQL> startup;
  ORACLE 例程已经启动。
  Total System Global Area 135338868 bytes
  Fixed Size 453492 bytes
  Variable Size 109051904 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 667648 bytes
  数据库装载完毕。
  ORA-00313: 无法打开日志组 1 (线程 1) 的成员
  ORA-00312: 联机日志 1 线程 1: 'C:\ORACLE\ORADATA\ORCL\REDO01.LOG'
  查看C:\ORACLE\ORADATA\myoracle\REDO01.LOG还在,但是REDO02.LOG,REDO03.LOG被误删了.
  赶紧换个例程OEMREP试试,结果还是一样的错误!
  蒙了,难道要重装数据库不成?有什么办法可以解决这个问题呢?
  
  解决办法:
  SQL> shutdown immediate;
  ORA-01109: 数据库未打开
  已经卸载数据库。
  SQL> startup mount;
  ORACLE 例程已经启动。
  SQL>select * from v$log;
  GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
  ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
   1 1 0 104857600 1 NO UNCURRENT 670680 07-12月-07
   2 1 15 104857600 1 NO unactive 696119 07-12月-07
   3 1 0 104857600 1 NO Unactive 650182 07-12月-07
  已选择3行。
  alter database clear unarchived logfile group 1;
  数据库已经更改.
  alter database clear unarchived logfile group 2;
  数据库已经更改.
  alter database clear unarchived logfile group 3;
  数据库已经更改.
  SQL>shutdown;
  已经卸载数据库。
  ORACLE 例程已经关闭。
  SQL>startup;
  ORACLE 例程已经启动。
  Total System Global Area 135338868 bytes
  Fixed Size 453492 bytes
  Variable Size 109051904 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 667648 bytes
  数据库装载完毕。
  数据库已经打开。
  问题解决!
  但是,在对myoracle 例程进行同样的操作后,也不知道是哪里出了问题,
  SQL>startup;
  ORACLE 例程已经启动。
  Total System Global Area 135338868 bytes
  Fixed Size 453492 bytes
  Variable Size 109051904 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 667648 bytes
  数据库装载完毕。
  ORA-03113: 通信通道的文件结束
  在网上查找资料,出现这样的问题原因很多,一般是网络不通,或者是init.ora、C:\oracle\ora92\network\admin\sqlnet.ora或tnsnames.ora有问题.显然这些不适合我.我的两个例程,一个可以正常使用,另外一个有问题的!
  在我关闭数据库后,重新打开,执行:
  SQL>connect "/as sysdba";
  SQL>select * from scott.emp;
  ORA-27101 shared memory realm does not exist -
  出现这个错误也有很多解释,一般要检查init.ora文件的内存配置是否有问题,但是在没有打开数据库的时候执行命令,也会出现这样的错误提示,我的属于后者,是由于没有挂载数据库造成的,这里提醒一下.
   后来又乱琢磨了一回,还出现了错误:
  ORA-24324: 未初始化服务句柄
  ORA-01041: 内部错误,hostdef 扩展名不存在
  这是越来越乱了,无奈之下,只好重头再来整理一遍,从重新配置日志文件开始,操作一样,但是奇迹出现了,错误消失了,也不提示通信通道文件结束了,数据库正常了,呵呵,但是很晕!
  
  解决问题知识整理:
  首先,执行下面的语句看看group1是不是current日志组
  select * from v$log;
  如果被删除的日志不是当前日志组的成员,比较简单
  alter database clear logfile group 1;
  如果你的库是非归档的,或许要用下面的语句
  alter database clear unarchived logfile group 1;
  如果是当前日志组损坏,但是数据库是正常关闭的,上面的办法也可以使用
  如果日志组中有活动的事务,那么可能需要利用备份来恢复了:过程如下:
  解决过程:Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.
  C:\Documents and Settings\5201314>sqlplus /nolog
  SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 6月 20 11:19:52 2008Copyright (c) 1982, 2005, Oracle. All rights
  reserved.
  SQL> conn sys/dd as sysdba
  已连接。
  SQL> startup mount
  ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
  SQL> recover database until time '2008-06-19 13:45:02';
  
  完成介质恢复。
  SQL> alter database open resetlogs;
  数据库已更改。
  SQL> shutdown immediate;
  数据库已经关闭。
  已经卸载数据库。
  ORACLE 例程已经关闭。
  SQL> startup
  ORACLE 例程已经启动。
  Total System Global Area 205520896 bytes
  Fixed Size 1248092 bytes
  Variable Size 79692964 bytes
  Database Buffers 117440512 bytes
  Redo Buffers 7139328 bytes
  数据库装载完毕。
  数据库已经打开。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java.sql.SQLException: ORA-01109: 数据库未打开。 ORA-01109是一个Oracle数据库错误代码,表示数据库无法在当前状态下打开。这个错误通常发生在以下几种情况下: 1. 数据库实例并未启动: 在使用Java连接Oracle数据库时,首先需要确保数据库实例已经启动。如果数据库实例没有运,则会导致ORA-01109错误。请检查数据库实例是否已经启动,并尝试重新连接。 2. 数据库正在进恢复操作: 如果数据库正在进恢复操作,那么在恢复操作完成之前是无法打开数据库的。请等待数据库恢复完成后再进连接。 3. 数据库文件损坏: 可能由于文件系统错误或其他原因,数据库文件损坏导致无法打开数据库。在这种情况下,可能需要使用Oracle数据库的恢复工具来修复数据库文件。 4. 数据库处于不可恢复的状态: 如果数据库处于不可恢复的状态,那么无法打开数据库。可能需要进数据库的恢复操作来解决此问题。 解决该问题的方法包括: 1. 确保数据库实例已经启动。 2. 确保数据库没有进恢复操作,并等待恢复操作完成。 3. 检查数据库文件是否损坏,并通过数据库恢复工具修复损坏的文件。 4. 如果数据库处于不可恢复的状态,可以尝试进数据库的恢复操作。 总之,ORA-01109错误是表示数据库无法在当前状态下打开的错误。要解决这个问题,需要检查数据库实例状态,修复可能的文件损坏,并确保数据库处于可恢复的状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值