RMAN学习之一:归档模式有备份,丢失数据文件。

1、确保数据库处于归档模式。

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/oradata/archive
Oldest online log sequence     1
Next log sequence to archive   2
Current log sequence           2

2、数据库做个全备。

(1)简单的全备。

RMAN> backup database;

Starting backup at 2012-11-10 15:58:13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=153 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
input datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2012-11-10 15:58:14
channel ORA_DISK_1: finished piece 1 at 2012-11-10 15:58:59
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_11_10/o1_mf_nnndf_TAG20121110T155814_89w28pdp_.bkp tag=TAG20121110T155814 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
Finished backup at 2012-11-10 15:58:59

Starting Control File and SPFILE Autobackup at 2012-11-10 15:58:59
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2012_11_10/o1_mf_s_798998339_89w2b4o1_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2012-11-10 15:59:02

(2)查看数据库备份。

RMAN> list backup of database;

List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
9       Full    603.36M    DISK        00:00:36     2012-11-10 15:58:50
        BP Key: 9   Status: AVAILABLE  Compressed: NO  Tag: TAG20121110T155814
        Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_11_10/o1_mf_nnndf_TAG20121110T155814_89w28pdp_.bkp
  List of Datafiles in backup set 9
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 554007     2012-11-10 15:58:14 /u01/app/oracle/oradata/orcl/system01.dbf
  2       Full 554007     2012-11-10 15:58:14 /u01/app/oracle/oradata/orcl/undotbs01.dbf
  3       Full 554007     2012-11-10 15:58:14 /u01/app/oracle/oradata/orcl/sysaux01.dbf
  4       Full 554007     2012-11-10 15:58:14 /u01/app/oracle/oradata/orcl/users01.dbf
  5       Full 554007     2012-11-10 15:58:14 /u01/app/oracle/oradata/orcl/example01.dbf

3、以ORACLE自带的example为例。

(1)scott用户创建一个新表,并插入值。

SQL> create table test(name varchar2(10));

Table created.
SQL> select * from test;

NAME
--------------------
11
22
33

(2)模拟故障,手动删掉数据文件。

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host rm -f '/u01/app/oracle/oradata/orcl/example01.dbf';
SQL> startup;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size             117442128 bytes
Database Buffers          163577856 bytes
Redo Buffers                2973696 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/u01/app/oracle/oradata/orcl/example01.dbf'
SQL> select instance_name, status from v$instance;

INSTANCE_NAME                    STATUS
-------------------------------- ------------------------
orcl                             MOUNTED

4、恢复过程

修复数据文件

RMAN> restore datafile '/u01/app/oracle/oradata/orcl/example01.dbf';

Starting restore at 2012-11-10 16:11:15
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 00005 to /u01/app/oracle/oradata/orcl/example01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_11_10/o1_mf_nnndf_TAG20121110T155814_89w28pdp_.bkp
channel ORA_DISK_1: restored backup piece 1
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_11_10/o1_mf_nnndf_TAG20121110T155814_89w28pdp_.bkp tag=TAG20121110T155814
channel ORA_DISK_1: restore complete, elapsed time: 00:00:08
Finished restore at 2012-11-10 16:11:23

恢复数据文件

RMAN> recover datafile '/u01/app/oracle/oradata/orcl/example01.dbf';

Starting recover at 2012-11-10 16:11:53
using channel ORA_DISK_1

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

Finished recover at 2012-11-10 16:11:56

打开数据库。

RMAN> alter database open;

database opened

先前全备过后创建的表,恢复回来。

SQL> select * from test;

NAME
--------------------
11
22
33
原文地址:https://www.cnblogs.com/guarder/p/3472049.html