标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 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-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 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,770)
- DB2 (22)
- MySQL (77)
- Oracle (1,611)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (166)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (69)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (29)
- Oracle备份恢复 (592)
- Oracle安装升级 (98)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (86)
- PostgreSQL (30)
- pdu工具 (6)
- PostgreSQL恢复 (9)
- SQL Server (32)
- SQL Server恢复 (13)
- TimesTen (7)
- 达梦数据库 (3)
- 达梦恢复 (1)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (39)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (22)
-
最近发表
- Oracle 19c 202507补丁(RUs+OJVM)-19.28
- 2025年的Oracle 8.0.5数据库恢复
- ORA-600 kokiasg1故障分析(obj$中核心字典序列全部被恶意删除)
- ORA-00756 ORA-10567故障数据0丢失恢复
- 数据库文件变成32k故障恢复
- tcp连接过多导致监听TNS-12532 TNS-12560 TNS-00502错误
- 文件系统格式化MySQL数据库恢复
- .sstop勒索加密数据库恢复
- 解决一次硬件恢复之后数据文件0kb的故障恢复case
- Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’问题处理
- ORA-01171: datafile N going offline due to error advancing checkpoint
- linux环境oracle数据库被文件系统勒索加密为.babyk扩展名溯源
- ORA-600 ksvworkmsgalloc: bad reaper
- ORA-600 krccfl_chunk故障处理
- Oracle Recovery Tools恢复案例总结—202505
- ORA-600 kddummy_blkchk 数据库循环重启
- 记录一次asm disk加入到vg通过恢复直接open库的案例
- CHECKDB 发现了 N 个分配错误和 M 个一致性错误
- 达梦数据库dm.ctl文件异常恢复
- Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
分类目录归档:Oracle备份恢复
RMAN-06207 RMAN-06208报错解决
数据库在rman备份时执行delete noprompt expired backup报RMAN-06207和RMAN-06208错误
RMAN>delete noprompt expired backup; RMAN retention policy will be applied to the command RMAN retention policy is set to recovery window of 1 days allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1364 instance=hisdb1 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=3102 instance=hisdb1 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=4534 instance=hisdb1 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=5054 instance=hisdb1 device type=DISK Deleting the following obsolete backups and copies: Type Key Completion Time Filename/Handle -------------------- ------ ------------------ -------------------- Datafile Copy 3 15-JUN-18 +DATA/hisdb/datafile/xifenfei.282.978867569 Datafile Copy 4 15-JUN-18 +DATA/hisdb/datafile/xifenfei.283.978867589 Backup Set 54704 14-JUN-24 Backup Piece 54704 14-JUN-24 /oraback/rmanfile/ctl_20240614_m22ta31a_1_1.rman RMAN-06207: WARNING: 3 objects could not be deleted for DISK channel(s) due RMAN-06208: to mismatched status. Use CROSSCHECK command to fix status RMAN-06210: List of Mismatched objects RMAN-06211: ========================== RMAN-06212: Object Type Filename/Handle RMAN-06213: --------------- --------------------------------------------------- RMAN-06214: Datafile Copy +DATA/hisdb/datafile/xifenfei.282.978867569 RMAN-06214: Datafile Copy +DATA/hisdb/datafile/xifenfei.283.978867589 RMAN-06214: Backup Piece /oraback/rmanfile/ctl_20240614_m22ta31a_1_1.rman
处理方法crosscheck copy
RMAN> crosscheck copy; using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1364 instance=hisdb1 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=3102 instance=hisdb1 device type=DISK allocated channel: ORA_DISK_3 channel ORA_DISK_3: SID=4534 instance=hisdb1 device type=DISK allocated channel: ORA_DISK_4 channel ORA_DISK_4: SID=5070 instance=hisdb1 device type=DISK specification does not match any control file copy in the repository validation succeeded for archived log archived log file name=+FRA/hisdb/archivelog/2024_06_16/thread_2_seq_149520.1675.1171833177 RECID=589464 STAMP=1171833177 Crosschecked 1 objects validation failed for datafile copy datafile copy file name=+DATA/hisdb/datafile/xifenfei.282.978867569 RECID=3 STAMP=978867571 validation failed for datafile copy datafile copy file name=+DATA/hisdb/datafile/xifenfei.283.978867589 RECID=4 STAMP=978867590 Crosschecked 2 objects
再次验证删除不再提示错误
RMAN> DELETE noprompt OBSOLETE; RMAN retention policy will be applied to the command RMAN retention policy is set to recovery window of 1 days using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 no obsolete backups found
O/S-Error: (OS 23) 数据错误(循环冗余检查)—故障处理
有客户由于磁盘坏道导致数据文件访问报ORA-27070 OSD-04016 O/S-Error等相关错误
rman 尝试读取88号文件
RMAN> backup datafile 88 format 'e:\rman\%d_%T_%I.%s%p'; 启动 backup 于 05-6月 -24 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=2246 设备类型=DISK 通道 ORA_DISK_1: 正在启动全部数据文件备份集 通道 ORA_DISK_1: 正在指定备份集内的数据文件 输入数据文件: 文件号=00088 名称=E:\APP\ADMINISTRATOR\ORADATA\XFF\XIFENFEI.ORA 通道 ORA_DISK_1: 正在启动段 1 于 05-6月 -24 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 06/05/2024 18:33:43 上) 失败 ORA-19501: 文件 "E:\APP\ADMINISTRATOR\ORADATA\XFF\XIFENFEI.ORA", 块编号 322944 (块大小=8192) 上出现读取错误 ORA-27070: 异步读取/写入失败 OSD-04016: 异步 I/O 请求排队时出错。 O/S-Error: (OS 23) 数据错误(循环冗余检查)。
检查系统日志,发现有报:设备 \Device\Harddisk0\DR0 有一个不正确的区块
到目前为止基本上可以判断是文件系统或者磁盘层面出现坏道导致该问题(磁盘坏道概率更大),使用工具对损坏数据文件进行强制拷贝,提示少量扇区数据无法拷贝

