ITPub博客

首页 > 数据库 > Oracle > rman实验之归档模式无备份,正常关机丢失数据文件的恢复

rman实验之归档模式无备份,正常关机丢失数据文件的恢复

原创 Oracle 作者:幕南风 时间:2014-07-03 13:22:04 0 删除 编辑

    并不是所有数据文件丢失都能够直接被恢复,如system;也不是所有数据文件丢失都需要恢复,如temp表空间。  

    下面模拟一张业务表。

    1 创建演示环境

sys@ORCL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     16
Next log sequence to archive   18
Current log sequence           18
sys@ORCL> create tablespace think datafile \'/u01/app/oracle/oradata/ORCL/datafile/think.dbf\' size 10m;

Tablespace created.

sys@ORCL> create user think identified by think default tablespace think quota unlimited on think;

User created.

sys@ORCL> grant connect,resource to think;

Grant succeeded.

sys@ORCL> conn think/think
Connected.
think@ORCL> create table tt (name varchar2(20));

Table created.

think@ORCL> insert into tt values(\'think\');

1 row created.

think@ORCL> commit;

Commit complete.

think@ORCL> select * from tt;

NAME
--------------------
think


    2 模拟数据文件丢失

sys@ORCL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ORCL> host rm -rf /u01/app/oracle/oradata/ORCL/datafile/think.dbf
重新启动数据库
sys@ORCL> startup
ORACLE instance started.

Total System Global Area  419430400 bytes
Fixed Size                  1219760 bytes
Variable Size             125829968 bytes
Database Buffers          289406976 bytes
Redo Buffers                2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
ORA-01110: data file 8: \'/u01/app/oracle/oradata/ORCL/datafile/think.dbf\'


****************************用户管理的恢复方式***********************

    3 执行修复和恢复

sys@ORCL> alter database create datafile \'/u01/app/oracle/oradata/ORCL/datafile/think.dbf\';

Database altered.

sys@ORCL> recover datafile 8;
Media recovery complete.


    4 查询数据

sys@ORCL> alter database open;

Database altered.

sys@ORCL> conn think/think
Connected.
think@ORCL> select * from tt;

NAME
--------------------
think


*****************************rman恢复**********************

 

[oracle@localhost ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Tue Aug 7 00:03:44 2012

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

connected to target database: ORCL (DBID=1316499950, not open)

RMAN> restore datafile 8;

Starting restore at 07-AUG-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK

creating datafile fno=8 name=/u01/app/oracle/oradata/ORCL/datafile/think.dbf
restore not done; all files readonly, offline, or already restored
Finished restore at 07-AUG-12

RMAN> recover datafile 8;

Starting recover at 07-AUG-12
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:03

Finished recover at 07-AUG-12

RMAN> alter database open;

database opened
sys@ORCL> conn think/think
Connected.
think@ORCL> select * from tt;

NAME
--------------------
think


    小结:丢失的数据文件,能够恢复的关键是,从其创建时刻起所有的重做日志文件都还在,因此我们才可以在重建该数据文件后,通过recover命令应用所有重做日志的方式,重建该数据文件的内容。

<!-- Baidu Button BEGIN -->

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

上一篇: rman实验之归档模式有备份,正常关机丢失数据文件的恢复
下一篇: 从平衡树到oracle b-tree索引的原理探索
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章