oracle - redo 损坏或删除处理方法

OS:

Oracle Linux Server release 5.7

DB:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

数据库打开模式,非归档模式,非当前日志损坏

SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 234
Current log sequence 236
SQL>

SQL> select * from v$log;

GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- -------- ---------------- ------------- ----------- ------------ -----------
1 1 234 52428800 512 1 NO INACTIVE 3298602 2013/10/31 3298605 2013/10/31
2 1 236 52428800 512 1 NO CURRENT 3298609 2013/10/31 281474976710
3 1 235 52428800 512 1 NO INACTIVE 3298605 2013/10/31 3298609 2013/10/31

[[email protected] yoon]# rm -rf redo01.log

[[email protected] yoon]# ls
control01.ctl redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> /

System altered.

执行dml语句,以及切换日志都能成功,但是数据库重启就报错

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL>

SQL> startup
ORACLE instance started.

Total System Global Area 3340451840 bytes
Fixed Size 2232960 bytes
Variable Size 2046823808 bytes
Database Buffers 1275068416 bytes
Redo Buffers 16326656 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 32731
Session ID: 1 Serial number: 5

SQL>

SQL> conn / as sysdba
Connected to an idle instance.
SQL> shutdown abort
ORACLE instance shut down.
SQL>

解决方法,数据库启动到mount,将损坏的日志文件清除日志组:

SQL> startup mount
ORACLE instance started.

Total System Global Area 3340451840 bytes
Fixed Size 2232960 bytes
Variable Size 2046823808 bytes
Database Buffers 1275068416 bytes
Redo Buffers 16326656 bytes
Database mounted.
SQL>

SQL> alter database clear logfile group 1;

Database altered.

SQL> alter database open;

Database altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 3340451840 bytes
Fixed Size 2232960 bytes
Variable Size 2046823808 bytes
Database Buffers 1275068416 bytes
Redo Buffers 16326656 bytes
Database mounted.
Database opened.
SQL>

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/oracle/oradata/yoon/redo03.log
/u01/oracle/oradata/yoon/redo02.log
/u01/oracle/oradata/yoon/redo01.log

非归档模式,数据库关闭,不是正在使用的日志文件损坏,解决方法同上。

时间: 2024-10-04 03:45:50

oracle - redo 损坏或删除处理方法的相关文章

oracle redo log的维护

Oracle online redo log是Oracle数据库中核心文件之一.在数据库操作中,只要有任何的数据块变化,都会生成相应的redo entry.redo entry首先保存在log buffer中,最后由lgwr进程写入到Redo log里面. Online Redo Log的维护和性能是影响Oracle工作的一个重要方面.本文从日常维护角度出发,介绍几个常见的场景处理方法. 1.Redo Log Group和Redo Log Group Member Redo Log在数据库中的作

Oracle数据库备份与恢复的三种方法

转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去. 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的

Oracle自定义数据类型 2 (调用对象方法)

调用对象方法 调用对象方法基于类型创建表后,就可以在查询中调用对象方法 A. 创建基于对象的表语法: create   table   <表名>   of   <对象类型>意义:此表具有该类型和member方法的所有属性, 我们不能通过DBA   STUDIO的表数据编辑器来编辑数据. 例:create   table   FLIGHT_SCH_TAB   of   FLIGHT_SCH_TYPE insert   into   FLIGHT_SCH_TAB     values(

Oracle数据库视图创建与处理方法教程

有关Oracle数据库视图创建与处理方法教程. 分享下oracle中创建视图与处理视图的方法,学习oracle视图的使用方法. 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是存储在数据字典里的一条select语句.通过创建视图可以提取数据的逻辑上的集合或组合. oracle视图的优点:1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分.2.用

Oracle中对列加密的方法

Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col(id int,txt varchar2(100) encrypt using '算法名称' identified by '密钥' no salt);优点:对应用完全透明缺点:需要数据库管理员管理wallet,增加了管理复杂性,也无法避免数据库管理员查看原文. 2,使用DBMS_CRYPTO包优点:

北亚案例:oracle数据库误删除数据的恢复方法

学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些问题时,我开始寻找答案. 今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志) 删除表中数据有三种方法: ·delete(删除一条记录) ·drop或truncate删除表格中数据 1.delete误删除的解决方法 原理:利用oracle提供的闪回方法,如果在删除数据后还没做大量的操作(只要保证被删除数据的

分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

1:MSSQL SQL语法篇: BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM 'data_file' [ WITH ( [ [ , ] BATCHSIZE = batch_size ] [ [ , ] CHECK_CONSTRAINTS ] [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_pag

The number of Oracle redo threads (2) is not the same as the number of checkpoint threads (1)

单实例数据库多日志线程,搭建ogg,启动抽取进程时提示一下错误: ERROR   OGG-00446  Oracle GoldenGate Capture for Oracle, extjms.prm:  The number of Oracle redo threads (2) is not the same as the number of checkpoint threads (1). EXTRACT groups on RAC systems should be created with

oracle 查询当天记录 三种方法效率比较

-- 查询一表中当天生成的数据 -- 原表mobilefrends中的cdate字段上有索引,创建索引语句是:create index mobilefrends_cdate_idx on mobilefrends(cdate); --------------------------------------------------------------------------------------------------------------------- -- 方法一:用to_char()