今天用系统清理工具把系统垃圾清理了一番,结果在打开oracle 数据库时出现了错误:

ORA-00313: 无法打开日志组 1 (线程 1)
的成员

ORA-00312: 联机日志 1 线程 1:
'D:ORACLEORADATAGOCOMREDO01.LOG'

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: D:ORACLEORADATAORCLREDO01.LOG'

查看D:ORACLEORADATAmyoracleREDO01.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:oracleora92networkadminsqlnet.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 Settings5201314>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

数据库装载完毕。

数据库已经打开。

SQL>

Redo 损坏彻底解决

为了打开数据库,首先想到的是将坏的日志清除掉,但是:

SQL> alter database clear unarchived logfile group 3
;

alter database clear unarchived logfile group 3

*

ERROR 位于第 1 行:

ORA-01624: 线程3的紧急恢复需要日志1

ORA-00312: 联机日志 3 线程 1:
'D:ORACLEORADATARMANREDO03.LOG'

SQL> alter database clear
unarchived logfile group 3 unrecoverable datafile;

alter database clear unarchived logfile group 3 unrecoverable
datafile

*

ERROR 位于第 1 行:

ORA-01624: 线程3的紧急恢复需要日志1

ORA-00312: 联机日志 3 线程 1:
'D:ORACLEORADATARMANREDO03.LOG'

清理日志文件行不通了,只有加入隐含参数,进行不完全恢复了。



不完全恢复

先加入隐含参数

SQL> alter system set
"_allow_resetlogs_corruption"=true scope=spfile ;

系统已更改。

SQL> alter system set
"_allow_terminal_recovery_corruption"=true scope=spfile
;

系统已更改。

SQL> shutdown abort ;

ORACLE 例程已经关闭。

SQL>startup

.....

数据库装载完毕。

ORA-00354: 损坏重做日志块标题

ORA-00353: 日志损坏接近块 51328 更改 1029419 时间

ORA-00312: 联机日志 3 线程 1:
'D:ORACLEORADATARMANREDO03.LOG'

现在开始不完全恢复:

SQL> recover database until cancel;

ORA-00279: 更改 1029419 (在 05/15/2005 01:21:08 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:ORACLEORA92RDBMSARC00078.001

ORA-00280: 更改 1029419 对于线程 1 是按序列 # 78 进行的

指定日志:
{<RET>=suggested | filename | AUTO |
CANCEL}

auto

ORA-00308: 无法打开存档日志 'D:ORACLEORA92RDBMSARC00078.001'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-00308: 无法打开存档日志
'D:ORACLEORA92RDBMSARC00078.001'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS
将出现如下错误

ORA-01194: 文件1需要更多的恢复来保持一致性

ORA-01110: 数据文件 1: 'F:RMANSYSTEM01.DBF'

恢复完成。再用resetlogs打开数据库:

SQL> alter database open
resetlogs ;

ERROR 位于第 1 行:

ORA-03113: 通信通道的文件结束

等待很久,居然报这个错!其实不用怕,恢复已经完成,只要重新打开就可以了。

[转载]ORA-00313:无法打开日志组1(线程 1)的成员_ORA-00312:的更多相关文章

  1. rac 11g_生产库日志组损坏处理

    原创作品,出自 "深蓝的blog" 博客,转载时请务必注明出处,否则有权追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/ar ...

  2. 数据库实例: STOREBOOK > 数据文件/退回字段/重做日志组|管理员

    ylbtech-Oracle:数据库实例: STOREBOOK  > 数据文件/退回字段/重做日志组|管理员 数据文件/退回字段/重做日志组|管理员 1. 数据库实例: STOREBOOK  & ...

  3. 【Oracle】恢复重做日志组

    我们在Oracle的日常运维中,有可能会遇到重做日志组丢失的情况.下面我将模拟丢失不同状态的日志组,并分别给出解决办法: 重做日志有以下几种状态,如下: -  CURRENT:此状态表示正在被 LGW ...

  4. 向nginx发送reopen信号以重新打开日志文件

    先移动日志文件 mv /usr/local/openresty/nginx/logs/access.log /usr/local/openresty/nginx/logs/access.log.201 ...

  5. sqlservr (708) 打开日志文件 C:\Windows\system32\LogFiles\Sum\Api.log 时出现错误 -1032 (0xfffffbf8)

    在windows server 2012 standard上新安装好的SQL Server 2014,查看错误日志,发现此报错 sqlservr (708) 打开日志文件 C:\Windows\sys ...

  6. 【练习】增加日志组数至4组,且每组日志成员大小为50M,每组2个成员。

    1.查看日志组成员路径及日志组大小.状态 SQL> select group#,member from v$logfile; GROUP# MEMBER ---------- --------- ...

  7. 【REDO】删除REDO LOG重做日志组后需要手工删除对应的日志文件(转)

    为保证重新创建的日志组成员可以成功创建,我们在删除日志组后需要手工删除对应的日志文件. 1.查看数据库当前REDO LOG日志相关信息1)查看日志组信息sys@ora10g> select * ...

  8. 添加redo日志组和添加日志组多元化

    查看redo日志组的状态和日志的位置. SQL> 没有被使用,所以切几次日志,组合4已生效. SQL> select * from v$log; GROUP#   THREAD#  SEQ ...

  9. oracle expdp导出时报 ora-39070:无法打开日志文件

    在通过expdp导出命令导出某个用户的对象时出现以下截图错误: ORA-39002:操作无效 ORA-39070:无法打开日志文件 ORA-39087:目录名<directory>无效 该 ...

