`
sjk2013
  • 浏览: 2295575 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

并不是所有数据文件丢失都能够直接被恢复,如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命令应用所有重做日志的方式,重建该数据文件的内容。

分享到:
评论

相关推荐

    备份以及恢复

    - **物理备份**:直接复制数据库的物理文件(如数据文件、归档日志等),适用于大多数情况下的数据恢复。物理备份又可以进一步细分为冷备份和热备份。 - 冷备份(停机备份):在数据库关闭状态下进行的备份,通常是...

    Oracle数据库备份和恢复的研究与应用.pdf

    介质恢复则用于处理数据文件、控制文件等的丢失或损坏,需要利用备份文件和重做日志进行恢复。 在实际应用中,根据业务需求和风险评估,可以采取不同的备份策略,如增量备份、差异备份等,以优化备份效率和存储空间...

    ORACLE数据库恢复技术

    - 接着,使用归档日志文件来恢复数据,这通常涉及到应用所有未应用的归档日志文件。 - 最后,执行一致性恢复,确保所有的事务都得到了正确的处理。 - **实例演示**:下面是一个简单的恢复脚本示例,用于展示如何...

    Oracle数据库恢复技术概述.pdf

    当遇到物理介质损坏时,DBA需要先从备份中恢复数据文件,然后通过应用归档重做日志来恢复到最新状态。如果在线重做日志丢失或损坏,介质恢复可能无法进行完全恢复,可能需要面对数据丢失的风险。 因此,对于Oracle ...

    恢复Oracle数据库控制文件.pdf

    Oracle数据库的控制文件是系统的重要组成部分,记录了数据库的关键配置信息,如数据库名称、字符集、数据文件的位置等。一旦控制文件损坏或丢失,数据库无法正常启动,这是一个严重的问题。以下是如何恢复Oracle...

    断电后,oracle数据库启动不了

    标题“断电后,Oracle数据库启动不了”指出的问题通常是由于突然停电或服务器意外关机导致数据库在不正常状态下关闭,从而引发数据文件、控制文件或重做日志文件的损坏或者一致性问题。Oracle数据库在启动时会进行...

Global site tag (gtag.js) - Google Analytics