标签云
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,769)
- DB2 (22)
- MySQL (77)
- Oracle (1,610)
- 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安装升级 (97)
- 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)
-
最近发表
- 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故障
- 可能是 tempdb 空间用尽或某个系统表不一致故障处理
分类目录归档:Oracle备份恢复
ORA-600 2131故障处理
数据库启动报ORA-600 2131错误,查看alert日志发现是在mount过程报错
Fri May 17 20:58:28 2024 Starting ORACLE instance (normal) LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Initial number of CPU is 16 Number of processor cores in the system is 8 Number of processor sockets in the system is 1 Picked latch-free SCN scheme 3 Autotune of undo retention is turned on. IMODE=BR ILAT =249 LICENSE_MAX_USERS = 0 SYS auditing is disabled Starting up: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options. Windows NT Version V6.2 CPU : 16 - type 8664, 8 Physical Cores Process Affinity : 0x0x0000000000000000 Memory (Avail/Total): Ph:93799M/97925M, Ph+PgF:78891M/112261M Using parameter settings in server-side spfile E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEXFF.ORA System parameters with non-default values: processes = 1500 sessions = 2272 nls_language = "SIMPLIFIED CHINESE" nls_territory = "CHINA" sga_target = 29440M control_files = "E:\ORADATA\xff\CONTROL01.CTL" db_block_size = 8192 compatible = "11.2.0.4.0" log_archive_dest_1 = "LOCATION=e:\app\archivelog\" log_archive_format = "ARC%S_%R.%T" undo_tablespace = "UNDOTBS2" sec_case_sensitive_logon = FALSE remote_login_passwordfile= "EXCLUSIVE" db_domain = "" dispatchers = "(PROTOCOL=TCP) (SERVICE=xffXDB)" audit_file_dest = "E:\APP\ADMINISTRATOR\ADMIN\xff\ADUMP" audit_trail = "NONE" db_name = "xff" open_cursors = 300 pga_aggregate_target = 9792M diagnostic_dest = "E:\APP\ADMINISTRATOR" Fri May 17 20:58:29 2024 PMON started with pid=2, OS id=6696 Fri May 17 20:58:29 2024 PSP0 started with pid=3, OS id=2424 Fri May 17 20:58:30 2024 VKTM started with pid=4, OS id=5472 at elevated priority VKTM running at (10)millisec precision with DBRM quantum (100)ms Fri May 17 20:58:30 2024 GEN0 started with pid=5, OS id=5764 Fri May 17 20:58:30 2024 DIAG started with pid=6, OS id=372 Fri May 17 20:58:30 2024 DBRM started with pid=7, OS id=2992 Fri May 17 20:58:30 2024 DIA0 started with pid=8, OS id=4960 Fri May 17 20:58:30 2024 MMAN started with pid=9, OS id=6036 Fri May 17 20:58:30 2024 DBW0 started with pid=10, OS id=4724 Fri May 17 20:58:30 2024 DBW1 started with pid=11, OS id=2652 Fri May 17 20:58:30 2024 LGWR started with pid=12, OS id=5320 Fri May 17 20:58:30 2024 CKPT started with pid=13, OS id=5732 Fri May 17 20:58:30 2024 SMON started with pid=14, OS id=936 Fri May 17 20:58:30 2024 RECO started with pid=15, OS id=2192 Fri May 17 20:58:30 2024 MMON started with pid=16, OS id=5576 Fri May 17 20:58:30 2024 MMNL started with pid=17, OS id=5748 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 Fri May 17 20:58:31 2024 ALTER DATABASE MOUNT Errors in file E:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\trace\xff_ora_5452.trc (incident=403399): ORA-00600: ??????, ??: [2131], [9], [8], [], [], [], [], [], [], [], [], [] Incident details in: E:\APP\ADMINISTRATOR\diag\rdbms\xff\xff\incident\incdir_403399\xff_ora_5452_i403399.trc 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...
这个错误是由于controlfile损坏导致,有这个库以前部署过rman备份,解决起来比较简单,使用rman还原控制文件,并尝试recover
RMAN> restore controlfile from 'E:\rmanback\rmanfile\CTL_20240517_A62R067K_1_1.RMAN'; 启动 restore 于 17-5月 -24 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在还原控制文件 通道 ORA_DISK_1: 还原完成, 用时: 00:00:01 输出文件名=E:\ORADATA\XFF\CONTROL01.CTL 完成 restore 于 17-5月 -24 RMAN> RMAN> RMAN> alter database mount; 数据库已装载 释放的通道: ORA_DISK_1 RMAN> recover database; 启动 recover 于 17-5月 -24 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=996 设备类型=DISK 正在开始介质的恢复 线程 1 序列 4100 的归档日志已作为文件 E:\ORADATA\XFF\REDO02.LOG 存在于磁盘上 线程 1 序列 4101 的归档日志已作为文件 E:\ORADATA\XFF\REDO03.LOG 存在于磁盘上 线程 1 序列 4102 的归档日志已作为文件 E:\ORADATA\XFF\REDO01.LOG 存在于磁盘上 归档日志文件名=E:\APP\ARCHIVELOG\ARC0000004025_1165094245.0001 线程=1 序列=4025 归档日志文件名=E:\APP\ARCHIVELOG\ARC0000004026_1165094245.0001 线程=1 序列=4026 ………… 归档日志文件名=E:\APP\ARCHIVELOG\ARC0000004099_1165094245.0001 线程=1 序列=4099 归档日志文件名=E:\ORADATA\XFF\REDO02.LOG 线程=1 序列=4100 归档日志文件名=E:\ORADATA\XFF\REDO03.LOG 线程=1 序列=4101 归档日志文件名=E:\ORADATA\XFF\REDO01.LOG 线程=1 序列=4102 介质恢复完成, 用时: 00:00:22 完成 recover 于 17-5月 -24 RMAN> exit 恢复管理器完成。 E:\oradata\XFF>
这种恢复情况下,如果现在要打开库,需要resetlogs方式,考虑通过创建ctl直接打开(不想用resetlogs)
SQL> shutdown immediate; ORA-01109: 数据库未打开 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup nomount; ORACLE 例程已经启动。 Total System Global Area 3.0732E+10 bytes Fixed Size 2296264 bytes Variable Size 3825206840 bytes Database Buffers 2.6844E+10 bytes Redo Buffers 61206528 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "XFF" NORESETLOGS ARCHIVELOG 2 MAXLOGFILES 16 3 MAXLOGMEMBERS 3 4 MAXDATAFILES 100 5 MAXINSTANCES 8 6 MAXLOGHISTORY 876 7 LOGFILE 8 GROUP 1 'E:\ORADATA\XFF\REDO01.LOG' SIZE 50M BLOCKSIZE 512, 9 GROUP 2 'E:\ORADATA\XFF\REDO02.LOG' SIZE 50M BLOCKSIZE 512, 10 GROUP 3 'E:\ORADATA\XFF\REDO03.LOG' SIZE 50M BLOCKSIZE 512 11 -- STANDBY LOGFILE 12 DATAFILE 13 'E:\ORADATA\XFF\SYSTEM01.DBF', 14 'E:\ORADATA\XFF\SYSAUX01.DBF', 15 'E:\ORADATA\XFF\USERS01.DBF', 16 'E:\ORADATA\XFF\XFF_DATA01.DBF', 17 'E:\ORADATA\XFF\XFF_INDEX01.DBF', 18 'E:\ORADATA\XFF\UNDOTBS2.DBF' 19 CHARACTER SET ZHS16GBK 20 ; 控制文件已创建。 SQL> recover database; 完成介质恢复。 SQL> alter database open; 数据库已更改。 SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORADATA\XFF\TEMP01.DBF' REUSE; 表空间已更改。
至此本次恢复晚上,由于arch,redo和数据文件没有损坏,恢复非常完美,参考以前类似说明:ORA-600 2131故障说明
rm -rf误删Oracle数据库恢复
有客户把虚拟化环境中装有oracle数据库的linux操作系统,由于操作失误在/下面执行了rm -rf *,导致所有文件被删除,系统无法启动.客户希望要求恢复出其中的Oracle数据库.由于是虚拟化环境,然后客户直接从虚拟化平台下载下来磁盘文件,通过工具加载和分析确认是一个xfs的文件系统
使用工具进一步扫描分析,找到部分数据文件

