标签云
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,884)
- DB2 (22)
- MySQL (82)
- Oracle (1,709)
- 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 (73)
- 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)
-
最近发表
- 记录19c ASM磁盘掉线触发ORA-59048故障处理
- 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使用说明
分类目录归档:数据库
bbed打开丢失部分system数据文件库
在某种情况下,数据库system表空间可能有多个数据文件,而意外的丢失了其中某个(不能为第一个),然后通过bbed来模拟一个数据文件来open库
system增加数据文件
SQL> alter tablespace system add datafile '/u01/oracle/oradata/ora11g/system02.dbf' size 10m; Tablespace altered. --创建表,为了使得数据库发生类此生产环境的部分操作,使得system表空间可能发生改变 SQL> create table t_xifenfei tablespace system 2 as 3 select * from dba_tables; Table created.
删除system中某个文件(system02.dbf)
[oracle@xifenfei ora11g]$ mv system02.dbf system02.dbf_bak
尝试启动数据库
SQL> shutdown abort ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 313860096 bytes Fixed Size 1344652 bytes Variable Size 251661172 bytes Database Buffers 54525952 bytes Redo Buffers 6328320 bytes Database mounted. ORA-01157: cannot identify/lock data file 8 - see DBWR trace file ORA-01110: data file 8: '/u01/oracle/oradata/ora11g/system02.dbf'
错误思路offline system数据文件
SQL> alter database datafile 8 offline; Database altered. SQL> alter database open; alter database open * ERROR at line 1: ORA-01147: SYSTEM tablespace file 8 is offline ORA-01110: data file 8: '/u01/oracle/oradata/ora11g/system02.dbf' SQL> alter database datafile 8 online; alter database datafile 8 online * ERROR at line 1: ORA-01157: cannot identify/lock data file 8 - see DBWR trace file ORA-01110: data file 8: '/u01/oracle/oradata/ora11g/system02.dbf'
使用system表空间其他数据文件来模拟丢失数据文件
[oracle@xifenfei ora11g]$ cp system01.dbf system02.dbf
通过dul获取file$相关信息
FILE# RELFILE# CRSCNWRP CRSCNBAS
bbed修改下面参数值
--rdba ub4 rdba_kcbh @4 0x02000001 --绝对文件号 ub2 kccfhfno @52 0x0008 --scn ub4 kscnbas @100 0xc01a3581 ub2 kscnwrp @104 0x0b2c --相对文件号 ub4 kcvfhrfn @368 0x00000008 --文件大小(不修改,为了重建欺骗数据库重建控制文件) kccfhfsz --文件创建时间(重建控制文件来实现控制文件和数据文件头一致) kcvfhcrt
重建控制文件
1.因为复制来自同一个表空间下面的数据文件,数据文件大小和原数据文件一样, 所以不要修改kccfhfsz大小,不然会出现
CREATE CONTROLFILE REUSE DATABASE "ORA11G" NORESETLOGS ARCHIVELOG * ERROR at line 1: ORA-01503: CREATE CONTROLFILE failed ORA-01200: actual file size of 90880 is smaller than correct size of 10485760 blocks ORA-01110: data file 8: '/u01/oracle/oradata/ora11g/system02.dbf'
2. 数据文件创建时间是通过kcvfhcrt参数值来控制的,而这个值是通过1988年01月01日00时00分00秒开始计时,按照每月31天计算的累计值,按照这个规则可以推断出来kcvfhcrt.因为数据库在启动的时候会验证控制文件中这个值和数据文件头的该值是否一致,所以如果你不修改kcvfhcrt,可以选择重建控制文件来完成.
再次open数据库
SQL> alter database open; alter database open * ERROR at line 1: ORA-01113: file 1 needs media recovery ORA-01110: data file 1: '/u01/oracle/oradata/ora11g/system01.dbf' SQL> recover database; Media recovery complete. SQL> alter database open; Database altered.
操作到这里,库已经可以正常的被open,如果通过这种方面屏蔽掉的异常的system数据文件中数据字典的部分表信息时,可能数据库依然不能被正常逻辑导出(例如dba_segments,dba_extents的基表等),需要进一步特殊处理,如果不能自行解决相关问题,需要恢复支持,请联系我们
Phone:17813235971 Q Q:107644445
E-Mail:dba@xifenfei.com
解决Statspack报告时Snap Id为”#####”
生成Statspack报告时候发现Snap Id为”#####”
Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
----------- -------- ------------ ------------ ------------
631690435 1 VODAPP vodapp T5440-1
Enter value for dbid: 631690435
Using 631690435 for database Id
Enter value for inst_num: 1
Using 1 for instance number
Completed Snapshots
Snap Snap
Instance DB Name Id Snap Started Level Comment
------------ ------------ ----- ----------------- ----- ----------------------
vodapp VODAPP ##### 16 Oct 2012 17:00 5
##### 16 Oct 2012 18:00 5
##### 16 Oct 2012 19:00 5
##### 16 Oct 2012 20:00 5
##### 16 Oct 2012 21:00 5
##### 16 Oct 2012 22:00 5
##### 16 Oct 2012 23:00 5
…………
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap:
因为没有办法定位到Snap Id,所以暂时无法准确的输入对应值,当然可以通过如下sql查询相应的Snap Id
select SNAP_ID,to_char(SNAP_TIME,'yyyy-mm-dd hh24:mi:ss') SNAP_TIME from STATS$SNAPSHOT order by SNAP_ID;
虽然可以通过这个方面来曲线解决这个问题,但是还有比较完善一点的解决方法,我们阅读spcreate.sql相关脚本,修改相关程序来实现
--通过spcreate.sql发现 spcreate.sql调用@@sprepins --编辑sprepins.sql column instart_fmt noprint; column inst_name format a12 heading 'Instance'; column db_name format a12 heading 'DB Name'; column snap_id format 9990 heading 'Snap|Id'; -->(修改为)column snap_id format 999990 heading 'Snap|Id'; column snapdat format a17 heading 'Snap Started' just c; column lvl format 99 heading 'Snap|Level'; column commnt format a22 heading 'Comment';
再次生成sp报告
SQL> @?/rdbms/admin/sprepins.sql
Instances in this Statspack schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
----------- -------- ------------ ------------ ------------
631690435 1 VODAPP vodapp T5440-1
Enter value for dbid: 631690435
Using 631690435 for database Id
Enter value for inst_num: 1
Using 1 for instance number
Completed Snapshots
Snap Snap
Instance DB Name Id Snap Started Level Comment
------------ ------------ ------- ----------------- ----- ----------------------
vodapp VODAPP 58916 16 Oct 2012 17:00 5
58917 16 Oct 2012 18:00 5
58918 16 Oct 2012 19:00 5
58919 16 Oct 2012 20:00 5
58920 16 Oct 2012 21:00 5
58921 16 Oct 2012 22:00 5
58922 16 Oct 2012 23:00 5
58923 17 Oct 2012 00:00 5
发表在 Oracle
评论关闭
ORA-00600[3689]引起MRP进程异常
今天检查数据库发现一数据库因为添加数据文件导致ORA-00600[3689]错误,进入引起MRP进程异常,从而使得数据库可以正常接收归档日志,但是不能在备库应用归档日志
数据库版本
SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Solaris: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 – Production
检查日志
Fri Oct 19 12:00:22 2012 RFS[1]: No standby redo logfiles created RFS[1]: Archived Log: '/baceldba/archive/1_30374_730819916.dbf' Fri Oct 19 12:00:28 2012 Media Recovery Log /baceldba/archive/1_30374_730819916.dbf WARNING: File being created with same name as in Primary Existing file may be overwritten Fri Oct 19 12:00:50 2012 Recovery created file /data/oracle/oradata/vodapp/NETTVCLPS02.dbf Successfully added datafile 32 to media recovery Datafile #32: '/data/oracle/oradata/vodapp/NETTVCLPS02.dbf ' WARNING: File being created with same name as in Primary Existing file may be overwritten Fri Oct 19 12:01:15 2012 Recovery created file /data/oracle/oradata/vodapp/UCICMS01_DATA04.dbf Successfully added datafile 33 to media recovery Datafile #33: '/data/oracle/oradata/vodapp/UCICMS01_DATA04.dbf' Fri Oct 19 12:01:16 2012 Errors in file /data/oracle/admin/vodapp/bdump/vodapp_mrp0_21304.trc: ORA-00600: internal error code, arguments: [3689], [33], [], [], [], [], [], [] Errors with log /baceldba/archive/1_30374_730819916.dbf MRP0: Background Media Recovery terminated with error 600 <--mrp进程异常 Fri Oct 19 12:01:16 2012 Errors in file /data/oracle/admin/vodapp/bdump/vodapp_mrp0_21304.trc: ORA-00600: internal error code, arguments: [3689], [33], [], [], [], [], [], [] Some recovered datafiles maybe left media fuzzy Media recovery may continue but open resetlogs may fail Fri Oct 19 12:01:18 2012 Errors in file /data/oracle/admin/vodapp/bdump/vodapp_mrp0_21304.trc: ORA-00600: internal error code, arguments: [3689], [33], [], [], [], [], [], [] Fri Oct 19 12:01:18 2012 Errors in file /data/oracle/admin/vodapp/bdump/vodapp_mrp0_21304.trc: ORA-00600: internal error code, arguments: [3689], [33], [], [], [], [], [], []
通过观察日志发现,数据库的mrp0进程因为ora-600的错误导致异常终止,从而使得dg备库无法正常使用归档日志
分析trace文件得出
*** 2012-10-19 12:01:16.327
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [3689], [33], [], [], [], [], [], []
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedmp()+744 CALL ksedst() 000000840 ?
FFFFFFFF7FFFA08C ?
000000000 ?
FFFFFFFF7FFF6B80 ?
FFFFFFFF7FFF58E8 ?
FFFFFFFF7FFF62E8 ?
kgeriv()+220 PTR_CALL 0000000000000000 000106000 ? 106323304 ?
106323000 ? 000106323 ?
000106000 ? 106323304 ?
kgesiv()+112 CALL kgeriv() 10631DCD0 ? 000000000 ?
000000E69 ? 000000001 ?
FFFFFFFF7FFFA5E8 ?
000001430 ?
ksesic1()+96 CALL kgesiv() 10631DCD0 ? 10646AD00 ?
000000E69 ? 000000001 ?
FFFFFFFF7FFFA5E8 ?
000001420 ?
kcvadc1_10gr2()+265 CALL ksesic1() 000000E69 ? 00010631D ?
2 1063232F8 ? 000106000 ?
106323000 ? 000106323 ?
kcoapl()+5664 PTR_CALL 0000000000000000 FFFFFFFF7A5570F8 ?
FFFFFFFF7FFFB320 ?
FFFFFFFF76667E18 ?
000000000 ? 000000021 ?
000000020 ?
kcramr()+5352 CALL kcoapl() FFFFFFFF76667E00 ?
000000003 ? 1055136B0 ?
105513340 ? 00000001B ?
000000017 ?
krddmr()+2688 CALL kcramr() 000000000 ?
FFFFFFFF7A55FF78 ?
000002000 ? 000106000 ?
0000001F6 ? 464897868 ?
krsmdp()+2332 CALL krddmr() 105502000 ?
FFFFFFFF7A5570F8 ?
000000001 ? 10646C760 ?
464897868 ? 000000000 ?
ksbrdp()+896 PTR_CALL 0000000000000000 000380000 ? 000380000 ?
105517000 ? 000106328 ?
000106000 ? 00000FFFF ?
opirip()+824 CALL ksbrdp() 000106320 ? 380007734 ?
000380000 ? 00038000E ?
000106000 ? 1005DCF80 ?
opidrv()+1200 CALL opirip() 10632A000 ? 000106000 ?
000106332 ? 380007000 ?
00010632A ? 1063D73A0 ?
sou2o()+80 CALL opidrv() 10632D460 ? 000000001 ?
000000032 ? 000000000 ?
000000032 ? 000106000 ?
opimai_real()+268 CALL sou2o() FFFFFFFF7FFFF968 ?
000000032 ? 000000004 ?
FFFFFFFF7FFFF990 ?
105C1F000 ? 000105C1F ?
main()+152 CALL opimai_real() 000000003 ?
FFFFFFFF7FFFFA68 ?
000000000 ? 000000000 ?
0023F9764 ? 000014400 ?
_start()+380 CALL main() 000000001 ?
FFFFFFFF7FFFFB78 ?
000000000 ?
FFFFFFFF7FFFFA70 ?
FFFFFFFF7FFFFB80 ?
FFFFFFFF7CF00200 ?
--------------------- Binary Stack Dump ---------------------
查询mos发现
Bug 5230162 : ORA-600[3689][42] ON PHYSICAL STANDBY PREVENT MEDIA RECOVERY描述相符
处理建议
1.10.2.0.1数据库不稳定,bug较多,建议升级数据库到10.2.0.4或者10.2.0.5
2.当前standby_file_management为true,建议修改为false,每次手工两边增加数据文件
3.主库添加数据文件后,观察备库的mrp进程是否正常,如果异常
1)尝试启动mrp进程,如果因为新增加的数据文件导致异常,那先使用rman或者其他方法拷贝主库新建立数据文件到备库,然后启动mrp进程
2)如果因为某种原因导致归档日志出现gap,可以从备份中找出归档日志,如果备份中没有,那可以使用基于scn的备份方式来修复该故障。
3)如果scn相差较大,建议直接重建备库
发表在 Data Guard
一条评论

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

