环境同上一篇

模拟处于active状态的redo log损坏

sesion 1

SYS@ orcl >/                         

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE      MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 19 52428800 512 2 NO CURRENT 9777054 06-JUN-19 2.8147E+14
2 1 17 52428800 512 1 YES ACTIVE 9776201 06-JUN-19 9776627 06-JUN-19
3 1 18 52428800 512 1 YES ACTIVE 9776627 06-JUN-19 9777054 06-JUN-19

session 2

[oracle@DSI ~]$ sqlplus test/test
SQL> create table t7 (id int,name varchar2(100));
Table created. SQL> begin
for i in 1 .. 50000000
loop
insert into t7 values(i,'AAAAAA');
end loop;
commit;
end;
/

session 1

SYS@ orcl >shutdown abort;
ORACLE instance shut down.

session 2 报错

/  2    3    4    5    6    7    8
begin
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 6269
Session ID: 141 Serial number: 527

SQL> conn /as sysdba
Connected to an idle instance. SQL> startup mount;
ORACLE instance started. Total System Global Area 784998400 bytes
Fixed Size 2257352 bytes
Variable Size 478154296 bytes
Database Buffers 297795584 bytes
Redo Buffers 6791168 bytes
Database mounted.
SQL> set linesize 1000
SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 19 52428800 512 2 YES ACTIVE 9777054 06-JUN-19 9777480 06-JUN-19
3 1 18 52428800 512 1 YES ACTIVE 9776627 06-JUN-19 9777054 06-JUN-19
2 1 20 52428800 512 1 NO CURRENT 9777480 06-JUN-19 2.8147E+14 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- ---------------------------------------------------------------- ---
2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log NO
1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log NO
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log NO
1 ONLINE /u01/app/oracle/oradata/orcl/redo11.log

损坏active的3号文件

[oracle@DSI ~]$ dd if=/dev/null of=/u01/app/oracle/oradata/orcl/redo03.log bs=512 count=20
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000121828 s, 0.0 kB/s

打开报错

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03.log'
ORA-27047: unable to read the header block of file
Linux-x86_64 Error: 25: Inappropriate ioctl for device
Additional information: 1
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery SQL> recover database until cancel;
ORA-00279: change 9776627 generated at 06/06/2019 09:25:59 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/ORCL/archivelog/2019_06_06/o1_mf_1_18_ghjtxbjq_.arc
ORA-00280: change 9776627 for thread 1 is in sequence #18 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00279: change 9777054 generated at 06/06/2019 09:26:02 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/ORCL/archivelog/2019_06_06/o1_mf_1_19_ghjtxfjt_.arc
ORA-00280: change 9777054 for thread 1 is in sequence #19
ORA-00278: log file '/u01/app/oracle/fra/ORCL/archivelog/2019_06_06/o1_mf_1_18_ghjtxbjq_.arc' no longer needed for this recovery Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00279: change 9777480 generated at 06/06/2019 09:26:05 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/fra/ORCL/archivelog/2019_06_06/o1_mf_1_20_%u_.arc
ORA-00280: change 9777480 for thread 1 is in sequence #20
ORA-00278: log file '/u01/app/oracle/fra/ORCL/archivelog/2019_06_06/o1_mf_1_19_ghjtxfjt_.arc' no longer needed for this recovery Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00308: cannot open archived log '/u01/app/oracle/fra/ORCL/archivelog/2019_06_06/o1_mf_1_20_%u_.arc'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3 ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf' SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'
[oracle@DSI ~]$ tail -n 100 /tmp/pfile.ora

修改隐含参数

*._allow_resetlogs_corruption=true
*._allow_error_simulation=true