随机推荐

  1. 转:: 刺鸟:用python来开发webgame服务端(3)

    来源:http://ciniao.me/article.php?id=11 --------------- 刺鸟原创文章,转载请注明出处    在之前的准备工作中,我们已经建立了一个socket服务器 ...

  2. http 状态吗

    100:继续  客户端应当继续发送请求.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应. 101: 转换协议  在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消 ...

  3. 关于微信小程序的开发步骤

    ~~~~包子最近在研究小程序 首先先讲一下小程序一些基本的步骤: 1.登录微信的公众平台,选择小程序,注册一个账号,期间有碰到什么交300块钱的就不要理他,因为我只是做demo,当然,准备上线的企业啥 ...

  4. JavaWeb 之文件上传

    1. 文件上传的要求 1.1 上传对表单的限制 method="post"; enctype="multipart/form-data"; 表单中需要添加文件表 ...

  5. BaseServlet 介绍

    1. BaseServlet 的作用 让一个Servlet可以处理多种不同的请求,不同的请求调用Servlet的不同方法. 2. 实现原理 客户端发送请求时, 必须多给出一个参数, 用来说明要调用的方 ...

  6. JDBC 入门

    1. JDBC 简介 JDBC (Java DataBase Connectivity) 就是 Java 数据库连接, 说白了就是用 Java 语言向 数据库发送 SQL 语句. JDBC 其实是访问 ...

  7. Linux Debian 如何部署 Qt?

    Linux Debian 如何部署 Qt? 在这里以 HelloWorld 为例 目录结构如下: . ├── HelloWorld ├── HelloWorld.sh ├── imageformats ...

  8. C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法(gcc使用zh_CN.GBK,或者zh_CN.UTF-8,VC++使用Chinese_People's Republic of China.936或者65001.)

    转自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/ [在此向原文作者说声谢谢!若有读者看到文章转载时请写该转载地址 ...

  9. el-tree 设置目录树中的某个节点为高亮状态

    现在可以实现,点击某个节点,该节点会红色高亮,那怎么让这个树加载出来的时候 默认某个节点高亮呢?element ui里面带勾选框的可以默认勾选上,这个没有勾选框 其实很简单.element ui的树形 ...

  10. django项目部署在Apache服务器中,静态文件路径的注意点

    django Apache部署静态文件的路径注意点 静态文件放在对应的 app 下的 static 文件夹中 或者 STATICFILES_DIRS 中的文件夹中. 当 DEBUG = True 时, ...