ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle实验记录 (恢复-恢复未备份的数据文件)

oracle实验记录 (恢复-恢复未备份的数据文件)

原创 Linux操作系统 作者:fufuh2o 时间:2009-09-30 17:36:16 0 删除 编辑


需要有表空间建立以来 到 数据文件损坏时所有日志,archivelog

 


手动方式

SQL> 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 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

 

SQL> col file_name format a40
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME
---------- ----------------------------------------
XHTEST     D:\XHDATAFILE\XHTEST.DBF
RMAN_TS    D:\XHDATAFILE\RMANDF.DBF
EXAMPLE    D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAM
           PLE01.DBF

USERS      D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USER
           S01.DBF

SYSAUX     D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSA
           UX01.DBF


TABLESPACE FILE_NAME
---------- ----------------------------------------
UNDOTBS1   D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDO
           TBS01.DBF

SYSTEM     D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYST
           EM01.DBF

XHTR       D:\XHDATAFILE\XHTR.DBF
OUTLINE_TS D:\XHDATAFILE\OUTLINE.DBF
SMALLTS    D:\XHDATAFILE\SMALLFILE.DBF

已选择10行。

SQL>
已选择10行。

SQL> create tablespace nobackup datafile 'd:\xhdatafile\nobackup.dbf' size 10m;

表空间已创建。

SQL> create table nt (a int) tablespace nobackup;

表已创建。

SQL> insert into nt values(1);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from nt
  2  ;

         A
----------
         1

SQL> select tablespace_name from user_tables where table_name='NT';

TABLESPACE
----------
NOBACKUP

SQL> alter system switch logfile;

系统已更改。

SQL> alter system checkpoint;

系统已更改。
SQL> alter tablespace nobackup read only;

表空间已更改。

SQL> host del d:\xhdatafile\nobackup.dbf;
d:\xhdatafile\NOBACKUP.DBF
另一个程序正在使用此文件,进程无法访问。

SQL> alter database datafile 'd:\xhdatafile\nobackup.dbf' offline;

数据库已更改。

SQL> host del d:\xhdatafile\nobackup.dbf;

 


SQL> alter database datafile 'd:\xhdatafile\nobackup.dbf' online;
alter database datafile 'd:\xhdatafile\nobackup.dbf' online
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 11 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 11: 'D:\XHDATAFILE\NOBACKUP.DBF'


SQL> alter database create datafile 'D:\XHDATAFILE\NOBACKUP.DBF';~~~~~~~~~~~~~~~~~~~~~

数据库已更改。

SQL> recover datafile 11;
完成介质恢复。
SQL> alter database datafile 'd:\xhdatafile\nobackup.dbf' online;

数据库已更改。

SQL> alter tablespace nobackup read write;

表空间已更改。

SQL> select * from nt;

         A
----------
         1


rman 方式

 

SQL> select * from nt;

         A
----------
         1

SQL> alter database datafile 'd:\xhdatafile\nobackup.dbf' offline;

数据库已更改。

SQL> host del d:\xhdatafile\nobackup.dbf;

SQL> select * from nt;
select * from nt
              *
第 1 行出现错误:
ORA-00376: 此时无法读取文件 11
ORA-01110: 数据文件 11: 'D:\XHDATAFILE\NOBACKUP.DBF'

 

C:\>rman target /

恢复管理器: Release 10.2.0.1.0 - Production on 星期三 9月 30 17:31:32 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到目标数据库: XH (DBID=3093395309)

RMAN> list backup of datafile 11
2> ;
~~~~~~~~~~~~~~~~~~~~~~~~没有备份

RMAN>
RMAN> run{restore datafile 11;
2> recover datafile 11;
3> sql 'alter database datafile 11 online';
4> }

启动 restore 于 30-9月 -09
使用通道 ORA_DISK_1
~
创建数据文件 fno = 11 名称 = D:\XHDATAFILE\NOBACKUP.DBF~~~~~~~~~~~~rman会自动创建 未备份的数据文件
没有完成恢复; 所有文件均为只读或脱机文件或者已经恢复
完成 restore 于 30-9月 -09

启动 recover 于 30-9月 -09
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:03

完成 recover 于 30-9月 -09

sql 语句: alter database datafile 11 online
SQL> select * from nt;

         A
----------
         1

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

请登录后发表评论 登录
全部评论

注册时间:2009-06-26

  • 博文量
    182
  • 访问量
    426849