千家信息网

又一次REDO损坏恢复

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,现象描述上午:9:52在切换归档时掉电:Thread 1 advanced to log sequence 14574 (LGWR switch)Current log# 3 seq# 14574 m
千家信息网最后更新 2025年02月04日又一次REDO损坏恢复

现象描述

上午:9:52在切换归档时掉电:
Thread 1 advanced to log sequence 14574 (LGWR switch)

Current log# 3 seq# 14574 mem# 0: /home/oracle/app/oracle/oradata/orcl/redo03.log

Sun Sep 22 09:52:20 2019

Archived Log entry 14327 added for thread 1 sequence 14573 ID 0x5b557622 dest 1:

在下午启动时报错:

ALTER DATABASE OPEN

Errors in file /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_55829.trc:

ORA-01113: file 1 needs media recovery

ORA-01110: data file 1: '/home/oracle/app/oracle/oradata/orcl/system01.dbf'

ORA-1113 signalled during: ALTER DATABASE OPEN...

Sun Sep 22 16:53:32 2019

Errors in file /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_m000_55832.trc:

ORA-00314: log 1 of thread 1, expected sequence# 14575 doesn't match 14572

ORA-00312: online log 1 thread 1: '/home/oracle/app/oracle/oradata/orcl/redo01.log'

Errors in file /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_m000_55832.trc:

ORA-00314: log 2 of thread 1, expected sequence# 14576 doesn't match 14573

ORA-00312: online log 2 thread 1: '/home/oracle/app/oracle/oradata/orcl/redo02.log'

Errors in file /home/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_m000_55832.trc:

ORA-00322: log 3 of thread 1 is not current copy

ORA-00312: online log 3 thread 1: '/home/oracle/app/oracle/oradata/orcl/redo03.log'

分析过程及处理

检查alert_sid.log日志,发现已经进行过异常恢复

关数据库,备份所有数据文件,REDOCONTROL到另一个目录

检查文件坏块

dbv file=/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf blocksize=8192

dbv file=/home/oracle/app/oracle/oradata/orcl/system01.dbf blocksize=8192

dbv file=/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf blocksize=8192

…………………………….

dbv file=/home/oracle/app/oracle/oradata/orcl/TIP_AREA_CONTROL_temp.DBF blocksize=8192

检查文件头和文件SCN

select file#,checkpoint_change# from v$datafile_header;

FILE# CHECKPOINT_CHANGE#

---------- ------------------

1 365579306

2 365579306

3 365579306

4 365579306

5 365579306

6 365579306

7 365579306

8 365579306

9 365579306

10 365579306

11 365579306

12 365579306

select file#,checkpoint_change# from v$datafile;

FILE# CHECKPOINT_CHANGE#

---------- ------------------

1 365579302

2 365579302

3 365579302

4 365579302

5 365579302

6 365579302

7 365579302

8 365579302

9 365579302

10 365579302

11 365579302

12 365579302

尝试非常规手段恢复

alter system set control_files='/home/oracle/app/oracle/oradata/orcl/control01.ctl' scope=spfile;

alter system set undo_management =manual scope=spfile;

alter system set undo_tablespace =system scope=spfile;

alter system set "_allow_resetlogs_corruption"=TRUE scope=spfile;

RECOVER DATABASE until cancel;

alter database open resetlogs 报错:

Mon Sep 23 00:31:08 2019

Media Recovery failed with error 16433

Recovery Slave PR00 previously exited with exception 283

ORA-283 signalled during: ALTER DATABASE RECOVER DATABASE until cancel ...

Incident 2693065 created, dump file: /home/oracle/app/oracle/diag/rdbms/orcl/orcl/incident/incdir_2693065/orcl_ora_37627_i2693065.trc

ORA-00600: internal error code, arguments: [2662], [0], [365579314], [0], [365598509], [12583040], [], [], [], [], [], []

六 建控制文件

CREATE CONTROLFILE SET DATABASE "orcl" RESETLOGS FORCE LOGGING NOARCHIVELOG

MAXLOGFILES 5

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP 1 '/home/oracle/app/oracle/oradata/orcl/redo01.log' SIZE 50M,

GROUP 2 '/home/oracle/app/oracle/oradata/orcl/redo02.log' SIZE 50M,

GROUP 3 '/home/oracle/app/oracle/oradata/orcl/redo03.log' size 50M

DATAFILE

'/home/oracle/app/oracle/oradata/orcl/system01.dbf',

'/home/oracle/app/oracle/oradata/orcl/users01.dbf',

'/home/oracle/app/oracle/oradata/orcl/undotbs01.dbf',

'/home/oracle/app/oracle/oradata/orcl/TIP_TIP_PROJECT.DBF',

'/home/oracle/app/oracle/oradata/orcl/TIP_AREA_CONTROL.DBF',

'/home/oracle/app/oracle/oradata/orcl/sysaux01.dbf',

'/home/oracle/app/oracle/oradata/orcl/OA_HY.DBF',

'/home/oracle/app/oracle/oradata/orcl/yzb_data.dbf',

'/home/oracle/app/oracle/oradata/orcl/ogg01.dbf',

'/home/oracle/app/oracle/oradata/orcl/GUARDGATEWAY.DBF',

'/home/oracle/app/oracle/oradata/tipoa3_data.DBF',

'/home/oracle/app/oracle/oradata/oa3.DBF'

CHARACTER SET ZHS16GBK

;

调整 SCN


SQL> oradebug poke 0x06001AE70 4 365998509

BEFORE: [06001AE70, ) = 00000000

AFTER: [06001AE70, 06001AE74) = 15D0B1AD

oradebug poke 0x06001AE74 4 365998509

SQL> oradebug dumpvar sga kcsgscn_

kcslf kcsgscn_ [06001AE70, 06001AEA0) = 15D0B1AD 15D0B1AD 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 6001AX50 00000000

oradebug poke 0x06001AE70 8 366998509

alter database open resetlogs;

至此打开成功


0