【Oracle】使用BBED跳过丢失的归档
在recover datafile的过程其中假设丢失了须要的归档将使得recover无法进行。使用bbed工具能够跳过丢失的归档进行recover datafile。
实验步骤例如以下:
SYS@ORCL>select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SYS@ORCL>create tablespace bbed_test_tbs
2 datafile '/u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf' size 20M;
Tablespace created.
SYS@ORCL>create table bbed_test1 tablespace bbed_test_tbs as select * from dba_objects;
Table created.
SYS@ORCL>create table bbed_test2 tablespace bbed_test_tbs as select * from dba_objects;
Table created.
SYS@ORCL>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 2
Next log sequence to archive 4
Current log sequence 4
SYS@ORCL>select file#||' '||name||' '||bytes from v$datafile;
FILE#||''||NAME||''||BYTES
--------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/ORCL/system01.dbf 503316480
2 /u01/app/oracle/oradata/ORCL/undotbs01.dbf 36700160
3 /u01/app/oracle/oradata/ORCL/sysaux01.dbf 262144000
4 /u01/app/oracle/oradata/ORCL/users01.dbf 5242880
5 /u01/app/oracle/oradata/ORCL/example01.dbf 104857600
6 /u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf 20971520
6 rows selected.
使用rman备份datafile 6
[oracle@jp bbed]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Jun 19 21:33:16 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1356549586)
RMAN> backup datafile 6;
Starting backup at 19-JUN-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=143 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00006 name=/u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf
channel ORA_DISK_1: starting piece 1 at 19-JUN-14
channel ORA_DISK_1: finished piece 1 at 19-JUN-14
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2014_06_19/o1_mf_nnndf_TAG20140619T213426_9t73x2s8_.bkp tag=TAG20140619T213426 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 19-JUN-14
然后在库里改动datafile 6中存储的数据
SYS@ORCL>delete from bbed_test1;
50316 rows deleted.
SYS@ORCL>commit;
Commit complete.
SYS@ORCL>alter system switch logfile;
System altered.
SYS@ORCL>alter system switch logfile;
System altered.
SYS@ORCL>alter system switch logfile;
System altered.
然后关闭数据库删除datafile 6
SYS@ORCL>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@jp ORCL]$ ls
bbed_test_tbs01.dbf control03.ctl redo02.log system01.dbf users01.dbf
control01.ctl example01.dbf redo03.log temp01.dbf
control02.ctl redo01.log sysaux01.dbf undotbs01.dbf
[oracle@jp ORCL]$ mv bbed_test_tbs01.dbf bbed_test_tbs01.dbf.bak
启动数据库:
SYS@ORCL>startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 83887696 bytes
Database Buffers 197132288 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf'
数据库无法启动由于此时datafile 6丢失,使用rman的备份恢复数据文件,尝试打开数据库
RMAN> restore datafile 6;
Starting restore at 19-JUN-14
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00006 to /u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2014_06_19/o1_mf_nnndf_TAG20140619T213426_9t73x2s8_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2014_06_19/o1_mf_nnndf_TAG20140619T213426_9t73x2s8_.bkp tag=TAG20140619T213426
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 19-JUN-14
SYS@ORCL>alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 6 needs media recovery
ORA-01110: data file 6: '/u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf'
此时报datafile 6须要进行recover。
这时我们删除归档。然后尝试recover datafile 6
[oracle@jp archivelog]$ cd 2014_06_19/
[oracle@jp 2014_06_19]$ ls
o1_mf_1_3_9t73hdco_.arc o1_mf_1_5_9t740dxd_.arc
o1_mf_1_4_9t74035o_.arc o1_mf_1_6_9t740sv7_.arc
[oracle@jp 2014_06_19]$ rm -f *
[oracle@jp 2014_06_19]$ ls
SYS@ORCL>recover datafile 6;
ORA-00279: change 507768 generated at 06/19/2014 21:34:26 needed for thread 1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2014_06_19/o1_mf_1_4_%u_.arc
ORA-00280: change 507768 for thread 1 is in sequence #4
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2014_06_19/o1_mf_1_4_9t7403
5o_.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
无法恢复。提示须要的归档文件不存在
Dump出文件头:
SYS@ORCL>alter session set events 'immediate trace name file_hdrs level 10';
Session altered.
SYS@ORCL>SYS@ORCL>oradebug setmypid;
Statement processed.
SYS@ORCL>oradebug tracefile_name
/u01/app/oracle/admin/ORCL/udump/orcl_ora_9065.trc
查看dump文件:
DATA FILE #1:
(name #7) /u01/app/oracle/oradata/ORCL/system01.dbf
creation size=0 block size=8192 status=0xe head=7 tail=7 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:56 scn: 0x0000.0007c39c 06/19/2014 21:37:19
Stop scn: 0x0000.0007c39c 06/19/2014 21:37:19
Creation Checkpointed at scn: 0x0000.00000009 06/30/2005 19:10:11
thread:0 rba:(0x0.0.0)
这时system数据文件的,然后我们使用bbed将datafile 6的scn和system数据文件的scn改为一致。
BBED> set dba 6,1
DBA 0x01800001 (25165825 6,1)
BBED> map
File: /u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf (6)
Block: 1 Dba:0x01800001
------------------------------------------------------------
Data File Header
struct kcvfh, 676 bytes @0
ub4 tailchk @8188
BBED> p kcvfhckp
struct kcvfhckp, 36 bytes @484
struct kcvcpscn, 8 bytes @484
ub4 kscnbas @484 0x0007bf78
ub2 kscnwrp @488 0x0000
ub4 kcvcptim @492 0x32b46ee2
ub2 kcvcpthr @496 0x0001
union u, 12 bytes @500
struct kcvcprba, 12 bytes @500
ub4 kcrbaseq @500 0x00000004
ub4 kcrbabno @504 0x0000a54a
ub2 kcrbabof @508 0x0010
ub1 kcvcpetb[0] @512 0x02
ub1 kcvcpetb[1] @513 0x00
ub1 kcvcpetb[2] @514 0x00
ub1 kcvcpetb[3] @515 0x00
ub1 kcvcpetb[4] @516 0x00
ub1 kcvcpetb[5] @517 0x00
ub1 kcvcpetb[6] @518 0x00
ub1 kcvcpetb[7] @519 0x00
BBED> m /v 9cc3 offset 484
BBED-00201: invalid switch (/v)
BBED> m /x 9cc3 offset 484
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) Y
File: /u01/app/oracle/oradata/ORCL/bbed_test_tbs01.dbf (6)
Block: 1 Offsets: 484 to 995 Dba:0x01800001
------------------------------------------------------------------------
9cc30700 0000e7b7 e26eb432 0100f50d 04000000 4aa50000 10000000 02000000
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
0a000a00 0a000100 00000000 00000000 00000000 02008001 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 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
<32 bytes per line>
BBED> sum apply
Check value for File 6, Block 1:
current = 0x862e, required = 0x862e
然后回到数据库recover datafile 6,尝试打开数据库。
SYS@ORCL>recover datafile 6;
Media recovery complete.
SYS@ORCL>alter database open;
Database altered.
【Oracle】使用BBED跳过丢失的归档的更多相关文章
- 使用BBED跳过归档进行恢复
https: 使用BBED跳过归档进行恢复 数据库启动异常,提示6号文件丢失 SQL> startup ORACLE instance started. Total System Global ...
- 05 使用bbed跳过归档恢复数据文件
5 使用BBED跳过归档 在归档模式下,缺失了一部分的归档日志文件,对数据文件进行恢复 1 开启归档 --shutdown immediate --startup mount --alter data ...
- BBED跳过归档
通过BBED 跳过归档,以当前数据库 8号文件为例: SQL; FILE# NAME ---------- ---------------------------------------------- ...
- oracle flashback data archive闪回数据归档天坑之XID重用导致闪回查询数据重复
我们有个系统使用了Oracle flashback data archive闪回数据归档特性来作为基于时间点的恢复机制,在频繁插入.更新期间发现SYS_FBA_HIST_NNNN表中的XID被两个事务 ...
- oracle闪回、闪回数据归档Flashback Data Archive (Oracle Total Recall)的真正强大之处、11gR2增强以及合理使用
oracle的闪回很早就出来了,准确的说一直以来应该都较少被真正用户广为使用,除了dba和极少部分开发人员偶尔用于逻辑出错.误删恢复之外,较少被用于产生更有价值的用途. 各种闪回表flashback ...
- Oracle Logminer 分析重做日志RedoLog和归档日志ArchiveLog
在实际开发过程中,有时我们很有可能需要某个表的操作痕迹,或通过记录的SQL语句进行有目的性的数据恢复(此时POINT-IN-TIME恢复已经满足不了更细的粒度).或仅仅是查看: 据说Oracle8i之 ...
- jsp/servlet页面跳转丢失样式问题
问题:使用servlet,如何处理在多路径页面跳转中servlet转发页面样式丢失问题?(例如访问 http://localhost/project/listUser.action后转到http:// ...
- Oracle数据库体系结构(6)数据库归档重做日志文件管理
归档重做日志文件的概念和选择 Oracle数据库能够把已经写满了的重做日志文件保存到一个或多个指定的离线位置,这种保存的文件为归档重做日志文件.通常情况下一个归档重做日志时一个被LGWR写满的重做日志 ...
- Oracle 12c 新特性之 数据库内归档(In-Database Archiving)
Oracle Database 12c中引入了 In-Database Archiving的新特性, 该特性允许用户通过对表上的数据行标记为inactive不活跃的,以归档数据. 这些inactive ...
随机推荐
- Beginning iOS 8 Programming with Swift-TableView
UITableView控件使用 使用UITableView,在控件库中,拖拽一个Table View到ViewController中,在Controller的后台代码中需要继承UITableViewD ...
- 【强连通分量】tarjan算法及kosaraju算法+例题
阅读前请确保自己知道强连通分量是什么,本文不做赘述. Tarjan算法 一.算法简介 Tarjan算法是一种由Robert Tarjan提出的求有向图强连通分量的时间复杂度为O(n)的算法. 首先我们 ...
- Visio中插入公式
也可以直接插入MathType公式,我原来的word不显示MathType,现在显示了,不过插入后太小,那是因为字体小,拖动托大就行. 在word中插入-对象-公式3.0对象(安装MathType后, ...
- 彻底理解Javascript 中的 Promise(-------------------------------***---------------------------------)
ES6原生提供了 Promise 对象. 到底是何方妖怪呢?打出来看看: 所谓 Promise,就是一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个 ...
- ASIHTTPRequest框架使用总结系列之阿堂教程1(安装配置篇
在前年,阿堂在<IOS开发系列之阿堂教程:玩转IPhone客户端和Web服务端交互(客户端)实践>一文中,对于ASIHTTPRequest框架有过一些介简单绍,具体链接地址见http:// ...
- html 打印代码,支持翻页
ylbtech_html_print html打印代码,支持翻页 <html> <head> <meta name=vs_targetSchema content=&qu ...
- 【iOS开发-55】图片轮播案例:scrollView的分页、滚动栏、利用代理控制定时器和Page Control以及多线程问题
案例: (1)用storyboard布局,这里用了三样东西. --UIScrollView就是我们准备存放滚动图片的容器. --Page Control就是控制页数的那几个小点点.能够设置有多少个点. ...
- Android服务之bindService源代码分析
上一篇分析startService时没有画出调用ActivityManagerService之前的时序图,这里画出bindService的时序图.它们的调用流程是一致的. 先看ContextWrapp ...
- zabbix日志监控
一般情况下,日志最先反映出应用当前的问题,在海量日志里面找到我们异常记录,例如监控系统日志.nginx.Apache.业务日志,然后记录下来,并且根据情况报警. 1.日志监控项介绍 最主要的是监控日志 ...
- [Algorithms] Using Dynamic Programming to Solve longest common subsequence problem
Let's say we have two strings: str1 = 'ACDEB' str2 = 'AEBC' We need to find the longest common subse ...