今天用系统清理工具把系统垃圾清理了一番,结果在打开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. Linux下汇编语言------计算n的阶乘

    用高级语言比方C语言写个阶乘非常easy,那如今就来熟悉下Linux使用AT&T汇编格式写一个程序来计算阶乘吧 写法一是 使用跳转指令实现.写法二是使用函数来实现 约定:本程序没有将结果打印在 ...

  2. 安装IntelliJ IDEA 破解安装

    IDEA 功能介绍 1-深度智力 IntelliJ IDEA为您的源代码编制索引后,通过在每个环境中提供相关建议,提供快速,智能的体验:即时和智能的代码完成,即时代码分析和可靠的重构工具. 2-开箱即 ...

  3. 关于JAVA中String类型的最大长度

    前些天看到一道面试题,题目很容易理解:String的长度限制是多少? 针对这个题目,浏览了网友的回答,大概得到了3个层次的答案. 最浅的层次: 近似计算机内存大小的长度.这是作为一个程序员最浅显的回答 ...

  4. jetty 通过配置文件嵌入式启动web服务

    定义 jetty.xml 启动文件 <?xml version="1.0"?><!DOCTYPE Configure PUBLIC "-//Jetty/ ...

  5. 洛谷 P4768 [NOI2018]归程

    洛谷 361行代码的由来 数据分治大发好啊- NOI的签到题,可怜我在家打了一下午才搞了80分. 正解应该是kruskal重构树或排序+可持久化并查集. 我就分点来讲暴力80分做法吧(毕竟正解我也没太 ...

  6. 0x07 MySQL 多表查询

    Some Content From——Egon's Blog http://www.cnblogs.com/linhaifeng/articles/7126847.html 一 准备表 准备表 #建表 ...

  7. python 报错——Python TypeError: 'module' object is not callable 原因分析

    原因分析:Python导入模块的方法有两种: import module 和 from module import 区别是前者所有导入的东西使用时需加上模块名的限定,而后者则不需要 例: >&g ...

  8. JavaWeb—过滤器Filter

    1.Filter简介 Filter称之为过滤器,是用来做一些拦截的任务.比如客户端请求服务器的某个资源时(可以是Servlet.JSP.HTML等等),我们可以拦截.当服务器返回资源给客户端的时候,我 ...

  9. boost之正则表达式

    正则表示主要用于查找一系列符合规则的对象,而我们之前的查找是对某一特定的字符串进行查找. #include <iostream> #include <vector> #incl ...

  10. virt-viewer的简单使用

    virt-viewer 简介:  virt-viewer是一个用于显示虚拟机的图形控制台的最小工具. 控制台使用VNC或SPICE访问协议. 可以基于其名称,ID或UUID来引用guest虚拟机.如果 ...