专业Oracle数据库恢复技术支持

数据库作为企业的核心,如果数据库因损坏无法正常运行,导致数据丢失,将给企业带来无法挽回的经济损坏。当您的数据库出现故障,又没有有效的备份之时,我们就是您的最后一道防线,尽最大可能帮您挽救数据库,减少损失。我们有几百套Oracle数据库恢复经历;版本从ORACLE 7.3、ORACLE 8/8I,ORACLE 9I、ORACLE 10G,ORACLE 11G和ORACLE 12C;平台有Linux、Windows、AIX、HP-UNIX、SOLARIS等;客户从西藏到海南,从黑龙江到贵州遍布中国所有省份;客户有医疗、军队、政府、制造、超市、社保、医保、物流、互联网、金融、医院、政务、公安等各个行业。不管你是什么样的数据库故障,不管你找过多少个人和公司恢复没成功,我们都是你的一个值得考虑选择。我们不能承诺全国技术第一,但我们可以保证如果我们不能恢复的Oracle数据库,你的数据库几乎无人可以恢复成功。我们承诺:所有数据库恢复不成功,未达到实现承诺不收取任何费用

如果需要专业ORACLE数据库恢复技术支持,请联系我们
Phone:17813235971    Q Q:107644445    E-Mail:dba@xifenfei.com

主要支持数据库恢复内容但不仅限如此
误drop table 恢复
误delete/update 恢复
误truncate table 恢复
丢失system文件数据库恢复
asm 磁盘被意外格式化恢复
bootstarp$中对象验证损坏
asm磁盘组损坏,无法正常mount
操作系统层面误删除数据文件恢复
数据库因为undo损坏/丢失无法正常启动
数据库因为某些数据块损坏不能正常工作
数据库因为ORA-600错误而不能正常启动
exp dmp文件损坏,无法正常导入数据库恢复
数据库因为控制文件损坏/丢失无法正常启动
数据库因为redo损坏/丢失导致无法正常启动
数据库因为数据文件损坏/丢失无法正常启动
数据库因为丢失归档导致数据文件无法online
数据库错误offline system文件导致无法启动
数据库因为操作系统损坏,只有数据文件恢复
数据库因存储异常,导致数据库无法正常启动
expdp dmp文件损坏,无法正常导入数据库恢复
部分asm磁盘丢失导致asm 磁盘组无法正常使用
数据库因为错误的resetlogs操作导致恢复无法继续
数据库因为断电、异常关机等原因导致不能正常启动

以下是比较典型的ORACLE故障恢复
system rollback异常恢复
ORA-00604 ORA-00607 ORA-00600[4194]

Thu Jul 26 13:21:11 2012
Recovery of Online Redo Log: Thread 1 Group 1 Seq 3994 Reading mem 0
  Mem# 0: /orasvr/mispdata/redo01.log
Block recovery completed at rba 3994.5.16, scn 0.89979533
Thu Jul 26 13:21:11 2012
Errors in file /orasvr/admin/mispdata/udump/mispdata_ora_2865.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [4194], [31], [2], [], [], [], [], []
Error 604 happened during db open, shutting down database
USER: terminating instance due to error 604
Instance terminated by USER, pid = 2865
ORA-1092 signalled during: ALTER DATABASE OPEN...

undo segment异常恢复
ORA-00704 ORA-00604 ORA-01555

Fri May  4 21:04:21 2012
select ctime, mtime, stime from obj$ where obj# = :1
Fri May  4 21:04:21 2012
Errors in file /oracle/admin/standdb/udump/perfdb_ora_1286288.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 40 with name "_SYSSMU40$" too small
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 1286288
ORA-1092 signalled during: alter database open resetlogs...

ORA-00704 ORA-00604 ORA-01173

MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Wed Feb 12 10:16:00 2014
SMON: enabling cache recovery
Errors in file H:\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_9232.trc:
ORA-01173: data dictionary indicates missing data file from system tablespace
Errors in file H:\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_9232.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-01173: data dictionary indicates missing data file from system tablespace
Errors in file H:\ORACLE\diag\rdbms\orcl\orcl\trace\orcl_ora_9232.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00604: error occurred at recursive SQL level 1
ORA-01173: data dictionary indicates missing data file from system tablespace
Error 704 happened during db open, shutting down database
USER (ospid: 9232): terminating the instance due to error 704
Instance terminated by USER, pid = 9232
ORA-1092 signalled during: alter database open resetlogs...

