标签云
asm恢复 bbed bootstrap$ dul kcbzib_kcrsds_1 kccpb_sanity_check_2 kcratr_nab_less_than_odr MySQL恢复 obet ORA-00312 ORA-00704 ORA-00742 ORA-01110 ORA-01200 ORA-01555 ORA-01578 ORA-01595 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-600 kcratr_nab_less_than_odr ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle碎片 OSD-04016 YOUR FILES ARE ENCRYPTED 比特币加密文章分类
- MongoDB (1)
- MongoDB恢复 (1)
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (112)
- 数据库 (1,883)
- DB2 (22)
- MySQL (82)
- Oracle (1,708)
- Data Guard (53)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (168)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (72)
- Oracle Bug (8)
- Oracle RAC (56)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (662)
- Oracle安装升级 (108)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (91)
- PostgreSQL (37)
- pdu工具 (7)
- PostgreSQL恢复 (13)
- SQL Server (34)
- SQL Server恢复 (14)
- TimesTen (7)
- 达梦数据库 (5)
- 达梦恢复 (3)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (51)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (34)
- MongoDB (1)
-
最近发表
- aix平台Oracle数据库由于断电无法启动故障处理
- 断电引起ORA-600 3005故障处理
- 记录一次云存储资源到期之后引起的数据库恢复
- Firebird 损坏数据库数据抢救工具—firebirdext
- Oracle 19c 202610补丁(RUs+OJVM)-19.33
- 由于con$.con#值达到极限,触发数据库增加约束报ORA-600 12807错误
- MongoDB 离线提取工具—mongoext
- .bres勒索病毒加密数据库dmp文件可恢复
- ORA-600 krsm_mrp_rebuild_lf_list.lno_mismatch
- 记录一次0丢失的ORA-00354: 损坏重做日志块标头故障恢复
- 不当数据库恢复操作导致一个月数据丢失
- obet快速修复oracle 位图损坏块
- 不太常见的10.2.0.1的oracle redo损坏恢复
- obet forcecopy功能抢救硬件故障中的数据文件
- kcratr_nab_less_than_odr和system坏块故障处理
- 通过obet 恢复system坏块,打开数据库
- obet dbv功能完整说明
- 分享一例运行在aix上的sap系统数据库恢复过程
- OBET-Oracle Block Editor Tool使用说明
- 几乎动用了所有手段的Oracle故障恢复
分类目录归档:数据库
存储强制拉lun导致数据库异常恢复
通过存储工程师强制拉起来lun(清除掉了cache),但是数据库无法正常mount
Fri Sep 30 17:22:57 BEIST 2022 ALTER DATABASE MOUNT Fri Sep 30 17:22:57 BEIST 2022 This instance was first to mount Fri Sep 30 17:22:58 BEIST 2022 Starting background process ASMB ASMB started with pid=25, OS id=12976304 Starting background process RBAL RBAL started with pid=26, OS id=12779520 Fri Sep 30 17:23:02 BEIST 2022 SUCCESS: diskgroup DATA was mounted Fri Sep 30 17:23:06 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/udump/xifenfei2_ora_14549110.trc: ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [423012], [422765], [0x000000000], [], [], [], [] Fri Sep 30 17:23:07 BEIST 2022 ORA-600 signalled during: ALTER DATABASE MOUNT... Fri Sep 30 17:23:07 BEIST 2022 Trace dumping is performing id=[cdmp_20220930172307] Fri Sep 30 17:23:09 BEIST 2022 Shutting down instance (abort) License high water mark = 1 Instance terminated by USER, pid = 9175148
可以要求保护第一现场,把asm中的数据恢复到文件系统中,然后进行恢复,由于客户是10g的环境,无法直接使用asmcmd中的cp实现此项操作,数据库也没有mount成功(无法使用rman的copy),考虑使用oracle的amdu实现此项操作需求.在拷贝过程中报AMDU-00204报错
root@xifenfei2:/recover/amduo#./amdu -diskstring '/dev/rhdiskpower*' -extract data.298 -noreport amdu_2022_10_01_14_25_31/ AMDU-00204: file not found; arguments: [3] [DATA] LEM-00031: Error encountered in lempgmh after calling lmserr.
通过dbv校验拷贝出来的数据文件
racle@xifenfei2:/recover#dbv file=/recover/amduo/amdu_2022_10_01_14_25_31/DATA_298.f DBVERIFY: Release 10.2.0.5.0 - Production on Sat Oct 1 14:36:50 2022 Copyright (c) 1982, 2007, Oracle. All rights reserved. DBVERIFY - Verification starting : FILE = /recover/amduo/amdu_2022_10_01_14_33_26/DATA_298.f DBVERIFY - Verification complete Total Pages Examined : 262144 Total Pages Processed (Data) : 0 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 262143 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 1 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Highest block SCN : 121293100 (0.121293100)
确认此报错(AMDU-00204 LEM-00031)对于拷贝出来的数据文件无直接影响,可以忽略,拷贝出来所有文件进行重建ctl,报ORA-01159错误
SQL> CREATE CONTROLFILE REUSE DATABASE "xifenfei" NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 226
LOGFILE
group 5 '/recover/df/DATA_262.f' size 200M ,
group 2 '/recover/df/DATA_266.f' size 200M ,
group 1 '/recover/df/DATA_267.f' size 200M ,
group 3 '/recover/df/DATA_281.f' size 200M ,
group 4 '/recover/df/DATA_282.f' size 200M ,
group 6 '/recover/df/DATA_283.f' size 200M
DATAFILE
'/recover/df/DATA_295.f',
'/recover/df/DATA_298.f',
'/recover/df/DATA_272.f',
'/recover/df/DATA_273.f',
'/recover/df/DATA_296.f',
'/recover/df/DATA_274.f',
'/recover/df/DATA_276.f',
'/recover/df/DATA_277.f',
'/recover/df/DATA_275.f',
'/recover/df/DATA_279.f',
'/recover/df/DATA_278.f',
'/recover/df/DATA_288.f',
'/recover/df/DATA_269.f',
'/recover/df/DATA_300.f',
'/recover/df/DATA_264.f',
'/recover/df/DATA_287.f',
'/recover/df/DATA_280.f',
'/recover/df/DATA_286.f',
'/recover/df/DATA_268.f',
'/recover/df/DATA_285.f',
'/recover/df/DATA_297.f'
CHARACTER SET UTF8
;
37 CREATE CONTROLFILE REUSE DATABASE "xifenfei" NORESETLOGS NOARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01159: file is not from same database as previous files - wrong database id
ORA-01110: data file 3: '/recover/df/DATA_288.f'
由于部分文件不是该库的,通过进一步分析,除掉不是该库的文件,重建ctl文件成功.尝试recover数据库,报大量ORA-07445错误,由于cache丢失redo损坏导致,此类操作可能导致数据文件损坏【恢复需要谨慎,最好对数据文件做一次备份】
Sat Oct 01 16:23:16 BEIST 2022 ALTER DATABASE RECOVER database Media Recovery Start parallel recovery started with 15 processes Sat Oct 01 16:23:16 BEIST 2022 Recovery of Online Redo Log: Thread 1 Group 5 Seq 2202 Reading mem 0 Mem# 0: /recover/df/DATA_262.f Sat Oct 01 16:23:16 BEIST 2022 Recovery of Online Redo Log: Thread 2 Group 6 Seq 2394 Reading mem 0 Mem# 0: /recover/df/DATA_283.f Sat Oct 01 16:23:28 BEIST 2022 Recovery of Online Redo Log: Thread 2 Group 3 Seq 2395 Reading mem 0 Mem# 0: /recover/df/DATA_281.f Sat Oct 01 16:23:34 BEIST 2022 Recovery of Online Redo Log: Thread 1 Group 1 Seq 2203 Reading mem 0 Mem# 0: /recover/df/DATA_267.f Sat Oct 01 16:23:35 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p009_13107402.trc: ORA-07445: exception encountered: core dump [kcbzfc+00dc] [SIGSEGV] Sat Oct 01 16:23:35 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p014_7929944.trc: ORA-07445: exception encountered: core dump [kcbzfc+00dc] [SIGSEGV] Sat Oct 01 16:23:35 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p011_10092678.trc: ORA-07445: exception encountered: core dump [kcbzfc+00dc] [SIGSEGV] Sat Oct 01 16:23:35 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_dbw1_12189898.trc: ORA-07445: exception encountered: core dump [kcbzdh+0324] [SIGSEGV] Sat Oct 01 16:23:35 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p005_14549014.trc: ORA-07445: exception encountered: core dump [kcbbufaddr2hdr+00d8] [SIGSEGV] Sat Oct 01 16:23:35 BEIST 2022 Hex dump of (file 6, block 10) in trace file /home/oracle/admin/xifenfei/bdump/xifenfei2_dbw0_13565988.trc Corrupt block relative dba: 0x0180000a (file 6, block 10) Bad header found during buffer corrupt after write Data in bad block: type: 2 format: 1 rdba: 0x00000180 last change scn: 0xa0c3.000a6eeb seq: 0x0 flg: 0x00 spare1: 0x2 spare2: 0xa2 spare3: 0x3486 consistency value in tail: 0x0000a0c3 check value in block header: 0x204 block checksum disabled Reread of rdba: 0x0180000a (file 6, block 10) found different data Sat Oct 01 16:23:35 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_dbw0_13565988.trc: ORA-07445: exception encountered: core dump [kcbbiop+01b8] [SIGSEGV] [Invalid permissions for mapped object] Sat Oct 01 16:23:36 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p014_7929944.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbzfc+00dc] [SIGSEGV] [Address not mapped to object] Sat Oct 01 16:23:36 BEIST 2022 Trace dumping is performing id=[cdmp_20221001162336] Sat Oct 01 16:23:37 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p011_10092678.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbzfc+00dc] [SIGSEGV] [Address not mapped to object] Sat Oct 01 16:23:37 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p009_13107402.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbzfc+00dc] [SIGSEGV] [Address not mapped to object] Sat Oct 01 16:23:37 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_dbw1_12189898.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbzdh+0324] [SIGSEGV] [Address not mapped to object] Sat Oct 01 16:23:37 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p005_14549014.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbbufaddr2hdr+00d8] [SIGSEGV] [Address not mapped to object] Sat Oct 01 16:23:37 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_dbw0_13565988.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbbiop+01b8] [SIGSEGV] [Invalid permissions for mapped object] Sat Oct 01 16:23:37 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p005_14549014.trc: ORA-00607: Internal error occurred while making a change to a data block ORA-00602: internal programming exception ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbbufaddr2hdr+00d8] [SIGSEGV] [Address not mapped to object] Sat Oct 01 16:23:38 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p010_9502918.trc: ORA-00600: internal error code, arguments: [3020], [3], [31913], [2], [2395], [210418], [16], [] ORA-10567: Redo is inconsistent with data block (file# 3, block# 31913) ORA-10564: tablespace SYSAUX ORA-01110: data file 3: '/recover/df/DATA_278.f' ORA-10560: block type 'FIRST LEVEL BITMAP BLOCK' Sat Oct 01 16:23:39 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p010_9502918.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-00600: internal error code, arguments: [3020], [3], [31913], [2], [2395], [210418], [16], [] ORA-10567: Redo is inconsistent with data block (file# 3, block# 31913) ORA-10564: tablespace SYSAUX ORA-01110: data file 3: '/recover/df/DATA_278.f' ORA-10560: block type 'FIRST LEVEL BITMAP BLOCK' Sat Oct 01 16:23:39 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_pmon_14418166.trc: ORA-00471: DBWR process terminated with error Sat Oct 01 16:23:39 BEIST 2022 PMON: terminating instance due to error 471 Sat Oct 01 16:23:40 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/bdump/xifenfei2_p010_9502918.trc: ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-07445: exception encountered: core dump [kcbs_dump_adv_state+027c] [SIGSEGV] ORA-00600: internal error code, arguments: [3020], [3], [31913], [2], [2395], [210418], [16], [] ORA-10567: Redo is inconsistent with data block (file# 3, block# 31913) ORA-10564: tablespace SYSAUX ORA-01110: data file 3: '/recover/df/DATA_278.f' ORA-10560: block type 'FIRST LEVEL BITMAP BLOCK' Sat Oct 01 16:23:46 BEIST 2022 Dump system state for local instance only System State dumped to trace file /home/oracle/admin/xifenfei/bdump/xifenfei2_diag_15401212.trc Sat Oct 01 16:23:46 BEIST 2022 Trace dumping is performing id=[cdmp_20221001162346] Sat Oct 01 16:23:49 BEIST 2022 Instance terminated by PMON, pid = 14418166
绕过redo,直接强制启动库,报ORA-01092错误
QL> startup mount pfile='/tmp/pfile' ORACLE instance started. Total System Global Area 10737418240 bytes Fixed Size 2114208 bytes Variable Size 1560284512 bytes Database Buffers 9160359936 bytes Redo Buffers 14659584 bytes Database mounted. SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-01092: ORACLE instance terminated. Disconnection forced
分析alert日志,确认是由于undo异常导致
Additional information: 3 Sat Oct 01 17:25:21 BEIST 2022 Setting recovery target incarnation to 2 Sat Oct 01 17:25:21 BEIST 2022 Assigning activation ID 1094862311 (0x414245e7) Thread 1 opened at log sequence 1 Current log# 1 seq# 1 mem# 0: /recover/df/DATA_267.f1 Successful open of redo thread 1 Sat Oct 01 17:25:21 BEIST 2022 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set Sat Oct 01 17:25:21 BEIST 2022 SMON: enabling cache recovery Sat Oct 01 17:25:23 BEIST 2022 ORA-01555 caused by SQL statement below (SQL ID: 4krwuz0ctqxdt, SCN: 0x0000.6ee0bde5): Sat Oct 01 17:25:23 BEIST 2022 select ctime, mtime, stime from obj$ where obj# = :1 Sat Oct 01 17:25:23 BEIST 2022 Errors in file /home/oracle/admin/xifenfei/udump/xifenfei2_ora_19726450.trc: ORA-00704: bootstrap process failure ORA-00704: bootstrap process failure ORA-00604: error occurred at recursive SQL level 1 ORA-01555: snapshot too old: rollback segment number 8 with name "_SYSSMU8$" too small Error 704 happened during db open, shutting down database USER: terminating instance due to error 704 Instance terminated by USER, pid = 19726450 ORA-1092 signalled during: alter database open resetlogs...
类似此类错误的解决方案,以前写过参考:
在数据库open过程中常遇到ORA-01555汇总
数据库open过程遭遇ORA-1555对应sql语句补充
Oracle Recovery Tools恢复—ORA-00704 ORA-01555故障
使用_allow_resetlogs_corruption导致ORA-00704/ORA-01555故障
解决该问题,数据库启动正常,逻辑导出数据,导入数据完成此次恢复任务,实现绝大部分数据恢复
ORA-00316 ORA-00312故障处理
数据库启动报ORA-00316,ORA-00312,无法正常启动

