Oracle非常规恢复(使用BBED跳过归档)

简介: BBED恢复神器。

一、BBED工具
1.BBED的安装
oracle 11g中缺bbed包,oracle11g bbed install and example
上传(sbbdpt.o ssbbded.o bbedus.msb,该三个文件拷贝oracle的linux64版本的)文件
$ORACLE_HOME/rdbms/lib/ssbbded.o
$ORACLE_HOME/rdbms/lib/sbbdpt.o
$ORACLE_HOME/rdbms/mesg/bbedus.msb
执行如下命令:
cd $ORACLE_HOME/rdbms/lib
make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

2.进入BBED
bbed
blockedit
$vi par.txt
blocksize=8192
listfile=filelist.txt
mode=edit
$vi filelist.txt
select file#||chr(9)||name||chr(9)||bytes from v$datafile;
1 /u01/app/oracle/oradata/ocp/system01.dbf 512000000
2 /u01/app/oracle/oradata/ocp/sysaux01.dbf 412000000
3 /u01/app/oracle/oradata/ocp/users01.dbf 215000000
bbed parfile=par.txt
blockedit

3.常用命令:set、 find、 dump、 modify 、sum apply、examine、map 、print、 verity
(1)set file 3 block 32

set dba 0x01000020
set offset 0           --0表示第一个字节开始
set block  1           --1表示第一个块开始
set count 8192         --默认是显示512字节

(2)find /x 05d67g --查指定的字符串在指定数据块中的具体位置

f                      --find的简写,表示继续从当前位置开始往下查询字符串05d67g

(3)dump --十六进制查看block

dump /v                --查看十六进制内容的同时以文本方式“翻译”十六进制显示的内容,相当于对当前block执行strings命令

(4)modify /x d43 --修改指定block,指定offset的数据块块内记录的内容
(5)sum apply --计算修改后的数据块的checksum值,然后写入数据块的offset为16-17的位置
(6) map

  map /v
  p kcbh
  p ktbbh
  p kdbh
  p kdbt
  p kcvfh
  p kcvfh.kcvfhrfn
  p kcvfh.kcvfhckp
  p *kdbr[0]  --第一行记录
  x /rnc      -examine /read number char  用16进制翻译成我们能看懂的文件

二、使用BBED跳过归档
1.查文件号与scn
select file#,checkpoint_change# from v$datafile;

      3            2951615

select file#,checkpoint_change# from v$datafile_header;

     3             2951615

2.对3号文件rman备份
backup datafile 3 format '/backup/datafile4_%U';

3.切日志
 alter system switch logfile;

4.3号文件离线
 alter database datafile 3 offline;

5.还原3号文件
restore datafile 3;

6.报错,需要恢复
alter database datafile 3 online;

7.不要恢复
recover datafile 3;

8.dump文件头
alter session set events 'immediate trace name file_hdrs level 10';
Checkpointed at scn: 0x0000.003af414 09/27/2012 13:00:06
thread:1 rba:(0x4.2.10)

9.缺归档
 rm -rf /arch/*

10.修改scn
  Checkpointed at scn: 0x0000.0013cfd5 09/27/2012 13:00:06
修改rba
thread:1 rba:(0x5.1b.10)

11.用bbed修改(rba)--struct kcvcprba
select GROUP#,SEQUENCE#,STATUS from v$log;
bbed parfile=par.txt
  show all
set filename '/u01/app/oracle/oradata/ocp/tp1.dbf'
set file 4 block 1
dump
p kcvfh
set offset 500
dump
modify /x 16000000
set offset 4
modify /x 10000000
set offset 0
dump
  sum apply

12.用bbed修改(scn)--ub4 kscnbas
select group#,SEQUENCE#,status,to_char(first_change#,'xxxxxxxxx') from v$log;
--select file#,name,checkpoint_change#,to_char(checkpoint_change#,'xxxxxxxx') from v$datafile_header;

                                  113930  --> 303911

select sequence#,first_change#,next_change#,to_char(first_change#,'xxxxxxxxx') from v$log_history order by 1;

                                  13d013  -->

dump
p kcvfh
set offset 484
dump
modify /x 9c3911
sum apply

13.恢复
recover datafile 3;
alter database datafile 3 online;

恢复成功!!!

做了比较简短的说明,这里只提供整个步骤和思路,没有具体dump分析,有兴趣的大家可以模拟一步步做测试,有问题大家可以一起讨论!

相关文章
|
6月前
|
SQL Oracle 关系型数据库
oracle11g SAP测试机归档日志暴增排查(二)
oracle11g SAP测试机归档日志暴增排查(二)
308 1
|
6月前
|
Oracle 关系型数据库 Shell
oracle11g SAP测试机归档日志暴增排查(一)
oracle11g SAP测试机归档日志暴增排查(一)
75 1
|
3月前
|
SQL Oracle 关系型数据库
"揭秘!一键解锁Oracle日志清理魔法,让海量归档日志无处遁形,守护数据库健康,告别磁盘空间告急噩梦!"
【8月更文挑战第9天】随着Oracle数据库在企业应用中的普及,归档日志管理对保持数据库健康至关重要。归档日志记录所有更改,对数据恢复极为重要,但也可能迅速占用大量磁盘空间影响性能。利用Oracle提供的RMAN工具,可通过编写Shell脚本来自动清理归档日志。脚本包括设置环境变量、连接数据库、检查和删除指定时间前的日志,并记录执行情况。通过Cron作业定时运行脚本,可有效管理日志文件,确保数据库稳定运行。
88 7
|
4月前
|
存储 SQL Oracle
关系型数据库Oracle归档日志备份
【7月更文挑战第19天】
65 5
|
5月前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
6月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之在读取Oracle归档日志时出现日志数量大幅增加的情况如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
100 1
|
6月前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之采集Oracle数据库时,归档日志大小暴增的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之Oracle归档日志一天就达到了15GB并导致数据库崩溃,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Oracle 关系型数据库 数据库
一个Oracle数据库,一天归档日志3T多
Oracle数据库一体机,Oracle linux7,看看归档日志大小
|
SQL Oracle 关系型数据库
Oracle 的归档日志文件
Oracle 的归档日志文件
295 0

相关实验场景

更多