通过dbv检查恢复出来文件效果
E:\check_db>DBV FILE=D:/XIFENFEI.ORA DBVERIFY: Release 11.2.0.3.0 - Production on 星期日 6月 9 22:17:28 2024 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. DBVERIFY - 开始验证: FILE = D:\XIFENFEI.ORA 页 323055 标记为损坏 Corrupt block relative dba: 0x1604edef (file 88, block 323055) Bad header found during dbv: Data in bad block: type: 229 format: 5 rdba: 0xe5e5e5e5 last change scn: 0xe5e5.e5e5e5e5 seq: 0xe5 flg: 0xe5 spare1: 0xe5 spare2: 0xe5 spare3: 0xe5e5 consistency value in tail: 0x4c390601 check value in block header: 0xe5e5 computed block checksum: 0x5003 DBVERIFY - 验证完成 检查的页总数: 524288 处理的页总数 (数据): 204510 失败的页总数 (数据): 0 处理的页总数 (索引): 127485 失败的页总数 (索引): 0 处理的页总数 (其他): 3030 处理的总页数 (段) : 0 失败的总页数 (段) : 0 空的页总数: 189262 标记为损坏的总页数: 1 流入的页总数: 0 加密的总页数 : 0 最高块 SCN : 184063522 (3470.184063522)
运气不错,就一个数据库block异常,通过dba_extents查询坏块所属对象,运气不太好是一个表数据
SQL> SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, TABLESPACE_NAME, A.PARTITION_NAME 2 FROM DBA_EXTENTS A 3 WHERE FILE_ID = &FILE_ID 4 AND &BLOCK_ID BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1; 输入 file_id 的值: 88 原值 3: WHERE FILE_ID = &FILE_ID 新值 3: WHERE FILE_ID = 88 输入 block_id 的值: 323055 原值 4: AND &BLOCK_ID BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1 新值 4: AND 323055 BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS - 1 OWNER ------------------------------ SEGMENT_NAME -------------------------------------------------------------------------------- SEGMENT_TYPE TABLESPACE_NAME PARTITION_NAME ------------------ ------------------------------ ------------------------------ XFFUSER XFFTABLE TABLE XFFTBS_TAB2
设置跳过坏块导出数据,然后重命名原表导入数据,完成本次恢复,以前有过类似恢复:
一次侥幸的OSD-04016 O/S-Error异常恢复
O/S-Error: (OS 23) 数据错误(循环冗余检查) 数据库恢复
异常断电数据库恢复-从ORA-600 2131到ORA-08102: 未找到索引关键字, 对象号 39
数据库启动报ORA-600 2131,以前遇到过类似问题:ORA-600 2131故障处理
SQL> alter database mount; alter database mount * 第 1 行出现错误: ORA-00600: ??????, ??: [2131], [9], [8], [], [], [], [], [], [], [], [], []
Tue Jun 04 14:12:18 2024 RECO started with pid=15, OS id=3244 Tue Jun 04 14:12:18 2024 MMON started with pid=16, OS id=3256 Tue Jun 04 14:12:18 2024 MMNL started with pid=17, OS id=3432 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'... starting up 1 shared server(s) ... ORACLE_BASE from environment = E:\app\Administrator Tue Jun 04 14:12:22 2024 alter database mount exclusive Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\XFF\XFF\trace\XFF_ora_2536.trc (incident=427583): ORA-00600: ??????, ??: [2131], [9], [8], [], [], [], [], [], [], [], [], [] Tue Jun 04 14:12:28 2024 Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. ORA-600 signalled during: alter database mount exclusive...
重建ctl,然后重试recover 数据库,报ORA-600 kdourp_inorder2和ORA-600 3020错误,这些错误本质都是由于redo信息和block信息不匹配导致
SQL> recover datafile 1; ORA-00283: 恢复会话因错误而取消 ORA-10562: Error occurred while applying redo to data block (file# 1, block# 74805) ORA-10564: tablespace SYSTEM ORA-01110: 数据文件 1: 'E:\ORADATA\XFF\SYSTEM01.DBF' ORA-10561: block type 'TRANSACTION MANAGED DATA BLOCK', data object# 8 ORA-00600: 内部错误代码, 参数: [kdourp_inorder2], [16], [3], [0], [108], [], [], [], [], [], [], [] SQL> recover datafile 7; ORA-00283: 恢复会话因错误而取消 ORA-00600: 内部错误代码, 参数: [3020], [7], [385], [29360513], [], [], [], [], [], [], [], [] ORA-10567: Redo is inconsistent with data block (file# 7, block# 385, file offset is 3153920 bytes) ORA-10564: tablespace UNDOTBS2 ORA-01110: 数据文件 7: 'E:\ORADATA\XFF\UNDOTBS2.DBF' ORA-10560: block type 'KTU UNDO BLOCK'
通过屏蔽一致性,修改文件头scn,强制打开数据库
SQL> recover database until cancel; ORA-00279: 更改 56782359 (在 06/04/2024 14:00:36 生成) 对于线程 1 是必需的 ORA-00289: 建议: E:\APP\ARCHIVELOG\ARC0000005415_1165094245.0001 ORA-00280: 更改 56782359 (用于线程 1) 在序列 #5415 中 指定日志: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误 ORA-01194: 文件 1 需要更多的恢复来保持一致性 ORA-01110: 数据文件 1: 'E:\ORADATA\XFF\SYSTEM01.DBF' ORA-01112: 未启动介质恢复 SQL> alter database open resetlogs; 数据库已更改。
尝试导出数据报ORA-08102,导致数据库无法正常导出
C:\Users\Administrator>expdp "'/ as sysdba'" full=y dumpfile=full_20240604_%U.dmp DIRECTORY=expdp_dir logfile=full_20240604.log parallel=2 EXCLUDE=STATISTICS,AUDIT Export: Release 11.2.0.4.0 - Production on 星期二 6月 4 18:40:26 2024 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORA-31626: 作业不存在 ORA-31633: 无法创建主表 "SYS.SYS_EXPORT_FULL_05" ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: 在 "SYS.KUPV$FT", line 1038 ORA-08102: 未找到索引关键字, 对象号 39, 文件 1, 块 97540 (2)
obj 39 为OBJ$的I_OBJ4对象报ORA-08102
SQL> select owner,object_name,object_type from dba_objects where object_id=39 2 / OWNER OBJECT_NAME OBJECT_TYPE ------------------------------ ------------------------------ ------------------- SYS I_OBJ4 INDEX
该对象属于bootstrap$中核心对象,无法直接rebuild,参考下面文章处理,然后再尝试导出数据
分享I_OBJ4 ORA-8102故障恢复案例
使用bbed 修复I_OBJ4 index 报ORA-8102错误
bootstrap$核心index(I_OBJ1,I_USER1,I_FILE#_BLOCK#,I_IND1,I_TS#,I_CDEF1等)异常恢复—ORA-00701错误解决
C:\Users\Administrator>expdp "'/ as sysdba'" full=y dumpfile=full_20240604_%U.dmp DIRECTORY=expdp_dir logfile=full_20240604.log parallel=2 EXCLUDE=STATISTICS,AUDIT Export: Release 11.2.0.4.0 - Production on 星期二 6月 4 18:43:47 2024 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORA-31626: 作业不存在 ORA-31637: 无法创建作业 SYS_EXPORT_FULL_01 (用户 SYS) ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: 在 "SYS.KUPV$FT_INT", line 798 ORA-39080: 无法为数据泵作业创建队列 "KUPC$C_1_20240604184348" 和 "KUPC$S_1_20240604184348" ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95 ORA-06512: 在 "SYS.KUPC$QUE_INT", line 1534 ORA-08102: 未找到索引关键字, 对象号 53, 文件 1, 块 97715 (2)
通过类似方法分析确认为CDEF$的I_CDEF1 index,处理方法和I_OBJ4一样,然后导出数据成功,导入到新库中,在这个迁移过程中遭遇Wrapped 加密的package body无效的问题,具体参见:数据泵迁移Wrapped PLSQL之后报PLS-00753