通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)分析,确认是当前redo损坏

对于这种情况,只能是屏蔽一致性,强制拉库,结果在拉库过程中报ORA-600 2662错误

这个错误相对比较简单,修改下相关scn即可,数据库open成功
SQL> startup nomount pfile='/tmp/pfile'
ORACLE instance started.
Total System Global Area 3.8482E+10 bytes
Fixed Size 2261368 bytes
Variable Size 8187285128 bytes
Database Buffers 3.0199E+10 bytes
Redo Buffers 93593600 bytes
SQL> CREATE CONTROLFILE REUSE DATABASE "xifenfei" NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 50
3 MAXLOGMEMBERS 5
4 MAXDATAFILES 1000
5 MAXINSTANCES 8
6 MAXLOGHISTORY 2920
7 LOGFILE
8 group 1 '/u01/oracle/app/oradata/xifenfei/redo01.log' size 500M,
9 group 2 '/u01/oracle/app/oradata/xifenfei/redo02.log' size 500M,
10 group 6 '/u01/oracle/app/oradata/xifenfei/redo06.log' size 500M,
11 group 4 '/u01/oracle/app/oradata/xifenfei/redo04.log' size 500M,
12 group 5 '/u01/oracle/app/oradata/xifenfei/redo05.log' size 500M,
13 group 3 '/u01/oracle/app/oradata/xifenfei/redo03.log' size 500M
14 DATAFILE
15 '/u01/oracle/app/oradata/xifenfei/system01.dbf',
16 '/u01/oracle/app/oradata/xifenfei/sysaux01.dbf',
17 '/u01/oracle/app/oradata/xifenfei/undotbs01.dbf',
18 '/u01/oracle/app/oradata/xifenfei/users01.dbf',
………………
49 '/u01/oracle/app/oradata/xifenfei/XIFENFEI.dbf'
50 CHARACTER SET ZHS16GBK ;
Control file created.
SQL> recover database;
ORA-10877: error signaled in parallel recovery slave
SQL> recover database until cancel;
ORA-00279: change 2290050101 generated at 09/30/2022 23:18:22 needed for thread
1
ORA-00289: suggestion : /u02/oracle/arch/1_2_1116803861.dbf
ORA-00280: change 2290050101 for thread 1 is in sequence #2
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
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/oracle/app/oradata/xifenfei/system01.dbf'
ORA-01112: media recovery not started
SQL> alter database open resetlogs;
Database altered.
检查数据库字典一致性
SQL> @1
HCheck Version 07MAY18 on 01-OCT-2022 01:07:48
----------------------------------------------
Catalog Version 11.2.0.4.0 (1102000400)
db_name: XIFENFEI
Catalog Fixed
Procedure Name Version Vs Release Timestamp
Result
------------------------------ ... ---------- -- ---------- --------------
------
.- LobNotInObj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- MissingOIDOnObjCol ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- SourceNotInObj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- OversizedFiles ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- PoorDefaultStorage ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- PoorStorage ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- TabPartCountMismatch ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- OrphanedTabComPart ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- MissingSum$ ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- MissingDir$ ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- DuplicateDataobj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS
.- ObjSynMissing ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- ObjSeqMissing ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedUndo ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedIndex ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedIndexPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedTable ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedTablePartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedTableSubPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- MissingPartCol ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedSeg$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- OrphanedIndPartObj# ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- DuplicateBlockUse ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- FetUet ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- Uet0Check ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- SeglessUET ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadInd$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadTab$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadIcolDepCnt ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- ObjIndDobj ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- TrgAfterUpgrade ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- ObjType0 ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadOwner ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- StmtAuditOnCommit ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadPublicObjects ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadSegFreelist ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- BadDepends ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS
.- CheckDual ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- ObjectNames ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- BadCboHiLo ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- ChkIotTs ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- NoSegmentIndex ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- BadNextObject ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- DroppedROTS ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- FilBlkZero ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- DbmsSchemaCopy ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- OrphanedObjError ... 1102000400 > 1102000000 10/01 01:07:50 PASS
.- ObjNotLob ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- MaxControlfSeq ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- SegNotInDeferredStg ... 1102000400 > 1102000000 10/01 01:07:50 PASS
.- SystemNotRfile1 ... 1102000400 > 902000000 10/01 01:07:50 PASS
.- DictOwnNonDefaultSYSTEM ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- OrphanTrigger ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
.- ObjNotTrigger ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS
---------------------------------------
01-OCT-2022 01:07:50 Elapsed: 2 secs
---------------------------------------
Found 0 potential problem(s) and 0 warning(s)
PL/SQL procedure successfully completed.
Statement processed.
数据库字典本身没有大问题,但是为了排除潜在风险,建议逻辑迁移到新库
asm disk被分区,格式化为ext4恢复
有客户因为没有认识到linux中的磁盘被asm使用,对其进行分区并且做成了ext4的文件系统,从history中获取客户操作命令
600 fdisk -l 601 fdisk /dev/sdb 602 mkfs ext4 /dev/sdb1 603 fdisk -l 604 mkfs -t ext4 /dev/sdb1 605 cd / 606 mkdir u01 607 mount /dev/sdb1 /u01 608 df -h
确认磁盘情况,确认sdb直接被asm磁盘使用(asmdisk1)
[grid@racdb3 trace]$ ls -l /dev/asm* brw-rw---- 1 grid asmadmin 8, 16 Sep 30 14:34 /dev/asmdisk1 [grid@racdb3 trace]$ ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 Jul 27 2021 /dev/sda brw-rw---- 1 root disk 8, 1 Jul 27 2021 /dev/sda1 brw-rw---- 1 root disk 8, 2 Jul 27 2021 /dev/sda2 brw-rw---- 1 root disk 8, 16 Sep 30 11:23 /dev/sdb brw-rw---- 1 root disk 8, 17 Sep 30 11:23 /dev/sdb1 brw-rw---- 1 root disk 8, 32 Jul 27 2021 /dev/sdc
asm日志报错
Fri Sep 30 11:31:41 2022 NOTE: SMON starting instance recovery for group DATA domain 1 (mounted) NOTE: SMON skipping disk 0 - no header NOTE: cache initiating offline of disk 0 group DATA NOTE: process _smon_+asm3 (2989) initiating offline of disk 0.3915953109 (DATA_0000) with mask 0x7e in group 1 NOTE: initiating PST update: grp = 1, dsk = 0/0xe968b3d5, mask = 0x6a, op = clear Fri Sep 30 11:31:41 2022 GMON updating disk modes for group 1 at 4 for pid 17, osid 2989 ERROR: Disk 0 cannot be offlined, since diskgroup has external redundancy. ERROR: too many offline disks in PST (grp 1) Fri Sep 30 11:31:41 2022 NOTE: cache dismounting (not clean) group 1/0x34F84324 (DATA) WARNING: Offline for disk DATA_0000 in mode 0x7f failed. Fri Sep 30 11:31:41 2022 NOTE: halting all I/Os to diskgroup 1 (DATA) ERROR: No disks with F1X0 found on disk group DATA NOTE: aborting instance recovery of domain 1 due to diskgroup dismount NOTE: SMON skipping lock domain (1) validation because diskgroup being dismounted
数据库日志报错
Fri Sep 30 11:31:44 2022 Errors in file /oracle/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_lmon_26356.trc: ORA-00202: control file: '+DATA/xifenfei/controlfile/current.256.968794097' ORA-15078: ASM diskgroup was forcibly dismounted Fri Sep 30 11:31:45 2022 Errors in file /oracle/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_ckpt_26388.trc: ORA-00206: error in writing (block 5, # blocks 1) of control file ORA-00202: control file: '+DATA/xifenfei/controlfile/current.257.968794097' ORA-15078: ASM diskgroup was forcibly dismounted ORA-15078: ASM diskgroup was forcibly dismounted ORA-00206: error in writing (block 5, # blocks 1) of control file ORA-00202: control file: '+DATA/xifenfei/controlfile/current.256.968794097' ORA-15078: ASM diskgroup was forcibly dismounted ORA-15078: ASM diskgroup was forcibly dismounted Errors in file /oracle/app/oracle/diag/rdbms/xifenfei/xifenfei3/trace/xifenfei3_ckpt_26388.trc: ORA-00221: error on write to control file ORA-00206: error in writing (block 5, # blocks 1) of control file ORA-00202: control file: '+DATA/xifenfei/controlfile/current.257.968794097' ORA-15078: ASM diskgroup was forcibly dismounted ORA-15078: ASM diskgroup was forcibly dismounted ORA-00206: error in writing (block 5, # blocks 1) of control file ORA-00202: control file: '+DATA/xifenfei/controlfile/current.256.968794097' ORA-15078: ASM diskgroup was forcibly dismounted ORA-15078: ASM diskgroup was forcibly dismounted CKPT (ospid: 26388): terminating the instance due to error 221
通过kfed 查看asm disk被破坏情况
[root@racdb3 scsi_host]# kfed read /dev/asmdisk1
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt: 0 ; 0x003: 0x00
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
kfbh.check: 0 ; 0x00c: 0x00000000
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
7F4FAAD45400 00000000 00000000 00000000 00000000 [................]
Repeat 26 times
7F4FAAD455B0 00000000 00000000 45C222C8 01000000 [.........".E....]
7F4FAAD455C0 FE830001 003FFFFF E9D60000 0000FFFF [......?.........]
7F4FAAD455D0 00000000 00000000 00000000 00000000 [................]
Repeat 1 times
7F4FAAD455F0 00000000 00000000 00000000 AA550000 [..............U.]
7F4FAAD45600 00000000 00000000 00000000 00000000 [................]
Repeat 223 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
[root@racdb3 scsi_host]# kfed read /dev/asmdisk1 aun=2
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt: 0 ; 0x003: 0x00
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
kfbh.check: 0 ; 0x00c: 0x00000000
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
7F64E77A0400 00000000 00000000 00000000 00000000 [................]
Repeat 223 times
7F64E77A1200 000081F9 000181F9 000281F9 000381F9 [................]
7F64E77A1210 000481F9 000C81F9 000D81F9 001881F9 [................]
7F64E77A1220 002881F9 003E81F9 007981F9 00AB81F9 [..(...>...y.....]
7F64E77A1230 013881F9 016C81F9 044581F9 04B081F9 [..8...l...E.....]
7F64E77A1240 061A81F9 0CD081F9 1E8481F9 00000000 [................]
7F64E77A1250 00000000 00000000 00000000 00000000 [................]
Repeat 26 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
[root@racdb3 scsi_host]# kfed read /dev/asmdisk1 aun=3
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt: 0 ; 0x003: 0x00
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
kfbh.check: 0 ; 0x00c: 0x00000000
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
7F8D101FF400 00000000 00000000 00000000 00000000 [................]
Repeat 223 times
7F8D10200200 000082F9 000182F9 000282F9 000382F9 [................]
7F8D10200210 000482F9 000C82F9 000D82F9 001882F9 [................]
7F8D10200220 002882F9 003E82F9 007982F9 00AB82F9 [..(...>...y.....]
7F8D10200230 013882F9 016C82F9 044582F9 04B082F9 [..8...l...E.....]
7F8D10200240 061A82F9 0CD082F9 1E8482F9 00000000 [................]
7F8D10200250 00000000 00000000 00000000 00000000 [................]
Repeat 26 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
[root@racdb3 scsi_host]# kfed read /dev/asmdisk1 aun=4
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt: 0 ; 0x003: 0x00
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
kfbh.check: 0 ; 0x00c: 0x00000000
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
7F142949C400 00000000 00000000 00000000 00000000 [................]
Repeat 223 times
7F142949D200 000083F9 000183F9 000283F9 000383F9 [................]
7F142949D210 000483F9 000C83F9 000D83F9 001883F9 [................]
7F142949D220 002883F9 003E83F9 007983F9 00AB83F9 [..(...>...y.....]
7F142949D230 013883F9 016C83F9 044583F9 04B083F9 [..8...l...E.....]
7F142949D240 061A83F9 0CD083F9 1E8483F9 00000000 [................]
7F142949D250 00000000 00000000 00000000 00000000 [................]
Repeat 26 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
[root@racdb3 scsi_host]# kfed read /dev/asmdisk1 aun=5
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt: 0 ; 0x003: 0x00
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
kfbh.check: 0 ; 0x00c: 0x00000000
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
7F0615CF6400 00000000 00000000 00000000 00000000 [................]
Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
磁盘前几个au被破坏严重.而且相关的备份block都已经损坏,基于这种情况,直接参考:
asm磁盘dd破坏恢复
asm disk header 彻底损坏恢复
asm disk 磁盘部分被清空恢复
通过底层恢复出来相关数据文件,并检测正常

进一步通过au分配列表获恢复redo,ctl等文件
H:\TEMP\asm-ext4\other>dir 驱动器 H 中的卷是 SSD-SX 卷的序列号是 84EB-F434 H:\TEMP\asm-ext4\other 的目录 2022-09-30 21:52 25,165,824 256.dd 2022-09-30 21:52 25,165,824 257.dd 2022-09-30 23:52 52,429,312 258.dd.1 2022-09-30 23:54 52,429,312 259.dd.1 2022-09-30 23:55 52,429,312 260.dd.1 2022-09-30 23:55 52,429,312 261.dd.1 2022-09-30 23:56 52,429,312 270.dd.1 2022-09-30 23:57 52,429,312 271.dd.1 2022-09-30 23:57 52,429,312 272.dd.1 2022-09-30 23:57 52,429,312 273.dd.1 2022-09-30 23:58 52,429,312 274.dd.1 2022-10-01 00:01 52,429,312 275.dd.1 2022-10-01 00:00 52,429,312 276.dd.1 2022-10-01 00:00 52,429,312 277.dd.1 2022-10-01 00:00 52,429,312 278.dd.1 2022-09-30 23:59 52,429,312 279.dd.1 2022-09-30 23:59 52,429,312 280.dd.1 2022-09-30 23:59 52,429,312 281.dd.1
在另外的新机器上尝试恢复库
[oracle@xifenfei ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 1 10:18:58 2022 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount pfile='/tmp/pfile' ORACLE instance started. Total System Global Area 1519898624 bytes Fixed Size 2253464 bytes Variable Size 939527528 bytes Database Buffers 570425344 bytes Redo Buffers 7692288 bytes ORA-00227: corrupt block detected in control file: (block 8, # blocks 1) ORA-00202: control file: '/oradata/256.dd'
控制文件损坏,重建ctl
SQL> CREATE CONTROLFILE REUSE DATABASE "xifenfei" NORESETLOGS NOARCHIVELOG 2 MAXLOGFILES 50 3 MAXLOGMEMBERS 5 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 226 7 LOGFILE 8 group 7 '/oradata/270.dd.1' size 50M, 9 group 8 '/oradata/272.dd.1' size 50M, 10 group 5 '/oradata/274.dd.1' size 50M, 11 group 6 '/oradata/276.dd.1' size 50M, 12 group 3 '/oradata/278.dd.1' size 50M, 13 group 4 '/oradata/280.dd.1' size 50M, 14 group 1 '/oradata/258.dd.1' size 50M, 15 group 2 '/oradata/260.dd.1' size 50M 16 DATAFILE 17 '/oradata/1', 18 '/oradata/2', 19 '/oradata/3', 20 '/oradata/4', 21 '/oradata/5', 22 '/oradata/6', 23 '/oradata/7', 24 '/oradata/8', 25 '/oradata/9', 26 '/oradata/10', 27 '/oradata/11' 28 CHARACTER SET ZHS16GBK 29 ; Control file created.
尝试open库,报ORA-600 kqfidps_update_stats:2,ORA-600 4194等错误
SQL> recover database; Media recovery complete. SQL> alter database open ; alter database open * ERROR at line 1: ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00600: internal error code, arguments: [kqfidps_update_stats:2], [0x7FFCCBEB3EC0], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [4193], [19319], [l.ok
解决该异常,open数据库成功
SQL> startup mount pfile='/tmp/pfile'; ORACLE instance started. Total System Global Area 1519898624 bytes Fixed Size 2253464 bytes Variable Size 939527528 bytes Database Buffers 570425344 bytes Redo Buffers 7692288 bytes Database mounted. SQL> alter database open; Database altered.
导出数据库,遭遇个别表如下ORA-08103和ORA-01555两种错误,这种是由于个别block在做成文件系统的时候被损坏,底层恢复的时候block被置空导致,对其异常表进行单独处理即可
. . 正在导出表 ALBUM EXP-00056: 遇到 ORACLE 错误 8103 ORA-08103: 对象不再存在 . . 正在导出表 M_PUSH_CONTENT EXP-00056: 遇到 ORACLE 错误 1555 ORA-01555: 快照过旧: 回退段号 (名称为 "") 过小 ORA-22924: 快照太旧
通过上述操作,实现客户数据的恢复,最大限度挽回客户损坏,再次提醒对于asm disk进行了误操作,建议第一时间保护现场(不要有任何的写入操作,可以最大限度恢复数据)


加我微信(17813235971)
加我QQ(107644445)

