存储故障后oracle报—ORA-01122/ORA-01207故障处理---惜分飞

发布于:2024-05-08 ⋅ 阅读:(24) ⋅ 点赞:(0)

客户存储异常,通过硬件恢复解决存储故障之后,oracle数据库无法正常启动(存储cache丢失),尝试recover数据库报ORA-00283 ORA-01122 ORA-01110 ORA-01207错误
以前处理过比较类似的存储故障case:
又一起存储故障导致ORA-00333 ORA-00312恢复
存储故障,强制拉库报ORA-600 kcbzib_kcrsds_1处理

SQL> recover database until cancel;

ORA-00283: 恢复会话因错误而取消

ORA-01122: 数据库文件 536 验证失败

ORA-01110: 数据文件 536: '+DATA/orcl/dt_img_dat511.ora'

ORA-01207: 文件比控制文件更新 - 旧的控制文件

Sun May 05 00:09:03 2024

ALTER DATABASE RECOVER  database until cancel 

Media Recovery Start

 started logmerger process

Sun May 05 00:09:10 2024

SUCCESS: diskgroup FRA was mounted

Sun May 05 00:09:10 2024

NOTE: dependency between database orcl and diskgroup resource ora.FRA.dg is established

Sun May 05 00:09:14 2024

WARNING! Recovering data file 1 from a fuzzy backup. It might be an online

backup taken without entering the begin backup command.

Media Recovery failed with error 1122

Slave exiting with ORA-283 exception

Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_pr00_8048.trc:

ORA-00283: 恢复会话因错误而取消

ORA-01122: 数据库文件 536 验证失败

ORA-01110: 数据文件 536: '+DATA/orcl/dt_img_dat511.ora'

ORA-01207: 文件比控制文件更新 - 旧的控制文件

Sun May 05 00:09:16 2024

Recovery Slave PR00 previously exited with exception 283

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

using backup controlfile进行恢复

SQL> recover database using backup controlfile until cancel;

ORA-00279: 更改 18646239951 (在 04/25/2024 17:14:50 生成) 对于线程 1 是必需的

ORA-00289: 建议:

+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003886.199435.1167240505

ORA-00280: 更改 18646239951 (用于线程 1) 在序列 #1003886 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 18646239951 (在 04/25/2024 17:11:40 生成) 对于线程 2 是必需的

ORA-00289: 建议:

+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677876.199531.1167239807

ORA-00280: 更改 18646239951 (用于线程 2) 在序列 #677876 中

ORA-00279: 更改 18646255791 (在 04/25/2024 17:16:46 生成) 对于线程 2 是必需的

ORA-00289: 建议:

+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677877.199472.1167240099

ORA-00280: 更改 18646255791 (用于线程 2) 在序列 #677877 中

ORA-00278: 此恢复不再需要日志文件

'+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677876.199531.1167239807'

ORA-00279: 更改 18646295647 (在 04/25/2024 17:21:38 生成) 对于线程 2 是必需的

ORA-00289: 建议:

+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677878.199379.1167240623

ORA-00280: 更改 18646295647 (用于线程 2) 在序列 #677878 中

ORA-00278: 此恢复不再需要日志文件

'+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677877.199472.1167240099'

ORA-00279: 更改 18646331784 (在 04/25/2024 17:28:25 生成) 对于线程 1 是必需的

ORA-00289: 建议:

+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507

ORA-00280: 更改 18646331784 (用于线程 1) 在序列 #1003887 中

ORA-00278: 此恢复不再需要日志文件

'+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003886.199435.1167240505'

ORA-00308: 无法打开归档日志

'+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507'

ORA-17503: ksfdopn: 2 未能打开文件

+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507

ORA-15012: ASM file

'+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507' does not exist

ORA-10879: error signaled in parallel recovery slave

ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误

ORA-01194: 文件 1 需要更多的恢复来保持一致性

ORA-01110: 数据文件 1: '+DATA/orcl/system01.dbf'

通过分析,确认由于cache丢失导致thread_1_seq_1003887这个日志丢失(而且redo已经被覆盖)
 

20240506-2


20240506-1


数据库无法通过正常recover的思路解决.通过屏蔽一致性,强制打开数据库,alert日志报ORA-600 2662错误

Sat May 04 17:23:00 2024

Redo thread 2 internally disabled at seq 1 (CKPT)

ARC1: Archiving disabled thread 2 sequence 1

Archived Log entry 2 added for thread 2 sequence 1 ID 0x0 dest 1:

ARC3: Archival started

ARC0: STARTING ARCH PROCESSES COMPLETE

Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_ora_3684.trc  (incident=47066):

ORA-00600: ??????, ??: [2662], [4], [1466533588], [4], [1466584862], [12583040], [], [], [], [], [], []

Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_ora_3684.trc:

ORA-00600: ??????, ??: [2662], [4], [1466533588], [4], [1466584862], [12583040], [], [], [], [], [], []

Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_ora_3684.trc:

ORA-00600: ??????, ??: [2662], [4], [1466533588], [4], [1466584862], [12583040], [], [], [], [], [], []

Error 600 happened during db open, shutting down database

USER (ospid: 3684): terminating the instance due to error 600

Instance terminated by USER, pid = 3684

ORA-1092 signalled during: alter database open resetlogs...

通过修改数据库scn,open数据库报ORA-600 4137

Sun May 05 00:12:41 2024

replication_dependency_tracking turned off (no async multimaster replication found)

LOGSTDBY: Validating controlfile with logical metadata

LOGSTDBY: Validation complete

Completed: alter database open resetlogs

Sun May 05 00:12:56 2024

Trace dumping is performing id=[cdmp_20240505001256]

Sun May 05 00:12:56 2024

ORACLE Instance orcl1 (pid = 22) - Error 600 encountered while recovering transaction (28, 21).

Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_smon_5896.trc:

ORA-00600: ??????, ??: [4137], [28.21.42965783], [0], [0], [], [], [], [], [], [], [], []

这个错误比较明显,由于28号回滚段异常导致,对异常回滚段进行处理,重建undo,数据库恢复主要工作完成