[oracle@DSI ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 6 09:32:52 2019

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup pfile='/tmp/pfile.ora' mount;
ORACLE instance started. Total System Global Area 784998400 bytes
Fixed Size 2257352 bytes
Variable Size 478154296 bytes
Database Buffers 297795584 bytes
Redo Buffers 6791168 bytes
Database mounted.
SQL> alter database open resetlogs; Database altered.
SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ ---------
1 1 1 52428800 512 2 YES ACTIVE 9777481 06-JUN-19 9778409 06-JUN-19
2 1 2 52428800 512 1 YES ACTIVE 9778409 06-JUN-19 9778925 06-JUN-19
3 1 3 52428800 512 1 NO CURRENT 9778925 06-JUN-19 2.8147E+14
SQL> alter system switch logfile; System altered. SQL> / System altered. SQL> / System altered.
SQL> select * from test.t7; no rows selected

查看错误日志
[oracle@DSI ~]$ tail -f -n 100 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
##处于active/current redo log损坏,进行强制启动打开的话,比较小的库最好是进行导出导出,防止出现其他错误,比较大的库(上百t)迁移的时间就比较长
如果有报错,有些可能修复,有些不能修复的致命错误比如ora-600等,还是导出导入修复比较安全

07 归档模式 Active redo log丢失或损坏的恢复的更多相关文章

  1. RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复

    1.归档模式有备份,丢失数据文件的恢复归档模式有备份,不管丢失什么数据文件,直接在RMAN下RESTOER--->RECOVER--->OPEN即可. RMAN> STARUP MO ...

  2. 07 oracle 非归档模式 inactive/active/current redo log损坏的恢复

    在非归档模式下缺失Redo Log后的恢复 将之前的归档模式修改为非归档 SQL> shutdown immediate; SQL> startup mount SQL> alter ...

  3. 07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], [0], [9710724], [0], [9711142], [], [], [], [], [], [], []

    07 oracle 归档模式 inactive/current redo log损坏修复--以及错误ORA-00600: internal error code, arguments: [2663], ...

  4. 【恢复】 Redo文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

  5. Oracle Redo Log 机制 小结(转载)

    Oracle 的Redo 机制DB的一个重要机制,理解这个机制对DBA来说也是非常重要,之前的Blog里也林林散散的写了一些,前些日子看老白日记里也有说明,所以结合老白日记里的内容,对oracle 的 ...

  6. Oracle启动和归档模式

    数据库运行 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例–>加载数据库–>打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操 ...

  7. 3000帧动画图解MySQL为什么需要binlog、redo log和undo log

    全文建立在MySQL的存储引擎为InnoDB的基础上 先看一条SQL如何入库的: 这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存 ...

  8. 2 万字 + 30 张图 | 细聊 MySQL undo log、redo log、binlog 有什么用?

    作者:小林coding 计算机八股文网站:https://xiaolincoding.com/ 大家好,我是小林. 从这篇「执行一条 SQL 查询语句,期间发生了什么?」中,我们知道了一条查询语句经历 ...

  9. RAC本地数据文件迁移至ASM的方法--非归档模式

    系统环境:rhel6.2_x64+Oracle RAC11g 操作过程: 1.非归档模式 SQL> archive log list; Database log mode No Archive ...

随机推荐

  1. k3 cloud中如何把一个账套中的单据部署到另一个账套中

    打开bos,依次点击->解决方案->部署包管理 填写部署包名称并点击下一步 选择需要部署的单据并点击下一步 确定后点击下一步: 点击完成 找到部署路径会成一个部署包: 部署:打开部署包安装 ...

  2. 修改默认select样式

    <style type="text/css"> .select_demo,.select_list { width: 400px; height: 60px; } .s ...

  3. 关于代码手写UI,xib和StoryBoard

    代码手写UI 这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用.Geek们喜欢用代码构建UI,是因为代码是键盘敲出来的,这样可以做到不开IB,手不离开键盘就完成工作,可以专注于编码环境, ...

  4. mysql查询每个直播间每个用户最早进入时间和最晚退出时间

    myself_sql = 'select room_id,source_id user_id,min(cast(at as datetime)) joinroom,max(cast(at as dat ...

  5. [ZJOI2006]物流运输(动态规划,最短路)

    [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的运输路线,以便对整个 ...

  6. ASP.NET Core 基础知识(三) Program.cs类

    ASP.NET Framework应用程序是严重依赖于IIS的,System.Web 中有很多方法都是直接调用的 IIS API,并且它还是驻留在IIS进程中的.而 ASP.NET Core 的运行则 ...

  7. git_sd

    (一)将代码从服务器移到gitlab nano .gitignore ll -ah 1.关联一个远程库 : git remote add origin http://hcgit.hengchang6. ...

  8. 查看PL/SQL编译时的错误信息

    编译无效对象是DBA与数据库开发人员常见的工作之一.对于编译过程中的错误该如何去捕获,下面给出两种捕获错误的方法. 一.当前数据库版本信息及无效对象 1.查看当前数据库版本 [sql] view pl ...

  9. java日志文件log4j.properties配置详解

    一.Log4j配置 第一步:加入log4j-1.2.8.jar到lib下. 第二步:在CLASSPATH下建立log4j.properties.内容如下: 放在src下的话就不用配置 否则得去web. ...

  10. Arduino-LiquidCrystal_I2C 液晶库

    I2C转接板上[PCF8574T转接板]VCC接5V,GND接GND,SCL接SCL(即A05),SDA接SDA(即A04) 常用的函数是 lcd.init(),lcd初始化 setCursor(x, ...