暮光の林 发表于 2011-12-22 08:54

ORA-00313: 无法打开日志组

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