http://blog.cfan.com.cn/html/92/886492-363017.html

这个和老师讲解的大致相同:使用旧的控制文件+redo log中记录把后来加入的控制文件中需要的文件,例如数据文件、日志文件等信息using backup controlfile

[@more@]假设条件:CNOUG博客首页1e1x(%lB| A,I
1、只做了对控制文件的备份CNOUG博客首页2u'mtF-F:j kf*G
2、非归档模式
(k"XE2?$U [{03、在对控制文件做了备份以后,创建了一个表空间,并包含一个数据文件CNOUG博客首页OS-aAeoAc
4、在新建的表空间下建了一张表,并存了一条数据CNOUG博客首页/J^4vx.c[D"i:MU
5、备份控制文件以后没有进行别的DML操作CNOUG博客首页_~K6YII
6、shutdown abort以后,错误删除刚建表空间所包含的数据文件,包括控制文件:
's HmC6U,?0 思路:CNOUG博客首页Ocx%Sj,eV3N
要想恢复数据库,必须先恢复控制文件,但控制文件是旧的,不包括删除了的表空间CNOUG博客首页 ~9U t |/lo
和数据文件.但删除的数据文件的信息在redo里面还是存在的,由此想到了利用redo来CNOUG博客首页(V2f Y4b0`&q*B
更新控制文件.更新控制文件后,如果open数据库,它应该会提示数据文件丢失.再增加
A1F|,tF:b |W?(|0相应的数据文件.应用所有redo.数据恢复完成.
M&xA'nA2H0可以相应的进行扩展,对archivelog模式的,如果所有存档都在,类似的恢复应该是CNOUG博客首页 R b1E8t t/U O:c_{.f
没有问题的.CNOUG博客首页] F J d d(U9FH#O

*A6d["W+`#eAb0CNOUG博客首页I:NI1OM `#c9D
CNOUG博客首页#vLn0ea#V]
以下是我的恢复过程.CNOUG博客首页 k@?)x0j,u)^BU
CNOUG博客首页N*Ya1XtjNd
SQL> conn sys/lovelijie@lijie as sysdba
:d ? YU x'` i0已连接到空闲例程。CNOUG博客首页f'_9O5y1l
SQL> startupCNOUG博客首页-i.T.q0{*Cd s6P/n
ORACLE 例程已经启动。
+B3WwT,KCs0CNOUG博客首页"|#bdx E-G+L1U"P.qk
Total System Global Area 135338868 bytesCNOUG博客首页Y:mh a,R+^9|nq
Fixed Size 453492 bytesCNOUG博客首页3A*nieJ+B F3l_z t(z
Variable Size 109051904 bytesCNOUG博客首页8V h;g;`L%?UDsL
Database Buffers 25165824 bytes
X^]`pA!`0Redo Buffers 667648 bytesCNOUG博客首页 X$y;x%tp1Wj
数据库装载完毕。CNOUG博客首页 yw wwF%r:X Fd5e
数据库已经打开。
$|6v5}9ND-~ zN0CNOUG博客首页fP)n,}a f-}h nn
SQL> archive log list;CNOUG博客首页y |$G/G#cDr9Bu
数据库日志模式 非存档模式CNOUG博客首页7oM i1] _p E0Z
自动存档 禁用
+@a+b%r!YdT*i Hm$w0存档终点 g:oracleoradatalijiearchive
1}]9zI6J ]g'K0最早的概要日志序列 1CNOUG博客首页sN,X:Gs
当前日志序列 2
n5@|6Ie*Iu!_0CNOUG博客首页].JW,^"DP
CNOUG博客首页,F&k_z!M&V7eV
SQL> alter database backup controlfile to 'd:tempcontrol01.ctl';CNOUG博客首页 yE3Q.@!K pC

d'VV#n,j EFc Z0数据库已更改。CNOUG博客首页1E |#T;p h:lY

NF2[.F6|xnr j-u5r0SQL> create tablespace test datafile 'g:oracleoradatalijietest.dbf' size 5m;
2r LD['Q_0D'K'y0CNOUG博客首页8W/[9^i)H%W!A8EP:O
CNOUG博客首页k}Y0w ^ ZH
表空间已创建。
4~hhyj U{0CNOUG博客首页5O;P br x Bev_'L
SQL> create table test(n number) tablespace test;
%D3?+Ef2B;K^[+EF0CNOUG博客首页 an;G,QdSz ?W
表已创建。
%poidn|0
k"D:@_ Exi CG0SQL> insert into test values(1);CNOUG博客首页Rl.H(I!r3D[Y/{/a
CNOUG博客首页,r|*k?z'~w
已创建 1 行。CNOUG博客首页"@2R:z!m C(V
CNOUG博客首页+L2a&Y;v@9y3a
SQL> commit;
LDzQJ%Tqj0CNOUG博客首页U!e#Ne ?|#P%|
提交完成。CNOUG博客首页5[J0BYz a7`k

)u)@/V~-q[0`~ G0SQL> shutdown abort
|4~ia-X0ORACLE 例程已经关闭。CNOUG博客首页+xI(y.tk0R JY$Ex%}
SQL>
n` P&?7R0
&IMqpl](K0SQL> startupCNOUG博客首页:fh B:Y(y!Q6B
ORACLE 例程已经启动。
&GS8_ u YQ0
7C7v3B1h1_ J7r0Total System Global Area 135338868 bytesCNOUG博客首页u x/W9|?9n9I
Fixed Size 453492 bytes
6W^+iAg~0Variable Size 109051904 bytes
7k a r;[K([6CW0Database Buffers 25165824 bytesCNOUG博客首页V8c~fvEcDD9{
Redo Buffers 667648 bytes
VX'JOx8l-u7x5E0数据库装载完毕。CNOUG博客首页 W q9^E.{3`/jj
数据库已经打开。CNOUG博客首页K'O3C`B]L
SQL> select nameCNOUG博客首页OD3g-{V,^j
2 from v$datafile;
(V?E9eD1K}0CNOUG博客首页!gR[+s8fN"p4p;` i
NAMECNOUG博客首页U rB)S:Z9L~7v
-----------------------------------------------------CNOUG博客首页:eNY B1V5kF6`

o5I,`4ogK J0G:ORACLEORADATALIJIESYSTEM01.DBF
#?8Q*Z$m"P6}+oLA0G:ORACLEORADATALIJIEUNDOTBS01.DBF
b6[Fp3L5|m0G:ORACLEORADATALIJIECWMLITE01.DBFCNOUG博客首页4J#FHO@i/w
G:ORACLEORADATALIJIEDRSYS01.DBFCNOUG博客首页6jYV"u:ua/T0@
G:ORACLEORADATALIJIEEXAMPLE01.DBF
;N'`,oaIk0G:ORACLEORADATALIJIEINDX01.DBFCNOUG博客首页y0n fc&b T4m'vA
G:ORACLEORADATALIJIEODM01.DBFCNOUG博客首页(y,o)~K:Kcd@a
G:ORACLEORADATALIJIETOOLS01.DBF
~%S*D2q^)Fm}0G:ORACLEORADATALIJIEUSERS01.DBFCNOUG博客首页(O&X y5i5{5O@*I/K
G:ORACLEORADATALIJIEXDB01.DBFCNOUG博客首页7o['X2j%EA#TQb
G:ORACLEORADATALIJIETEST.DBFCNOUG博客首页5] j6N"q$[|

?5VfdeP M(L-X0b0已选择11行。CNOUG博客首页v^b7p:Ih"s~`s

0K3~ T9YI0SQL> shutdown immediate;
dDD!y-]3m |0数据库已经关闭。
7U4zqgWQ1s]$b0已经卸载数据库。CNOUG博客首页5C @ N6ZHK%p5E#W
ORACLE 例程已经关闭。
zliK8zLZ$Bd0
3iyM Q]FjY0================================
--利用备份的控制文件,删除数据文件后尝试启动数据库.
================================
SQL> startup
*wm5h(pxl/I8AB0ORACLE 例程已经启动。
F/_ sJMp#j}^0
P?0W Sq&y0Total System Global Area 135338868 bytesCNOUG博客首页:Hd*} Z5S'i|x.W
Fixed Size 453492 bytes
Bs x Z_mlX0Variable Size 109051904 bytesCNOUG博客首页4Pf/T0g?+n+Z
Database Buffers 25165824 bytes
f;hE)XqlzQ0Redo Buffers 667648 bytes
f#E UV _!gS4lX)s0数据库装载完毕。CNOUG博客首页/e5c*br.j8]
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
,hgrz*Ey0
5Fu~e5Y'G5k` u O0CNOUG博客首页^W |5U(m6Z |%O*o4{4N
SQL> shutdown immediate;CNOUG博客首页5~H+P9z V
ORA-01109: 数据库未打开
[%R-t:o9R Z L0I0CNOUG博客首页2T!gv7M-_qICC

S i;K!I1H3oW y0已经卸载数据库。CNOUG博客首页:~'D*EQW6r
ORACLE 例程已经关闭。CNOUG博客首页YwBf4Tk{+u.k
SQL> startup mount
5h8E3`0zL0ORACLE 例程已经启动。CNOUG博客首页j/fT2vnIw)d

P:D1Bq mO9H5S0Total System Global Area 135338868 bytes
u[(j5Xx P_P2?C0Fixed Size 453492 bytesCNOUG博客首页'H7|v c I
Variable Size 109051904 bytes
.@7h&Odm{"eat#w0Database Buffers 25165824 bytesCNOUG博客首页.tt"d NEF$z'r%Y:b
Redo Buffers 667648 bytesCNOUG博客首页n|W9Fkbn
数据库装载完毕。
F.@joN9t0
o7S_Aa2oL,v0=======================================
基于时间点的恢复,在alert_lijie.log中找到时间加入表空间的时间点.CNOUG博客首页-W1p1h`YPD"`+[ O,H9B
主要是把控制文件恢复到最新.
Z a?o4w0|O0换句话说就是把test.dbf的信息加入到控制文件中.
=======================================
SQL> recover database using backup controlfile until time '2005-3-28 15:25:27';
rKFJ)z q eC0ORA-00279: 更改 406557 (在 03/28/2005 15:20:07 生成) 对于线程 1 是必需的
H l^S0~LE1G{|0ORA-00289: 建议: G:ORACLEORADATALIJIEARCHIVEARC00002.001
Y oXU8{y0ORA-00280: 更改 406557 对于线程 1 是按序列 # 2 进行的
[X5N|S0F!b/iO0CNOUG博客首页2c4I oy[ T3h

V2Yl(X$GK0指定日志: {=suggested | filename | AUTO | CANCEL}CNOUG博客首页Pc*Z8Ol
g:oracleoradatalijieredo01.log
%}K_o vx @0ORA-00283: 恢复会话因错误而取消CNOUG博客首页7]s$K"HYSp
ORA-01244: 未命名的数据文件由介质恢复添加至控制文件
%K6N x C&G0ORA-01110: 数据文件 11: 'G:ORACLEORADATALIJIETEST.DBF'CNOUG博客首页M-fi2vJqP

J#^2Y,I}+S5q _0CNOUG博客首页 RSq.S'K{
ORA-01112: 未启动介质恢复
.v%Z%gm%][G0CNOUG博客首页5Y3cO#I@m"V
=========================================
目的已经达到.(ORA-01244: 未命名的数据文件由介质恢复添加至控制文件.)CNOUG博客首页[Q(HHm7F-~}8G m
加入相应的数据文件.信息在(ORA-01110: 数据文件 11: 'G:ORACLEORADATALIJIETEST.DBF')CNOUG博客首页[_-F6]/ms(`6r^
CNOUG博客首页3w|F;QT3O`:]x
==========================================
SQL> alter database create datafile 11 as 'g:oracleoradatalijietest.dbf';
WLO#J9y$U V0CNOUG博客首页J(n1Yt-f4x N%j
数据库已更改。CNOUG博客首页8|ELG`_.ft8e

,a1rR)xH0===========================================
接着和一般的恢复一样的.指定redo.
===========================================
CNOUG博客首页!o,K#md8g
SQL> recover database using backup controlfile;
G]8j ]]0ORA-00279: 更改 407488 (在 03/28/2005 15:25:26 生成) 对于线程 1 是必需的CNOUG博客首页P4{rzp9n
ORA-00289: 建议: G:ORACLEORADATALIJIEARCHIVEARC00002.001CNOUG博客首页,}A9q(N)h {#P7@
ORA-00280: 更改 407488 对于线程 1 是按序列 # 2 进行的
wd)H3^.O5q3_ A _0
v,O]Ig9cP+R2f&o[&o0
?,zF.t@W:kk j0指定日志: {=suggested | filename | AUTO | CANCEL}CNOUG博客首页dc)[&_*@e
g:oracleoradatalijieredo01.logCNOUG博客首页i$g LCU0o G{8c[
ORA-00279: 更改 427753 (在 03/28/2005 15:32:57 生成) 对于线程 1 是必需的CNOUG博客首页K"g(RX{*j d
ORA-00289: 建议: G:ORACLEORADATALIJIEARCHIVEARC00003.001CNOUG博客首页.~v#u"N8Z{J
ORA-00280: 更改 427753 对于线程 1 是按序列 # 3 进行的
!Flq2v(`/c:I5d*AD0ORA-00278: 此恢复不再需要日志文件 'g:oracleoradatalijieredo01.log'CNOUG博客首页I&X(S#qR3Mm?

%l K6@:y5w0
}u&U%X;q/%_V2Z#W0指定日志: {=suggested | filename | AUTO | CANCEL}
q P#h)D:yi6q;bUD0g:oracleoradatalijieredo02.dbfCNOUG博客首页z|c6] L
ORA-00308: 无法打开存档日志 'g:oracleoradatalijieredo02.dbf'CNOUG博客首页 P^|/Db
ORA-27041: 无法打开文件
yqo3OL `M?3D0OSD-04002: 无法打开文件
o#p.G!p w2Q Wy0O/S-Error: (OS 2) 系统找不到指定的文件。CNOUG博客首页Z ]+i"_ e.gX

T;hX-HIB q0
%mL-EF.P6` o;k W,U0指定日志: {=suggested | filename | AUTO | CANCEL}
*r7p-xn{'d!l FX0g:oracleoradatalijieredo02.logCNOUG博客首页;e YIf0U.u d(]l
已应用的日志。CNOUG博客首页`%]y0hr iVU@
完成介质恢复。CNOUG博客首页 V#v|0F0g8Ud
SQL> alter database open;CNOUG博客首页h M,o rR"] m4}
alter database open
R1Z|M3OUZ#y n0*CNOUG博客首页Fv3iW'~v
ERROR 位于第 1 行:CNOUG博客首页(ZQ f/i9Q ueT
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项CNOUG博客首页V}3j4QoT
CNOUG博客首页7S U,x.y2I~p
==============================================
用resetlogs打开,使数据文件和日志文件一致.
===============================================
SQL> alter database open resetlogs;
7X!m.h!A_ZR N0CNOUG博客首页9O.u]?&tV9t5VJ
数据库已更改。
j@k z%h0
5m"J(Kz/O0SQL> select *
[N,`(^b"W$b7|9o1u02 from test;CNOUG博客首页F:3V@.W-DOJ4_I

4MO:_!b#D#`#G0N
b IG3NGV.e0----------CNOUG博客首页L4{^{
1
N0o(}o*qC5OUdJ7|0n0
`K gA$D l q0SQL>
~ e7GGb Xr0SQL>CNOUG博客首页u"tXs3Ud T
CNOUG博客首页9a$PY;d;G["u'F
CNOUG博客首页us9NiH&y
conclusions:
5|1y;A%GK;ON0CNOUG博客首页zt['Q1CW5A
要恢复数据库,肯定要恢复控制文件.所以要分两步走,1:恢复控制文件.2:恢复丢失的数据.CNOUG博客首页 PQf4N*hp @-M Cw
这个case是noarchivelog模式的,如果后来的dml很多,覆盖了redo,就没法恢复了.CNOUG博客首页 a;a t1}1P"{
如果是archivelog模式的,归档的日志都存在,应该是可以恢复的.道理一样.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/450962/viewspace-1027714/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/450962/viewspace-1027714/

丢失数据文件和控制文件的恢复案例(zt)相关推荐

  1. oracle日志文件打开,oracle日志文件和控制文件损坏的恢复

    oracle日志文件和控制文件损坏的恢复 恢复步骤: 1.加入_allow_resetlogs_corruption=true,_corrupted_rollback_segments=true,_o ...

  2. oracle重做日志详解,oracle数据文件、控制文件、重做日志文件详解

    什么是数据文件.控制文件.重做日志文件? 首先从Oracle的官方文档里摘录下面内容: The following sections explain the physical database str ...

  3. oracle之物理数据库结构概述(数据文件、重做日志文件,控制文件等各种数据库文件)

    oracle之物理数据库结构概述 oracle的物理结构其实是由各种各样的文件组成的, 其中与数据库相关的有: 数据文件(data file):这些文件是数据库的主要文件:其中包括数据表.索引和所有其 ...

  4. oracle 移动日志文件,Oracle数据库移动数据文件、日志文件和控制文件

    1.关闭数据库 SQL> shutdown immediate; 2.移动数据文件和日志文件到新位置 SQL> host mv /u01/olddata.dbf /u02/newdata. ...

  5. oracle查询数据库启动时的参数文件,【Oracle】数据库启动阶段参数文件、控制文件的问题处理...

    Oracle启动分三个阶段: nomount: 首先查找参数文件(pfile/spfile),根据文件创建实例.Nomount的过程是启动数据库实例的过程. 没有参数文件无法nomount mount ...

  6. oracle 11g 从rman全备中恢复控制文件,拥有RMAN全备(缺少后增文件),丢失全部数据文件,控制文件的恢复...

    1.做一个RMAN的全备 E:\oracle\rman_scripts>rman catalog target 恢复管理器: Release 10.2.0.1.0 - Production on ...

  7. oracle数据文件全部丢失,oracle 数据文件,控制文件和参数文件全部丢失恢复

    确保已经对全库进行备份 1.删除所有文件 [oracle@sql ~]$ cd /oracle/app/oradata/TEST/ [oracle@sql TEST]$ ls control01.ct ...

  8. 【Oracle】非RMAN恢复数据文件、控制文件

    实验环境:OEL 5.6 oracle 11g(11.2.0.4.0) 注意: system表空间数据文件不能在线recover,需要启动到mount状态再recover: undo表空间数据文件可以 ...

  9. 复用Oracle数据文件,Oracle控制文件的备份、恢复以及多路复用

    前言 今天给大家带来有关Oracle控制文件的技术分享.不积跬步无以至千里,不积小流无以成江海.Oracle技术博大精深,以我一个人的力量,那无异于蜉蝣于天地,沧海之一粟.在此,笔者抛砖引玉,希望读者 ...

  10. oracle参数文件、控制文件、数据文件、日志文件的位置及查询方法

    参数文件:所有参数文件一般在  $ORACLE_HOME/dbs 下 sqlplus查询语句:show parameter spfile; 网络连接文件: $ORACLE_HOME/dbs/netwo ...

最新文章

  1. HDU3342拓扑排序
  2. Charles 从入门到精通
  3. 技术分享:看我如何利用Outlook来创建基于电子邮件的持久化后门
  4. 「赠书」贾扬清推荐,国内首本数据竞赛图书
  5. micronet 测试
  6. ocp 042 第七章:管理方案对象
  7. android+百度lbs云,百度——LBS.云 v2.0——云存储扩展字段——Android
  8. JDK 14 – JEP 361从预览中切换表达式
  9. 进程的逻辑设备如何与一个物理设备建立对应的关系?
  10. 华为AI音箱更新春节专属技能:对春联 拜年留言
  11. python3导入ssl报错_python3中pip3安装出错,找不到SSL的解决方式
  12. 剑指offer——面试题59:对称的二叉树
  13. HarmonyOS IoT首著,走进万物互联的世界!
  14. 【脑洞探究】等公交该站在哪儿比较合适?——关于减少吸入空气污染物(pm2.5 or 雾霾等)而选择合适等候公交车位置的探究
  15. c语言股票最大收益_C语言买卖股票问题
  16. 当你的浏览器页面被篡改时,我们该怎么办
  17. 一支管理高效的技术团队是什么样子的?
  18. oracle单表空间预估,使用ARIMA和腾讯的Metis时序数据异常检测来预测系统空间容量变化趋势...
  19. python实现屏幕截图
  20. IP地址的规划和设计方法(三)

热门文章

  1. 无法创建新的分区也找不到现有的分区
  2. 模式识别谱聚类matlab,基因表达谱聚类分析
  3. 富集分析:(一)概述
  4. ps怎么对比原图快捷键_Photoshop最常用的10个快捷键,让你修图事半功倍!
  5. 计算机控制理论及应用,计算机控制理论及应用.doc
  6. @自我怀疑的开发者:你够优秀吗?
  7. “碳壁垒”悄然而起,碳足迹如何算清楚、减明白?|双碳科普
  8. 全同高校名称MySQL数据表
  9. EasyTouch插件是否还在使用?
  10. I didn't write blog yesterday night for some ineffable reasons