通过BBED 跳过归档,以当前数据库 8号文件为例:
SQL> select * from v$dbfile where file#=8;
FILE# NAME
---------- --------------------------------------------------
8 /u01/app/oracle/oradata/orcl/d4k01.dbf 1、rman 备份 8号文件
RMAN> backup datafile '/u01/app/oracle/oradata/orcl/d4k01.dbf' format '/home/oracle/back/d4k01_%U.bak';
Starting backup at 03-SEP-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00008 name=/u01/app/oracle/oradata/orcl/d4k01.dbf
channel ORA_DISK_1: starting piece 1 at 03-SEP-16
channel ORA_DISK_1: finished piece 1 at 03-SEP-16
piece handle=/home/oracle/back/d4k01_03reraaj_1_1.bak tag=TAG20160903T004403 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 03-SEP-16 2、进行多次日志切换(用于产生多个日志归档)
SQL> alter system switch logfile; 3、将 8 号数据文件脱机,并删除
SQL> alter database datafile '/u01/app/oracle/oradata/orcl/d4k01.dbf' offline;
rm -rf /u01/app/oracle/oradata/orcl/d4k01.dbf 4、rman还原 8 号文件
RMAN> restore datafile '/u01/app/oracle/oradata/orcl/d4k01.dbf';
Starting restore at 03-SEP-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/orcl/d4k01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/back/d4k01_03reraaj_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/back/d4k01_03reraaj_1_1.bak tag=TAG20160903T004403
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
Finished restore at 03-SEP-16 5、联机 8号数据文件,提示需要介质恢复
因为在rman备份的数据文件,写入数据文件头的检查点(V$DATAFILE_HEADER 视图的 CHECKPOINT_CHANGE#) 是备份时候的检查点编号,
切换多次日志后,在控制文件(V$DATAFILE 视图的 CHECKPOINT_CHANGE#) 里的是当前数据库检查点编号,这两个编号不一致,
所以需要介质恢复,也就是读取备份之后,所产生的redo日志。 6、介质恢复的起点,记录在数据文件头,分两部分(检查点和rba) 7、dump数据文件头
SQL> alter system set events 'immediate trace name file_hdrs level 10'; 8、在dump文件中找到 8 号数据文件对应的内容
DATA FILE #8:
name #28: /u01/app/oracle/oradata/orcl/d4k01.dbf
creation size=12800 block size=8192 status=0x1c head=28 tail=28 dup=1
tablespace 11, index=9 krfil=8 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:92 scn: 0x0000.004218e6 09/03/2016 00:45:06
Stop scn: 0x0000.00421998 09/03/2016 00:52:57
Creation Checkpointed at scn: 0x0000.00325a8a 06/15/2016 18:20:45
thread:1 rba:(0x30.992c.10)
--------------------------------------------------------------------------
Tablespace #11 - D4K rel_fn:8
Creation at scn: 0x0000.00325a8a 06/15/2016 18:20:45
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x3661a1e6 scn: 0x0000.002387eb
prev reset logs count:0x361abe00 scn: 0x0000.000e6c20
recovered at 09/03/2016 01:00:43
status:0x0 root dba:0x00000000 chkpt cnt: 77 ctl cnt:76
begin-hot-backup file size: 0
Checkpointed at scn: 0x0000.00421867 09/03/2016 00:44:03
thread:1 rba:(0x69.1056d.10) 在dump文件里面8号文件有两大部分:
1、data file 8# (这部分来着控制文件,是当前日志的检查点),
2、Tablespace #11 - D4K rel_fn:8 (这是8号文件对应的表空间,这部分数据来自数据文件头,是需要修改的部分) 9、修改 rba和 checkpoint at scn ,将其修改到指定的归档日志开始恢复(归档日志的序列号和检查点)
通过计算如下rba 的到 从 105 号归档的 66925号块开始恢复 (16进制69为10进制105...)
Checkpointed at scn: 0x0000.00421867 09/03/2016 00:44:03
thread:1 rba:(0x69.1056d.10) 查询归档日志视图(V$archived_log),获取序列号和检查点信息
SQL> select sequence#,first_change# from v$archived_log;
SEQUENCE# FIRST_CHANGE#
---------- -------------
103 4299914
104 4300188
105 4324652
.................
120 4331692
121 4331695
122 4331698
123 4331701
124 4331704
125 4331707
126 4331710
127 4331713
128 4331716
129 4331719 10、通过BBED,修改rba和检查点,将其改到第120号归档
BBED> show all;
FILE# 8
BLOCK# 1
OFFSET 0
DBA 0x02000001 (33554433 8,1)
FILENAME /u01/app/oracle/oradata/orcl/d4k01.dbf
BIFILE bifile.bbd
LISTFILE /home/oracle/bbed.lit
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 80
COUNT 512
LOGFILE log.bbd
SPOOL No BBED> dump
File: /u01/app/oracle/oradata/orcl/d4k01.dbf (8)
Block: 1 Offsets: 0 to 511 Dba:0x02000001
------------------------------------------------------------------------
0ba20000 01000002 00000000 00000104 86390000 00000000 0000200b 7e099055
4f52434c 00000000 b39a0000 00960000 00200000 08000300 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 8a5a3200 00000000 7dd78336 e6a16136 eb872300 00000000 00000000
00000000 00000000 00000000 4d000000 3baded36 4c000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 0b000000 03004434 4b000000 00000000 00000000
00000000 00000000 00000000 00000000 08000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00be1a36 206c0e00 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 67184200 00006f6c 53a9ed36 01000000 69000000 6d050100 1000ffff
<32 bytes per line> 在bbed的dump中查找 rba的日志块号(1056d)和检查点(421867),在bbed中是反的,即为:6d0501 和 671842
使用find命令:
BBED> find /x 6d0501
File: /u01/app/oracle/oradata/orcl/d4k01.dbf (8)
Block: 1 Offsets: 504 to 1015 Dba:0x02000001
BBED> find /x 67184200
File: /u01/app/oracle/oradata/orcl/d4k01.dbf (8)
Block: 1 Offsets: 484 to 995 Dba:0x02000001 将检查点修改为120号归档的检查点(4331692),转换为16进制为(4218AC),反过来为(AC1842)
BBED> modify /x AC1842 offset 484 将rba的日志序列号改为(120),转换16进制为(78)
BBED> modify /x 78 offset 500 将rba中的日志块号改小一点,改为从第三号块开始
BBED> modify /x 110000 offset 504 改完dump结果如下:
BBED> dump
File: /u01/app/oracle/oradata/orcl/d4k01.dbf (8)
Block: 1 Offsets: 0 to 511 Dba:0x02000001
------------------------------------------------------------------------
0ba20000 01000002 00000000 00000104 213c0000 00000000 0000200b 7e099055
4f52434c 00000000 b39a0000 00960000 00200000 08000300 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 8a5a3200 00000000 7dd78336 e6a16136 eb872300 00000000 00000000
00000000 00000000 00000000 4d000000 3baded36 4c000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 0b000000 03004434 4b000000 00000000 00000000
00000000 00000000 00000000 00000000 08000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00be1a36 206c0e00 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 ac184200 00006f6c 53a9ed36 01000000 78000000 11000000 1000ffff
<32 bytes per line> 重新计算校验和
BBED> sum apply
Check value for File 8, Block 1:
current = 0x3c21, required = 0x3c21 11、恢复8号文件
SQL> recover datafile '/u01/app/oracle/oradata/orcl/d4k01.dbf';
ORA-00279: change 4331692 generated at 09/03/2016 00:44:03 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/oradata/archive/1_120_912368102.dbf
ORA-00280: change 4331692 for thread 1 is in sequence #120
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: change 4331695 generated at 09/03/2016 00:45:02 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/oradata/archive/1_121_912368102.dbf
ORA-00280: change 4331695 for thread 1 is in sequence #121

BBED跳过归档的更多相关文章

  1. 使用BBED跳过归档进行恢复

    https: 使用BBED跳过归档进行恢复 数据库启动异常,提示6号文件丢失 SQL> startup ORACLE instance started. Total System Global ...

  2. 05 使用bbed跳过归档恢复数据文件

    5 使用BBED跳过归档 在归档模式下,缺失了一部分的归档日志文件,对数据文件进行恢复 1 开启归档 --shutdown immediate --startup mount --alter data ...

  3. 【Oracle】使用BBED跳过丢失的归档

    在recover datafile的过程其中假设丢失了须要的归档将使得recover无法进行.使用bbed工具能够跳过丢失的归档进行recover datafile. 实验步骤例如以下: SYS@OR ...

  4. Oracle特殊恢复原理与实战(DSI系列)

    1.深入浅出Oracle(DSI系列Ⅰ) 2.Oracle特殊恢复原理与实战(DSI系列Ⅱ) 3.Oracle SQL Tuning(DSI系列Ⅲ)即将开设 4.Oracle DB Performan ...

  5. oracle dis系列课程总结

    oracle dis系列课程总结 1 bbed安装和介绍 --1 bbed的安装--(Oracle Block Brower and EDitor Tool) 2 controlfile 丢失的恢复 ...

  6. Oracle--RMAN Recover 缺失的归档操作

    一,环境简介 Oracle RMAN 备份的恢复分2个步骤:RESTRE 和 RECOVER.在这里回复的时候是依赖者归档文件的,当周一完成数据全备,保留归档的情况下,后期数据有问题,恢复的时候发现少 ...

  7. KingbaseES R3 集群主库归档失败案例

    案例说明: 本案例用于KingbaseES R3集群归档进程归档日志失败的处理,对于一线的生产环境具有 一定的参考意义. 数据库版本: TEST=# select version(); VERSION ...

  8. 无归档情况下使用BBED处理ORA-01113错误

    在丢失归档情况下,恢复时常会遇到ora-01113错误,以下实验模拟表空间offline,然后在丢失归档文件的情况下使用BBED修改文件头信息,最后恢复数据文件: 数据库版本: SQL> sel ...

  9. Oracle11gr2_ADG管理之跳归档恢复dg实战

    模拟故障 关闭备库 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut dow ...

随机推荐

  1. Java基础IO文件拷贝练习题

    /** * 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt. */ 1.我们看到这个题还是用大化小的思想来做 分析:1.拷贝 & ...

  2. php钩子程序设计

      序   作为程序员,设计出优雅而完美的系统,永远是让我们非常兴奋的事情.高手不在于你会多少语言,而在于你有多高的思想.   在设计中,怎么体现自身价值,那就是要比别人多想几步.   讲钩子程序,起 ...

  3. CSS之纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)

    图形包括基本的矩形.圆形.椭圆.三角形.多边形,也包括稍微复杂一点的爱心.钻石.阴阳八卦等.当然有一些需要用到CSS3的属性,所以在你打开这篇文章的时候,我希望你用的是firefox或者chrome, ...

  4. [Angular Directive] Assign a Structual Directive a Dynamic Context in Angular 2

     Just like passing in an array to *ngFor, you can pass in any value into your structural directive s ...

  5. 明天opp¥this xuexi 资料在高中一班

    明天opp¥this xuexi 资料在高中一班

  6. php学习笔记——基础知识(2)

    9.PHP语句 if 语句 - 如果指定条件为真,则执行代码 if...else 语句 - 如果条件为 true,则执行代码:如果条件为 false,则执行另一端代码 if...else if.... ...

  7. JavaEE XML XPath

    JavaEE XML XPath @author ixenos XPath技术 1 引入 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!需要遍历DOM树的众多节点 ...

  8. C语言编程小tip

    1. 随机数产生 int rand(void)产生的随机数每次运行时都是与上一次相同,若要不同,用函数srand()初始化之. void srand(unsigned int seed)初始化随机数发 ...

  9. Notepad++中调试用心lua程序

    一.配置: 1.打开Notepad++: 2. 按下F5,或者打开Run->Run… 3. 弹出Run的窗口 3. 这一步是最关键的,将下列语句拷贝粘贴至输入框中:cmd /k Python & ...

  10. solr最佳实践

    管理页面 页面地址:http://{ip}:{port}/solr/#/ 管理页面的data-import页可以手动重建索引,configuration指定了数据源,重建索引也可以通过http请求触发 ...