您的位置:首页 > 数据库 > Oracle

Linux下oracle 10g 日志文件丢失

2009-11-20 13:40 405 查看
 ORA-00313: 无法打开日志组 1 (线程 1) 的成员

今天用系统清理工具把系统垃圾清理了一番,结果在打开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'; /*恢复*/

/*(recover database until cancel;alter database resetlogs;重建日志文件),另外的写法,不知哪个对.*/

完成介质恢复。

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

数据库装载完毕。

数据库已经打开。

SQL>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息