>  기사  >  데이터 베이스  >  记一次oracle数据库恢复

记一次oracle数据库恢复

WBOY
WBOY원래의
2016-06-07 17:39:481046검색

某客户给sysaux表空间添加了数据文件,但有在操作系统层rm删除了数据文件,更悲催的的是之前归档所在的磁盘损坏,恢复所需要的归档那是没指望了,也一年多没进行

     某客户给sysaux表空间添加了数据文件,但有在操作系统层rm 删除了数据文件,更悲催的的是之前归档所在的磁盘损坏,恢复所需要的归档那是没指望了,也一年多没进行过数据库备份了,
现记录恢复过程如下:(虚拟机上重新模拟该恢复过程)


1 数据文件状态如下
SQL> select file#,name,status from v$datafile;

     FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM/ZBCRM/system01.dbf           SYSTEM
         2 /oracle/CRM/ZBCRM/sysaux01.dbf           ONLINE
         3 /oracle/CRM/ZBCRM/undotbs01.dbf          ONLINE
         4 /oracle/CRM/ZBCRM/users01.dbf            ONLINE
         5 /oracle/CRM/ZBCRM/sysaux02.dbf           RECOVER

 

2 重新生成操作系统层删除的数据文件
SQL> alter database create datafile '/oracle/CRM/ZBCRM/sysaux02.dbf';

Database altered.

注意,香港服务器,当我们用 alter database create datafile 创建数据文件时,数据文件头部scn以及rba.seq号均取自于该数据文件创建时控制文件中记录的scn和rba.seq号.

 

3 此刻数据文件头部信息如下:
SQL> select hxfil,fhscn,fhrba_seq from x$kcvfh;

     HXFIL FHSCN             FHRBA_SEQ
---------- ---------------- ----------
         1 1047892                  18
         2 1047892                  18
         3 1047892                  18
         4 1047892                  18
         5 1026926                   1
这里可以明确看出5号数据文件恢复需要从seq号为1的归档开始恢复,香港空间,但实际上seq#=1及其之后的归档已经不存在了,虚拟主机,所以如下恢复失败:   
SQL> recover datafile 5;
ORA-00283: recovery session canceled due to errors
ORA-01110: data file 5: '/oracle/CRM/ZBCRM/sysaux02.dbf'
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/oracle/CRM/ZBCRM/sysaux02.dbf'


4 用bbed调整5号数据文件如下几个偏移量
         ub4 kcvfhcpc                             @140      ------检查点计数
         ub4 kcvfhccc                             @148      ------总是比检查点计数少1
         ub4 kcvcptim                             @492      ------检查点时间
         ub4 kscnbas                              @484      ------scn的低位
         ub2 kscnwrp                              @488      ------scn的高位 
[oracle@oracle ~]$ bbed parfile=bbed.par
Password: 

BBED: Release 2.0.0.0.0 - Limited Production on Thu Jul 25 14:26:45 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.