1 创建备份
RMAN> backup database plus archivelog;
2 搭建环境
hr@ORCL> create table tt (name varchar2(20));
Table created.
hr@ORCL> insert into tt values('test1');
1 row created.
hr@ORCL> insert into tt values('test2');
1 row created.
hr@ORCL> insert into tt values('test3');
1 row created.
hr@ORCL> commit;
Commit complete.
hr@ORCL> select * from tt;
NAME
--------------------
test1
test2
test3
3 模拟数据文件丢失
sys@ORCL> select default_tablespace from dba_users where username='HR';
DEFAULT_TABLESPACE
--------
users
sys@ORCL> select dt.tablespace_name,
2 file_id,
3 file_name
4 from dba_tablespaces dt, dba_data_files dd
5 where dt.tablespace_name=dd.tablespace_name;
TABLESPA FILE_ID FILE_NAME
-------- ---------- ----------------------------------------------------------------------
USERS 4 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf
SYSAUX 3 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_8050fk3w_.dbf
UNDOTBS1 2 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_8050fkc6_.dbf
SYSTEM 1 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_8050fk2z_.dbf
EXAMPLE 5 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_8050jhm7_.dbf
UNDOTBS2 6 /u01/app/oracle/oradata/ORCL/datafile/undotbsthi.dbf
RMANTBS 7 /u01/app/oracle/flash_recovery_area/ORCL/rmantbs01.dbf
sys@ORCL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ORCL> host rm -rf /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf;
重新启动数据库:
sys@ORCL> startup
ORACLE instance started.
Total System Global Area 419430400 bytes
Fixed Size 1219760 bytes
Variable Size 121635664 bytes
Database Buffers 293601280 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf'
4 用rman执行修复和恢复
[oracle@localhost ~]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Mon Aug 6 22:54:36 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1316499950, not open)
RMAN> restore datafile 4;
Starting restore at 06-AUG-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=155 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00004 to /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_08_06/o1_mf_nnndf_TAG20120806T223510_81zojyz5_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_08_06/o1_mf_nnndf_TAG20120806T223510_81zojyz5_.bkp tag=TAG20120806T223510
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 06-AUG-12
RMAN> recover datafile 4;
Starting recover at 06-AUG-12
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:03
Finished recover at 06-AUG-12
RMAN> alter database open;
database opened
5 查询数据
hr@ORCL> select * from tt;
NAME
--------------------
test1
test2
test3
数据全部回来,恢复成功!
分享到:
相关推荐
- **物理备份**:直接复制数据库的物理文件(如数据文件、归档日志等),适用于大多数情况下的数据恢复。物理备份又可以进一步细分为冷备份和热备份。 - 冷备份(停机备份):在数据库关闭状态下进行的备份,通常是...
介质恢复则用于处理数据文件、控制文件等的丢失或损坏,需要利用备份文件和重做日志进行恢复。 在实际应用中,根据业务需求和风险评估,可以采取不同的备份策略,如增量备份、差异备份等,以优化备份效率和存储空间...
- 接着,使用归档日志文件来恢复数据,这通常涉及到应用所有未应用的归档日志文件。 - 最后,执行一致性恢复,确保所有的事务都得到了正确的处理。 - **实例演示**:下面是一个简单的恢复脚本示例,用于展示如何...
当遇到物理介质损坏时,DBA需要先从备份中恢复数据文件,然后通过应用归档重做日志来恢复到最新状态。如果在线重做日志丢失或损坏,介质恢复可能无法进行完全恢复,可能需要面对数据丢失的风险。 因此,对于Oracle ...
Oracle数据库的控制文件是系统的重要组成部分,记录了数据库的关键配置信息,如数据库名称、字符集、数据文件的位置等。一旦控制文件损坏或丢失,数据库无法正常启动,这是一个严重的问题。以下是如何恢复Oracle...
标题“断电后,Oracle数据库启动不了”指出的问题通常是由于突然停电或服务器意外关机导致数据库在不正常状态下关闭,从而引发数据文件、控制文件或重做日志文件的损坏或者一致性问题。Oracle数据库在启动时会进行...