obj$事务异常恢复
ORA-00704 ORA-00600[4000]

Thu Feb 28 19:29:10 2013
SMON: enabling cache recovery
Thu Feb 28 19:29:11 2013
Errors in file /u1/PROD/prodora/db/tech_st/10.2.0/admin/PROD_oracle/udump/prod_ora_20989.trc:
ORA-00600: internal error code, arguments: [4000], [50], [], [], [], [], [], []
Thu Feb 28 19:29:13 2013
Incremental checkpoint up to RBA [0x1.3.0], current log tail at RBA [0x1.3.0]
Thu Feb 28 19:29:13 2013
Errors in file /u1/PROD/prodora/db/tech_st/10.2.0/admin/PROD_oracle/udump/prod_ora_20989.trc:
ORA-00704: bootstrap process failure
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [4000], [50], [], [], [], [], [], []
Thu Feb 28 19:29:13 2013
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 20989
ORA-1092 signalled during: ALTER DATABASE OPEN RESETLOGS...

IO异常恢复
ORA-01115 ORA-01110 ORA-27070 OSD-04016

Tue May 14 15:32:10 2013
Completed redo scan
 16941 redo blocks read, 1106 data blocks need recovery
Tue May 14 15:32:17 2013
Errors in file d:\oracle\product\10.2.0\admin\water\bdump\water_p002_1472.trc:
ORA-01115: IO error reading block from file 6 (block # 81951)
ORA-01110: data file 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\WATER\YD_DATA01.DBF'
ORA-27070: async read/write failed
OSD-04016: 异步 I/O 请求排队时出错。
O/S-Error: (OS 23) 数据错误(循环冗余检查)。

常见错误信息
表或者索引坏块相关错误
ORA-01578/ORA-08103/ORA-01410/ORA-08102/ORA-600 kdsgrp1/ORA-600 qertbfetchbyrowid/ORA-01499/ORA-01555/ORA-26040/ORA-27046

控制文件异常
ORA-00202/ORA-600 kccsbck_first/ORA-600 kccscf_1/ORA-600[kccsbck_first]/ORA-600 kccsbck_first/ORA-00205/ORA-600 kccpb_sanity_check_2

REDO或者UNDO异常
ORA-00376/ORA-00600 4097/ORA-01595/ORA-600 4194/ORA-600 4193/ORA-600 kcfrbd_3/ORA-00600 4137/ORA-01594/ORA-01555/ORA-00704/ORA-00604/ORA-00607/ORA-600 4000/ORA-00600[3705]/ORA-00316/ORA-00312/ORA-00327/ORA-01623/ORA-01624/ORA-01194/ORA-600 2662/ORA-00368/ORA-00353/ORA-00305/ORA-00340/ORA-00345/ORA-00354

各种ORA-600错误
ORA-600 4497/ORA-600 6947/ORA-600 2662/ORA-600 4194/ORA-600 4193/ORA-00600 4137/ORA-600 4000/ORA- 600 kcrf_resilver_log_1/ORA- 600 kdxlin:psno out of range/ORA-600 3020/ORA-600 kccpb_sanity_check_2/ORA-600 3705/ORA-600 kccscf_1/ORA-600 kghstack_free2/ORA-600 kcfrbd_3/ORA-600 ktbdchk1: bad dscn/ORA-600 2252/ORA-600 kcratr_nab_less_than_odr/ORA-600 kccsbck_first/ORA-600 kcratr1_lostwrt/ORA-600 ktspNextL1:4/ORA-600 13013/ORA-600 kdsgrp1/ORA-600 kmgs_parameter_update_timeout_1/ORA-600 kcbgtcr_1/ORA-600 kcbgtcr_1a/ORA-600 kcbgtcr_3/ORA-600 kcbgtcr_4/ORA-600 kcbgtcr_5/ORA-600 kcbgtcr_6/ORA-600 kcbgtcr_7/ORA-600 kcbgtcr_10/ORA-600 kcbgtcr_12/ORA-600 kcbgtcr_13/ORA-600 qertbfetchbyrowid/ORA-600 kmgs_parameter_update_timeout_1

为了能快速评估你的库故障,恢复难以程度,请使用Oracle Database Recovery Check检查数据库,生成html, alert日志, trace文件发我(adb@xifenfei.com)。
近期无备份数据库恢复主要案例

专业Oracle数据库恢复技术支持》有 2 条评论

  1. 惜分飞 说:

    数据库current/active redo异常的各种情况报错
    redo文件损坏报错
    Started redo scan
    Errors in file d:\app\administrator\diag\rdbms\hzyl\hzyl\trace\hzyl_ora_2960.trc (incident=214262):
    ORA-00353: 日志损坏接近块 12014 更改 9743799889 时间 12/05/2011 09:21:11
    ORA-00312: 联机日志 3 线程 1: ‘R:\ORADATA\HZYL\REDO03.LOG’
    Incident details in: d:\app\administrator\diag\rdbms\hzyl\hzyl\incident\incdir_214262\hzyl_ora_2960_i214262.trc
    Aborting crash recovery due to error 368
    Errors in file d:\app\administrator\diag\rdbms\hzyl\hzyl\trace\hzyl_ora_2960.trc:
    ORA-00368: 重做日志块中的校验和错误
    ORA-00353: 日志损坏接近块 12014 更改 9743799889 时间 12/05/2011 09:21:11
    ORA-00312: 联机日志 3 线程 1: ‘R:\ORADATA\HZYL\REDO03.LOG’
    ORA-368 signalled during: ALTER DATABASE OPEN…

    redo文件被其他实例占用报错
    Wed May 16 17:03:11 2012
    Started redo scan
    Wed May 16 17:03:11 2012
    Errors in file /oracle/admin/odsdb/udump/odsdb1_ora_2040024.trc:
    ORA-00305: log 14 of thread 1 inconsistent; belongs to another database
    ORA-00312: online log 14 thread 1: ‘/dev/rods_redo1_2_2’
    ORA-00305: log 14 of thread 1 inconsistent; belongs to another database
    ORA-00312: online log 14 thread 1: ‘/dev/rods_redo1_2_1’
    ORA-305 signalled during: ALTER DATABASE OPEN…

    存储整体异常
    Mon Oct 17 09:35:09 2011
    Errors in file /oracle/app/admin/orcl/bdump/orcl2_lgwr_348814.trc:
    ORA-00340: IO error processing online log 4 of thread 2
    ORA-00345: redo log write error block 6732 count 2
    ORA-00312: online log 4 thread 2: ‘/dev/rredo21’
    ORA-27063: number of bytes read/written is incorrect
    IBM AIX RISC System/6000 Error: 6: No such device or address
    Additional information: -1
    Additional information: 1024
    Mon Oct 17 09:35:09 2011
    LGWR: terminating instance due to error 340

    存储IO异常
    Fri Feb 21 08:44:42 2014
    Thread 1 advanced to log sequence 591 (LGWR switch)
    Current log# 1 seq# 591 mem# 0: J:\ORADATA\ORCL\REDO01.LOG
    Fri Feb 21 15:31:20 2014
    Errors in file c:\oracle\product\10.2.0\admin\orcl\bdump\orcl_lgwr_10312.trc:
    ORA-00316: log 1 of thread 1, type 286 in header is not log file
    ORA-00312: online log 1 thread 1: ‘J:\ORADATA\ORCL\REDO01.LOG’

    使用_disable_logging参数
    Sat May 14 23:16:49 2005
    Errors in file d:\oracle\admin\rman\bdump\rman_arc0_736.trc:
    ORA-16038: log 3 sequence# 72 cannot be archived
    ORA-00354: corrupt redo log block header
    ORA-00312: online log 3 thread 1: ‘D:\ORACLE\ORADATA\RMAN\REDO03.LOG’

    如果你在使用这些思路进行恢复遇到突发情况不能自行解决,请联系我们,将为您提供专业数据库技术支持:
    Phone:13429648788    Q Q:107644445    E-Mail:dba@xifenfei.com

  2. 惜分飞 说:

    1.丢失数据文件(ORA-01157)
    SQL> startup
    ORACLE instance started.

    Total System Global Area 260046848 bytes
    Fixed Size 1266896 bytes
    Variable Size 83888944 bytes
    Database Buffers 167772160 bytes
    Redo Buffers 7118848 bytes
    Database mounted.
    ORA-01157: cannot identify/lock data file 4 – see DBWR trace file
    ORA-01110: data file 4: ‘/u01/oracle/oradata/XFF/users01.dbf’
    数据文件丢失,处理方法:
    1).使用备份还原丢失数据然后
    2).非undo,system可以offline 掉该文件继续打开数据库
    3).如果是undo需要谨慎,可能导致ORA-00376错误
    4).如果是system offline可能导致ORA-01147

    2. 丢失redo(ORA-00313)
    SQL> startup
    ORACLE instance started.

    Total System Global Area 260046848 bytes
    Fixed Size 1266896 bytes
    Variable Size 83888944 bytes
    Database Buffers 167772160 bytes
    Redo Buffers 7118848 bytes
    Database mounted.
    ORA-00313: open failed for members of log group 1 of thread 1
    ORA-00312: online log 1 thread 1: ‘/u01/oracle/oradata/XFF/redo01.log’
    ORA-27037: unable to obtain file status
    Linux Error: 2: No such file or directory
    Additional information: 3
    redo文件丢失,处理步骤:
    1).查询v$log确认该redo是否是current或者active
    2).确定该redo是否被归档
    3).如果是inactive使用clear 或者 clear unarchived
    4).如果是active或者current,需要通过不完全恢复,甚至隐含参数等方法解决

    3. 丢失undo(ORA-01092 ORA-00376)
    SQL> startup
    ORACLE instance started.

    Total System Global Area 260046848 bytes
    Fixed Size 1266896 bytes
    Variable Size 83888944 bytes
    Database Buffers 167772160 bytes
    Redo Buffers 7118848 bytes
    Database mounted.
    ORA-01157: cannot identify/lock data file 2 – see DBWR trace file
    ORA-01110: data file 2: ‘/u01/oracle/oradata/XFF/undotbs01.dbf’

    SQL> alter database datafile 2 offline drop;

    Database altered.

    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01092: ORACLE instance terminated. Disconnection forced

    ORA-01092是前台错误,通过查询alert日志发现后台错误主要是:
    Fri Oct 25 08:16:36 2013
    Errors in file /u01/oracle/admin/XFF/bdump/xff_smon_7437.trc:
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00376: file 2 cannot be read at this time
    ORA-01110: data file 2: ‘/u01/oracle/oradata/XFF/undotbs01.dbf’
    因为undo文件丢失,有事务无法正常回滚,从而出现该错误,需要通过使用隐含参数屏蔽事务来解决

    4. 丢失system(ORA-01147)
    SQL> startup
    ORACLE instance started.

    Total System Global Area 260046848 bytes
    Fixed Size 1266896 bytes
    Variable Size 83888944 bytes
    Database Buffers 167772160 bytes
    Redo Buffers 7118848 bytes
    Database mounted.
    ORA-01157: cannot identify/lock data file 1 – see DBWR trace file
    ORA-01110: data file 1: ‘/u01/oracle/oradata/XFF/system01.dbf’

    SQL> alter database datafile 1 offline drop;

    Database altered.

    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01147: SYSTEM tablespace file 1 is offline
    ORA-01110: data file 1: ‘/u01/oracle/oradata/XFF/system01.dbf’
    system表空间是系统表空间,该表空间中的数据文件不能被offline,如果该表空间数据文件丢失,数据库无法正常方法,可以考虑使用bbed模拟system文件欺骗数据库(非file# 1)或者使用dul抽取数据

    5. 丢失控制文件(ORA-00205 ORA-00202)
    SQL> startup
    ORACLE instance started.

    Total System Global Area 260046848 bytes
    Fixed Size 1266896 bytes
    Variable Size 83888944 bytes
    Database Buffers 167772160 bytes
    Redo Buffers 7118848 bytes
    ORA-00205: error in identifying control file, check alert log for more info

    ORA-00205是前台错误,具体需要结合日志分析:
    Fri Oct 25 08:35:40 2013
    ALTER DATABASE MOUNT
    Fri Oct 25 08:35:40 2013
    ORA-00202: control file: ‘/u01/oracle/oradata/XFF/control01.ctl’
    ORA-27037: unable to obtain file status
    Linux Error: 2: No such file or directory
    Additional information: 3
    这里可以看出来,是因为控制问文件丢失该值该错误,处理办法:
    1).使用备份控制文件还原
    2).查找是否还有其他控制文件,拷贝一份
    3).列举数据文件重建控制文件

    如果你在使用这些思路进行恢复遇到突发情况不能自我解决,请联系我:
    Phone:13429648788    Q Q:107644445    E-Mail:dba@xifenfei.com