- 浏览: 450496 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (377)
- Java (66)
- C++ (0)
- VC++ (0)
- .net (1)
- css (36)
- 数据库 (22)
- html (2)
- extjs (1)
- jpbm (0)
- javascript (31)
- 物资管理 (1)
- java基础 (5)
- C# (0)
- Android (56)
- window service (1)
- 其他 (2)
- Web服务器 (7)
- jbpm (1)
- eclipse (2)
- tomcat (3)
- java字符串与二进制的相互转化 (1)
- Oracle 数据库 (6)
- FreeMarker (8)
- 浏览器 (1)
- php (1)
- photoshop (6)
- spring (4)
- spring mvc (2)
- Acegi (1)
- webStorm 3.0 (4)
- Mongodb (8)
- mysql (9)
- 软件开发:需求分析 (1)
- 把Java程序作为Windows系统服务 (1)
- nodejs (4)
- json (1)
- 缓存 (1)
- J2ee (2)
- Flash报表 (1)
- MyEclipse+Maven+Tomcat (11)
- 生活 (1)
- Ubuntu (1)
- Bootstrap (1)
- jquery easy ui (2)
- 敏捷开发 (1)
- phone gap (1)
- rest (1)
- 移动开发 (22)
- Redis + Jedis + Spring (3)
- anroid (7)
- grunt 教程 (7)
- PhoneGap (2)
- sublime text (7)
- mariadb (1)
- linux (1)
- maven (2)
- jquery (1)
- ActiveMQ (1)
- LVS Nginx (1)
- nginx (6)
- ngnix (1)
- 爱因斯坦 (1)
- 天干地支 (1)
最新评论
-
muqingren:
...
Maven多模块布局实例详解 -
shutear:
解决了我的难题,谢谢分享!
Unable to load configuration. - action - file:/D:/studytool/apache-tomcat-6.0.16 -
702346318:
[img][/img][flash=200,200][/fla ...
CAS单点登录完整教程(上)【转】 -
liuguofeng:
PersonS631887934 写道学习中。。 有个问题想请 ...
js constructor属性 -
S631887934:
学习中。。 有个问题想请教楼主为什么要加上Person.pro ...
js constructor属性
转自:http://hi.baidu.com/dashuaiwang/blog/item/47cc680ec35055c37acbe1f8.html
打开oracle 数据库时出现了错误:
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\GOCOM\REDO01.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:\ORACLE\ORADATA\ORCL\REDO01.LOG'
查看D:\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>
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:\ORACLE\ORADATA\RMAN\REDO03.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:\ORACLE\ORADATA\RMAN\REDO03.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:\ORACLE\ORADATA\RMAN\REDO03.LOG'
现在开始不完全恢复:
SQL> recover database until cancel;
ORA-00279: 更改 1029419 (在 05/15/2005 01:21:08 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORACLE\ORA92\RDBMS\ARC00078.001
ORA-00280: 更改 1029419 对于线程 1 是按序列 # 78 进行的
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开存档日志 'D:\ORACLE\ORA92\RDBMS\ARC00078.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00308: 无法打开存档日志 'D:\ORACLE\ORA92\RDBMS\ARC00078.001'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件1需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'F:\RMAN\SYSTEM01.DBF'
恢复完成。再用resetlogs打开数据库:
SQL> alter database open resetlogs ;
ERROR 位于第 1 行:
ORA-03113: 通信通道的文件结束
等待很久,居然报这个错!其实不用怕,恢复已经完成,只要重新打开就可以了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kirao/archive/2009/12/18/5030551.aspx
发表评论
-
数据库悲观锁和乐观锁
2014-07-06 17:48 632一下是转载的oracle和Mysql两种数据库悲观锁和乐观锁 ... -
Mysql常用命令七(MySQL的优化方法)
2014-10-28 09:36 1177MySQL的优化 一、我们可以且应该优化什么? 硬件 操作 ... -
mysql 中 时间和日期函数
2014-10-28 09:36 629mysql 中 时间和日期函数 一、MySQL 获 ... -
Oracle创建用户/密码并授权 移除权限
2012-03-09 14:07 3264Oracle创建用户/密码并授权 (1) 创建用 ... -
数据字典和动态性能视图
2011-07-01 11:33 1162最近开始学习oracle,现把笔记一分享如下. 一.数据字 ... -
在Oracle的函数中,返回表类型
2011-07-01 11:31 1376在SQL Server中有表变量,可以在functio ... -
Oracle 系统表大全
2011-07-01 11:27 9071、用户: select username from db ... -
Oracle SEQUENCE
2011-07-01 11:25 9841.创建SEQUENCE(自增长列 与表无关) CRE ... -
16种oracle查询日期语句
2011-07-01 11:24 1467查询日期是使用oracle数据库过程中经 ... -
sql 2005 索引优化
2011-03-07 10:35 944(一)深入浅出理解索 ... -
oracle定义变量
2010-11-02 23:20 2690------------------------------ ... -
Oracle使用手册(一)---声明变量
2010-11-02 23:13 1744Oracle使用手册(一)---声明变量 /**//* --建 ... -
oracle 游标以及游标变量(1)
2010-11-02 23:11 1154ORACLE 游标 一. PL/SQL 是用游标来管理 ... -
ORACLE函数大全
2010-09-21 13:11 930SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制 ... -
Oracle 中的 dual 表是干什么的
2010-09-21 11:29 1219dual是一个虚拟表,用来构成select的语法规则,orac ... -
SQL优化34条(一)
2010-09-21 11:27 800我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为 ... -
oracle联机日志文件恢复
2010-09-16 22:13 1094SQL> shutdown immediate ... -
MySQL性能优化的最佳20+条经验
2010-09-16 16:05 855今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于We ... -
Oracle SQL优化34条(二)
2010-09-16 15:55 896(17) 用索引提高效率: 索引是表的一个概念部分,用来提高检 ... -
oracle客户端配置
2010-09-16 09:25 2233本帖最后由 落↓孤❤寒 于 2010-7-17 13:16 ...
相关推荐
### Oracle日志文件大全知识点详解 #### 一、Oracle中的几类日志文件 Oracle数据库管理系统使用多种类型的日志文件来记录系统运行期间的各种活动,这些日志文件不仅有助于数据库的管理和维护,还为故障诊断提供了...
Oracle 日志文件是 Oracle 数据库中记录所有数据库操作的文件,对数据库的稳定运行和错误分析具有重要作用。Oracle 日志文件可以帮助数据库管理员追踪数据库的所有操作,包括数据修改、事务提交、错误信息等。下面是...
Oracle数据库的日志系统是其核心组件之一,用于确保...总之,Oracle日志文件是数据库管理和保护的重要组成部分。理解它们的功能、管理和恢复策略是每个DBA必备的技能,有助于确保数据安全、提高系统的可用性和可靠性。
Alert日志文件包含有关数据库实例运行时的重要信息,例如错误消息、警告和其他重要事件,对于诊断问题和维护数据库健康状态非常有用。本文将详细介绍如何在Oracle 11g环境下查找和定位Alert日志文件。 ### 核心概念...
总结起来,处理Oracle日志文件丢失的问题,关键步骤包括:以SYSDBA身份登录,关闭数据库,挂起启动,执行介质恢复,最后打开数据库并重置日志。此外,良好的数据库管理和备份策略是防止这类问题的关键。对于大型企业...
### Oracle日志文件恢复 在Oracle数据库管理过程中,日志文件是极其重要的组成部分之一,它不仅记录了所有对数据库所做的更改操作,而且还能在数据丢失或数据库崩溃等紧急情况下帮助我们进行数据恢复。本文将详细...
1. **查看日志文件**:首先,使用文本编辑器或`tail`命令查看监听日志文件($ORACLE_HOME/network/admin/listener.log),找出可能导致文件过大的原因,例如异常的错误消息或异常频繁的事件。 2. **配置日志级别**...
本文将详细介绍如何查看Oracle数据库中的各种日志文件,并提供具体的步骤和示例,帮助读者更好地理解和操作。 #### 二、Oracle数据库日志类型 Oracle数据库中有多种类型的日志文件,包括但不限于: 1. **后台进程...
### ORACLE联机日志文件丢失或损坏的处理方法 #### 概述 在Oracle数据库管理过程中,联机重做日志(Online Redo Log)是数据库运行时记录所有事务更改的重要组成部分。当联机重做日志文件丢失或损坏时,可能会导致...
理解Oracle日志文件的管理策略也是提高数据库性能的关键。适当的日志文件大小和数量应根据数据库的事务量和I/O性能来设置。过大或过小的redo log文件都可能导致性能问题。此外,日志文件的位置和命名策略也需谨慎...
5. 恢复方法:当Oracle数据库遇到硬件故障、软件错误或人为操作失误导致数据损坏时,可以利用日志文件中的信息对数据库进行恢复。恢复过程中,Oracle使用重做日志中的SCN信息来确定需要应用的事务,并利用归档日志...
- 使用`rm`命令删除指定的归档日志文件,同时处理可能出现的权限问题。 - 如果涉及redo log,需先进行日志切换,再删除已用的日志文件。 - 清理alert log中的旧条目,这通常需要通过Oracle的`expdp`和`impdp`工具...
1. **增强日志处理能力**:可以考虑增加错误处理机制,如在执行过程中遇到异常时记录详细的错误信息。 2. **提升脚本健壮性**:对脚本中的变量进行更严格的校验,比如检查`ORACLE_SID`和`db_unique_name`等变量的...
由于日志文件的重要性,DBA需要定期检查这些文件,寻找任何ORA-错误,并对日志文件进行存档整理。这有助于保持系统的健康状态,避免因日志文件过大而导致的性能问题。 **1.3 处理大型日志文件** 当日志文件变得...
- 切换日志文件:Oracle支持在线切换日志,可以在不影响数据库运行的情况下替换损坏的日志。 - 通过归档日志重建:如果数据库处于归档模式,可以尝试使用已归档的日志重建损坏的日志。 三、表空间损坏 3. 表空间...
Oracle公司的工程师们列举了一些常见的Oracle错误,并提供了相应的处理方法。下面将对Oracle常见错误的处理方法进行详细探讨。 首先,关于数据库恢复,在文档中特别提到“数据库非常规恢复”的注意事项。文档明确...
### Oracle日志丢失数据库恢复技巧 #### 背景与问题描述 在Oracle数据库管理过程中,日志文件丢失是一个常见的问题。例如,在某次事件中,测试部门反馈了一个关于内部网络上的Oracle数据库(版本1.105)无法正常...
3. **备份相关日志文件**:在进行任何恢复操作之前,备份相关的日志文件非常重要,包括但不限于 alert 日志文件和 trace 文件。 #### 二、Oracle 数据文件误删后的初步应对措施 1. **检查错误日志**:误删除数据...
ASM 实例和监听日志文件是 Oracle 数据库管理系统中两个重要的日志文件。ASM 实例日志文件记录了 Automatic Storage Management(ASM)实例的所有操作,而监听日志文件则记录了数据库监听器的所有操作。通过 grid ...