这里可以获取到两个信息:
1. 尝试恢复oracle的control01.ctl文件,然后通过该文件尝试分析其他数据文件位置,运气不错该文件恢复出来是好的,直接加载到新库查询v$datafile,分析出来所有数据文件信息
2. 这里有一个非常不幸的信息,oracle最核心的system01.dbf文件大小明显异常,进一步分析该文件信息,结论是该文件无法通过反删除方式进行恢复

先把可以os层面可以恢复的数据恢复出来,并且检查坏块情况

对于异常的system文件,有两个处理方法:
1. 通过阅览被删除的文件,发现客户有5月14日1点左右的rman备份,通过恢复软件中完整度提示,大概率应该没有什么问题,但是分析发现部分归档日志损坏无法完整恢复
2. 通过对磁盘做碎片,恢复出来该数据文件,参考以往文章:
dbca删除库和rm删库恢复
Oracle 数据文件大小为0kb或者文件丢失恢复
通过这个方法运气不错,恢复出来该库的system01.dbf文件非常完整0丢失
[oracle@localhost oradata]$ dbv file=system01.dbf DBVERIFY: Release 19.0.0.0.0 - Production on Thu May 15 23:26:57 2024 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /u01/oradata/system01.dbf DBVERIFY - Verification complete Total Pages Examined : 199680 Total Pages Processed (Data) : 113988 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 26869 Total Pages Failing (Index): 0 Total Pages Processed (Other): 40253 Total Pages Processed (Seg) : 1 Total Pages Failing (Seg) : 0 Total Pages Empty : 18570 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 658228557 (0.658228557)
完成上述恢复工作之后,目前确认只有sysaux01.dbf有8026个block损坏,但是该表空间不涉及业务数据,尝试在新的系统中直接修改路径并open库
SQL> recover database; ORA-00283: recovery session canceled due to errors ORA-38760: This database instance failed to turn on flashback database SQL> alter database flashback off; Database altered. SQL> recover database; Media recovery complete. SQL> alter database open; Database altered.
运气不错,数据库直接open成功,现在处理sysaux01.dbf中的损坏文件:
1. 确认该文件具体坏块开始位置:
2. 由于坏块在文件中比较靠后,分析实际存储数据最后的位置
SQL> select max(block_id+blocks) from dba_extents where file_id=3; MAX(BLOCK_ID+BLOCKS) -------------------- 3493120
最后存储数据的位置小于坏块的位置,证明坏块部分是没有存储数据的,直接resize掉坏块部分
SQL> alter database datafile '/u01/oradata/sysaux01.dbf' resize 27290m; Database altered.
然后dbv该数据文件,确认没有任何问题
[oracle@localhost trace]$ dbv file=/u01/oradata/sysaux01.dbf DBVERIFY: Release 19.0.0.0.0 - Production on Wed May 15 22:43:00 2024 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /u01/oradata/sysaux01.dbf DBVERIFY - Verification complete Total Pages Examined : 3493120 Total Pages Processed (Data) : 1516833 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 1868832 Total Pages Failing (Index): 0 Total Pages Processed (Lob) : 56577 Total Pages Failing (Lob) : 0 Total Pages Processed (Other): 32107 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 18771 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 658223915 (0.658223915)
使用rman检测全库,也确定没有任何问题
[oracle@localhost trace]$ rman target / Recovery Manager: Release 19.0.0.0.0 - Production on Wed May 15 22:43:58 2024 Version 19.15.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: XIFENFEI (DBID=2912535091) RMAN> RMAN> RMAN> backup validate check logical database skip inaccessible; Starting backup at 15-MAY-24 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=43 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=278 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set ……………… File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 32 OK 0 6273 6400 370625094 File Name: /u01/oradata/xff_com.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 0 Index 0 0 Other 0 127 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 33 OK 0 163752 832000 627920639 File Name: /u01/oradata/XFF_DATA_202312231.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 374296 Index 0 285002 Other 0 8950 Finished backup at 15-MAY-24 [oracle@localhost trace]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Wed May 15 22:47:44 2024 Version 19.15.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.15.0.0.0 SQL> select * from v$database_block_corruption ; no rows selected SQL>
至此对于这次rm -rf /*的故障实现了Oracle数据库完美恢复,数据0丢失.
分布式存储故障导致数据库无法启动故障处理
国内xx医院使用了国外医疗行业龙头的pacs系统,由于是一个历史库,存放在分布式存储中,由于存储同时多个节点故障,导致数据库多个文件异常,数据库无法启动,三方维护人员尝试通通过rman归档进行应用日志,结果发现日志有损坏报ORA-00354 ORA-00353,无法记录恢复,希望我们给予支持
Mon Apr 29 13:28:40 2024 Media Recovery failed with error 354 Mon Apr 29 13:28:40 2024 Errors in file F:\XXXXXX_DB\ORACLE\ADMIN\diag\rdbms\xxx\msxxx1\trace\xxx_pr00_4568.trc: ORA-00283: recovery session canceled due to errors ORA-00354: corrupt redo log block header ORA-00353: log corruption near block 487424 change 8737273868 time 04/01/2024 01:38:25 ORA-00334: archived log: 'F:\XXXXXX_DB\ORADATA\XXX\LOGARC0000052184_0922116268.0001' ORA-283 signalled during: alter database recover logfile 'F:\XXXXXX_DB\ORADATA\XXX\LOGARC0000052184_0922116268.0001'...
接手故障之后,通过尝试恢复发现除该错误之外,还有ORA-600 4552之类错误
跳过这些异常文件恢复,最终确认异常文件有如下部分

这些文件由于日志无法正常应用(有日志损坏无法应用,有日志和数据文件block不匹配导致无法应用),这样的情况直接通过自研的Oracle Recovery Tools小工具直接修改文件头信息

然后尝试OPEN数据库结果报ORA-1207

对于这个故障可以通过rectl或者using backup ctl方式处理,然后open数据库成功

由于该系统是历史库,不会有新业务写入,通过对异常表和索引进行处理之后,客户测试业务可以正常访问,完成本次恢复