姿姿霸霸~~!
贵在坚持!
posts - 106,  comments - 50,  trackbacks - 0
1.先备份数据文件
SQL> select file_name,tablespace_name from dba_data_files;

FILE_NAME                                                    TABLESPACE_NAME
------------------------------------------------------------ -----------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUREDD\DDTESTTBS02.DBF      DDTEST
D:\ORACLE\PRODUCT\
10.2.0\ORADATA\SUREDD\EXAMPLE01.DBF        EXAMPLE
D:\ORACLE\PRODUCT\
10.2.0\ORADATA\SUREDD\USERS01.DBF          USERS
D:\ORACLE\PRODUCT\
10.2.0\ORADATA\SUREDD\SYSAUX01.DBF         SYSAUX
D:\ORACLE\PRODUCT\
10.2.0\ORADATA\SUREDD\UNDOTBS01.DBF        UNDOTBS1
D:\ORACLE\PRODUCT\
10.2.0\ORADATA\SUREDD\SYSTEM01.DBF         SYSTEM
SQL> alter tablespace ddtest begin backup;

表空间已更改。

SQL
> alter tablespace ddtest end backup;

表空间已更改。

2.用UE将ddtest对应的数据文件破坏
3.直接shutdown abort,再startup

SQL
> shutdown abort;
ORACLE 例程已经关闭。
SQL
> startup
ORACLE 例程已经启动。

Total System Global Area  
612368384 bytes
Fixed Size                  
1250428 bytes
Variable Size             
197135236 bytes
Database Buffers          406847488 bytes
Redo Buffers                
7135232 bytes
数据库装载完毕。
ORA
-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件
ORA
-01110: 数据文件 6'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUREDD\DDTESTTBS02.DBF'


SQL
> 

4.查找需要恢复的数据文件
SQL> select status from v$instance;

STATUS
------------
MOUNTED

SQL
> select * from v$recover_file;

     
FILE# ONLINE  ONLINE_ ERROR                                                                CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- -------
         6 ONLINE  ONLINE  FILE NOT FOUND                                                             0

SQL
> select * from v$backup;

     
FILE# STATUS                CHANGE# TIME
---------- ------------------ ---------- --------------
         1 NOT ACTIVE                  0
         
2 NOT ACTIVE                  0
         
3 NOT ACTIVE                  0
         
4 NOT ACTIVE                  0
         
5 NOT ACTIVE                  0
         
6 FILE NOT FOUND              0

已选择6行。

SQL
> edit
已写入 
file afiedt.buf

  
1   SELECT D.NAME, T.NAME AS TABLESPACE_NAME
  
2     FROM V$DATAFILE D, V$TABLESPACE T
  
3     WHERE T.TS# = D.TS#
  
4*    AND D.FILE= 6
SQL
> /

NAME
----------------------------------------------------------------------------------------------------
TABLESPACE_NAME
------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUREDD\DDTESTTBS02.DBF
DDTEST


SQL
> 

5.将备份的数据文件直接copy到原位置(因为此时为mount状态,所以可以直接copy,不用offline),再recover,再打开数据库。如果是打开的,(此时做了alter system checkpoint 也能使得表空间不可用),那就将对应的表空间先offline,再执行recover,执行完recover后,再将表空间online。

SQL
> recover datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SUREDD\DDTESTTBS02.DBF';
完成介质恢复。
SQL
> alter database open;

数据库已更改。

SQL
> select * from dd.t1;

        ID NAME
---------- ----------
         1 test1
         
2 test2

SQL
> 
注:dd.t1这个表在ddtest这个表空间上

至此恢复完成.
posted on 2011-05-04 22:56 xrzp 阅读(362) 评论(0)  编辑  收藏 所属分类: oracle-备份恢复

只有注册用户登录后才能发表评论。


网站导航:
 

<2011年5月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(4)

随笔分类

随笔档案

好友的blog

搜索

  •  

积分与排名

  • 积分 - 116540
  • 排名 - 500

最新评论

阅读排行榜

评论排行榜