使用RMAN备份与恢复数据库(9)——增量备份

使用RMAN备份与恢复数据库(9)——增量备份

增量备份的中心思想就是减少备份的数据量,我们不需要从头开始备份,只需要备份自上次已备份之后的数据块即可。

一、增量备份原理

Oracle的每一个数据块都包含一个SCN,SCN可以标示最近一次对于数据块的改变。在增量备份的过程中,RMAN读取每一个数据块的SCN与之前备份的SCN相比较,从而判断出数据块是否发生了变化,然后据此进行备份。

1、增量备份的级别

Oracle 9i一共有五种级别:0、1、2、3、4,其中0级是1级的基础,以此类推。
Oracle 10g官方文档明确指出增量备份只有0和1两种级别,不过实际执行增量备份操作时,仍然能够指定多个级别,最大能够支持4级增量备份。
Oracle 11g 增量备份只有0和1两种级别。

Level 0级就是对数据库做全库备份,与普通的完全备份唯一的不同点是0级备份可以作为其他级别增量备份的基础,而普通的完全备份是不能的。
增量备份必须从0级开始,也就是说必须要有一个全库备份当基础。有了level 0为基础,才能有level 1、level 2、level 3、level 4。

2、增量备份的分类

Oracle的增量备份分为差异增量备份(Differential Incremental Backup)和积累增量备份(Cumulative Incremental Backup)两种 。
(1)差异增量备份:是RMAN生成的增量备份的默认类型。对于差异备份来说,RMAN会备份自上一次同级或低级差异增量备份以来所有发生变化的数据块。
比如:我们在星期天执行0级差异增量备份操作,备份整个数据库。根据这个0级备份,在星期一执行1级差异增量备份操作。该备份操作将备份自周日0级备份以来所有发生变化的数据块。在周二时1级增量备份将备份所有自周一1级备份以来发生变化的数据块。
如果要执行恢复操作,就需要星期一、星期二生成的备份以及星期天生成的基本备份。

(2)累计增量备份:累计增量备份是指备份自最近的级别0备份以来所变化的数据块。累积增量备份能减少恢复时间。
比如:我们在星期天执行0级差异增量备份操作,备份整个数据库。星期一执行1级累计备份操作,这种备份不同于差异备份,在星期二进行另一个1级累计增量备份操作。
需要注意的是:星期二生成的备份不仅包含星期一的差异备份以后发生变化的数据块,而且还含有星期一生成的备份中所包含的数据块。
因此,累积备份累积了任何同级或低级增量备份操作包含的所有发生变化的数据块。如果要执行恢复操作,就只需要星期二生成的备份以及星期天生成的基本备份。

(3)两种备份方式的区别:Differential backups备份速度较快,因为仅存储少量变化的块、但需要更长的时间来恢复;而Cumulative backup的主要优势是恢复时间较短,缺点是备份时间长和磁盘开销大。

表空间,数据库都可以做增量备份。

二、使用rman做全库备份

全库备份使用backup database;(未压缩),或 backup as compressed backupset database; (压缩)。

RMAN> backup as compressed backupset database format '/home/oracle/rmanbak/full_%d_%I_%s_%p_%T.bak';

Starting backup at 2020-04-12 12:29:04
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00002 name=/usr/local/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/usr/local/oradata/orcl/undotbs01.dbf
input datafile file number=00005 name=/usr/local/oradata/orcl/data01.dbf
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:29:05
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00001 name=/usr/local/oradata/orcl/system01.dbf
input datafile file number=00004 name=/usr/local/oradata/orcl/users01.dbf
input datafile file number=00006 name=/usr/local/oradata/orcl/data02.dbf
channel ORA_DISK_2: starting piece 1 at 2020-04-12 12:29:05
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:29:42
piece handle=/home/oracle/rmanbak/full_ORCL_1559168802_110_1_20200412.bak tag=TAG20200412T122904 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:37
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:29:44
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:29:45
piece handle=/home/oracle/rmanbak/full_ORCL_1559168802_112_1_20200412.bak tag=TAG20200412T122904 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:29:45
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:29:46
piece handle=/home/oracle/rmanbak/full_ORCL_1559168802_113_1_20200412.bak tag=TAG20200412T122904 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: finished piece 1 at 2020-04-12 12:29:52
piece handle=/home/oracle/rmanbak/full_ORCL_1559168802_111_1_20200412.bak tag=TAG20200412T122904 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:47
Finished backup at 2020-04-12 12:29:52

查看备份信息:可以看到,备份信息包含控制文件、参数文件的备份以及所有数据文件的备份。

RMAN> list backupset;


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


BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
90      Full    82.62M     DISK        00:00:31     2020-04-12 12:29:36
        BP Key: 122   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_110_1_20200412.bak
  List of Datafiles in backup set 90
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  2       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/sysaux01.dbf
  3       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/undotbs01.dbf
  5       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/data01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
91      Full    1.09M      DISK        00:00:01     2020-04-12 12:29:44
        BP Key: 123   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_112_1_20200412.bak
  Control File Included: Ckp SCN: 1996636      Ckp time: 2020-04-12 12:29:43

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
92      Full    80.00K     DISK        00:00:00     2020-04-12 12:29:45
        BP Key: 124   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_113_1_20200412.bak
  SPFILE Included: Modification time: 2020-04-12 12:22:34
  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
93      Full    178.20M    DISK        00:00:47     2020-04-12 12:29:52
        BP Key: 125   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_111_1_20200412.bak
  List of Datafiles in backup set 93
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/system01.dbf
  4       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/users01.dbf
  6       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/data02.dbf

三、使用rman做0级增量备份

全库备份和0级增量备份都是全备,但两者是有区别的:0级增量备份可以用于增量备份恢复的基础,而单独的全备不能用于增量备份的恢复基础。0级增量备份命令如下:

RMAN> backup as compressed backupset incremental level=0 database format '/home/oracle/rmanbak/incremental_%d_%I_%s_%p_%T.bak';

Starting backup at 2020-04-12 12:37:30
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00002 name=/usr/local/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/usr/local/oradata/orcl/undotbs01.dbf
input datafile file number=00005 name=/usr/local/oradata/orcl/data01.dbf
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:37:31
channel ORA_DISK_2: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00001 name=/usr/local/oradata/orcl/system01.dbf
input datafile file number=00004 name=/usr/local/oradata/orcl/users01.dbf
input datafile file number=00006 name=/usr/local/oradata/orcl/data02.dbf
channel ORA_DISK_2: starting piece 1 at 2020-04-12 12:37:31
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:38:06
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_114_1_20200412.bak tag=TAG20200412T123730 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:38:08
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:38:10
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_116_1_20200412.bak tag=TAG20200412T123730 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
channel ORA_DISK_1: starting compressed incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:38:10
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:38:11
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_117_1_20200412.bak tag=TAG20200412T123730 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: finished piece 1 at 2020-04-12 12:38:17
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_115_1_20200412.bak tag=TAG20200412T123730 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:46
Finished backup at 2020-04-12 12:38:17

查看备份信息:可以看到,全库备份的type为full,增量备份的type为incr 0。

RMAN> list backupset;


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


BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
90      Full    82.62M     DISK        00:00:31     2020-04-12 12:29:36
        BP Key: 122   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_110_1_20200412.bak
  List of Datafiles in backup set 90
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  2       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/sysaux01.dbf
  3       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/undotbs01.dbf
  5       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/data01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
91      Full    1.09M      DISK        00:00:01     2020-04-12 12:29:44
        BP Key: 123   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_112_1_20200412.bak
  Control File Included: Ckp SCN: 1996636      Ckp time: 2020-04-12 12:29:43

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
92      Full    80.00K     DISK        00:00:00     2020-04-12 12:29:45
        BP Key: 124   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_113_1_20200412.bak
  SPFILE Included: Modification time: 2020-04-12 12:22:34
  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
93      Full    178.20M    DISK        00:00:47     2020-04-12 12:29:52
        BP Key: 125   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_111_1_20200412.bak
  List of Datafiles in backup set 93
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/system01.dbf
  4       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/users01.dbf
  6       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/data02.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
94      Incr 0  83.20M     DISK        00:00:29     2020-04-12 12:38:00
        BP Key: 126   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_114_1_20200412.bak
  List of Datafiles in backup set 94
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  2    0  Incr 1997194    2020-04-12 12:37:31 /usr/local/oradata/orcl/sysaux01.dbf
  3    0  Incr 1997194    2020-04-12 12:37:31 /usr/local/oradata/orcl/undotbs01.dbf
  5    0  Incr 1997194    2020-04-12 12:37:31 /usr/local/oradata/orcl/data01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
95      Incr 0  1.09M      DISK        00:00:02     2020-04-12 12:38:09
        BP Key: 127   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_116_1_20200412.bak
  Control File Included: Ckp SCN: 1997214      Ckp time: 2020-04-12 12:38:07

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
96      Incr 0  80.00K     DISK        00:00:00     2020-04-12 12:38:10
        BP Key: 128   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_117_1_20200412.bak
  SPFILE Included: Modification time: 2020-04-12 12:22:34
  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
97      Incr 0  178.19M    DISK        00:00:45     2020-04-12 12:38:16
        BP Key: 129   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_115_1_20200412.bak
  List of Datafiles in backup set 97
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1    0  Incr 1997195    2020-04-12 12:37:31 /usr/local/oradata/orcl/system01.dbf
  4    0  Incr 1997195    2020-04-12 12:37:31 /usr/local/oradata/orcl/users01.dbf
  6    0  Incr 1997195    2020-04-12 12:37:31 /usr/local/oradata/orcl/data02.dbf

四、使用rman做1级增量备份

对数据库中的数据进行修改,然后进行1级增量备份。

RMAN> backup as compressed backupset incremental level 1 database format '/home/oracle/rmanbak/incremental_%d_%I_%s_%p_%T.bak';

Starting backup at 2020-04-12 12:55:39
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/usr/local/oradata/orcl/system01.dbf
input datafile file number=00006 name=/usr/local/oradata/orcl/data02.dbf
input datafile file number=00005 name=/usr/local/oradata/orcl/data01.dbf
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:55:39
channel ORA_DISK_2: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00002 name=/usr/local/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/usr/local/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/usr/local/oradata/orcl/users01.dbf
channel ORA_DISK_2: starting piece 1 at 2020-04-12 12:55:39
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:56:34
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_118_1_20200412.bak tag=TAG20200412T125539 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
channel ORA_DISK_1: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
channel ORA_DISK_2: finished piece 1 at 2020-04-12 12:56:35
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_119_1_20200412.bak tag=TAG20200412T125539 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:56
channel ORA_DISK_2: starting compressed incremental level 1 datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_2: starting piece 1 at 2020-04-12 12:56:35
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 2020-04-12 12:56:35
channel ORA_DISK_1: finished piece 1 at 2020-04-12 12:56:36
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_120_1_20200412.bak tag=TAG20200412T125539 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_2: finished piece 1 at 2020-04-12 12:56:36
piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_121_1_20200412.bak tag=TAG20200412T125539 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
Finished backup at 2020-04-12 12:56:36

查看备份信息:

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


BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
90      Full    82.62M     DISK        00:00:31     2020-04-12 12:29:36
        BP Key: 122   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_110_1_20200412.bak
  List of Datafiles in backup set 90
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  2       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/sysaux01.dbf
  3       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/undotbs01.dbf
  5       Full 1996622    2020-04-12 12:29:05 /usr/local/oradata/orcl/data01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
91      Full    1.09M      DISK        00:00:01     2020-04-12 12:29:44
        BP Key: 123   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_112_1_20200412.bak
  Control File Included: Ckp SCN: 1996636      Ckp time: 2020-04-12 12:29:43

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
92      Full    80.00K     DISK        00:00:00     2020-04-12 12:29:45
        BP Key: 124   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_113_1_20200412.bak
  SPFILE Included: Modification time: 2020-04-12 12:22:34
  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
93      Full    178.20M    DISK        00:00:47     2020-04-12 12:29:52
        BP Key: 125   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T122904
        Piece Name: /home/oracle/rmanbak/full_ORCL_1559168802_111_1_20200412.bak
  List of Datafiles in backup set 93
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/system01.dbf
  4       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/users01.dbf
  6       Full 1996623    2020-04-12 12:29:05 /usr/local/oradata/orcl/data02.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
94      Incr 0  83.20M     DISK        00:00:29     2020-04-12 12:38:00
        BP Key: 126   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_114_1_20200412.bak
  List of Datafiles in backup set 94
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  2    0  Incr 1997194    2020-04-12 12:37:31 /usr/local/oradata/orcl/sysaux01.dbf
  3    0  Incr 1997194    2020-04-12 12:37:31 /usr/local/oradata/orcl/undotbs01.dbf
  5    0  Incr 1997194    2020-04-12 12:37:31 /usr/local/oradata/orcl/data01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
95      Incr 0  1.09M      DISK        00:00:02     2020-04-12 12:38:09
        BP Key: 127   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_116_1_20200412.bak
  Control File Included: Ckp SCN: 1997214      Ckp time: 2020-04-12 12:38:07

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
96      Incr 0  80.00K     DISK        00:00:00     2020-04-12 12:38:10
        BP Key: 128   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_117_1_20200412.bak
  SPFILE Included: Modification time: 2020-04-12 12:22:34
  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
97      Incr 0  178.19M    DISK        00:00:45     2020-04-12 12:38:16
        BP Key: 129   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T123730
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_115_1_20200412.bak
  List of Datafiles in backup set 97
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1    0  Incr 1997195    2020-04-12 12:37:31 /usr/local/oradata/orcl/system01.dbf
  4    0  Incr 1997195    2020-04-12 12:37:31 /usr/local/oradata/orcl/users01.dbf
  6    0  Incr 1997195    2020-04-12 12:37:31 /usr/local/oradata/orcl/data02.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
98      Incr 1  1.20M      DISK        00:00:46     2020-04-12 12:56:25
        BP Key: 130   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T125539
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_119_1_20200412.bak
  List of Datafiles in backup set 98
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  2    1  Incr 1999061    2020-04-12 12:55:39 /usr/local/oradata/orcl/sysaux01.dbf
  3    1  Incr 1999061    2020-04-12 12:55:39 /usr/local/oradata/orcl/undotbs01.dbf
  4    1  Incr 1999061    2020-04-12 12:55:39 /usr/local/oradata/orcl/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
99      Incr 1  1.76M      DISK        00:00:48     2020-04-12 12:56:27
        BP Key: 131   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T125539
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_118_1_20200412.bak
  List of Datafiles in backup set 99
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1    1  Incr 1999060    2020-04-12 12:55:39 /usr/local/oradata/orcl/system01.dbf
  5    1  Incr 1999060    2020-04-12 12:55:39 /usr/local/oradata/orcl/data01.dbf
  6    1  Incr 1999060    2020-04-12 12:55:39 /usr/local/oradata/orcl/data02.dbf

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
100     Incr 1  80.00K     DISK        00:00:00     2020-04-12 12:56:35
        BP Key: 132   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T125539
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_121_1_20200412.bak
  SPFILE Included: Modification time: 2020-04-12 12:22:34
  SPFILE db_unique_name: ORCL

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
101     Incr 1  1.09M      DISK        00:00:00     2020-04-12 12:56:35
        BP Key: 133   Status: AVAILABLE  Compressed: YES  Tag: TAG20200412T125539
        Piece Name: /home/oracle/rmanbak/incremental_ORCL_1559168802_120_1_20200412.bak
  Control File Included: Ckp SCN: 1999080      Ckp time: 2020-04-12 12:56:35

查看备份片的大小:level 1备份的数据文件(114大小84M、115大小179M)比level 0备份的数据文件(118大小1.8M、119大小1.3M)要小得多。

[oracle@wgx rmanbak]$ ll -h
总用量 529M
-rw-r-----1 oracle oinstall  83M 4月  12 12:29 full_ORCL_1559168802_110_1_20200412.bak
-rw-r-----1 oracle oinstall 179M 4月  12 12:29 full_ORCL_1559168802_111_1_20200412.bak
-rw-r-----1 oracle oinstall 1.2M 4月  12 12:29 full_ORCL_1559168802_112_1_20200412.bak
-rw-r-----1 oracle oinstall  96K 4月  12 12:29 full_ORCL_1559168802_113_1_20200412.bak
-rw-r-----1 oracle oinstall  84M 4月  12 12:37 incremental_ORCL_1559168802_114_1_20200412.bak
-rw-r-----1 oracle oinstall 179M 4月  12 12:38 incremental_ORCL_1559168802_115_1_20200412.bak
-rw-r-----1 oracle oinstall 1.2M 4月  12 12:38 incremental_ORCL_1559168802_116_1_20200412.bak
-rw-r-----1 oracle oinstall  96K 4月  12 12:38 incremental_ORCL_1559168802_117_1_20200412.bak
-rw-r-----1 oracle oinstall 1.8M 4月  12 12:56 incremental_ORCL_1559168802_118_1_20200412.bak
-rw-r-----1 oracle oinstall 1.3M 4月  12 12:56 incremental_ORCL_1559168802_119_1_20200412.bak
-rw-r-----1 oracle oinstall 1.2M 4月  12 12:56 incremental_ORCL_1559168802_120_1_20200412.bak
-rw-r-----1 oracle oinstall  96K 4月  12 12:56 incremental_ORCL_1559168802_121_1_20200412.bak

五、恢复数据库

1、修改数据

SQL> create table e011 tablespace users as select * from  e02;
Table created.

SQL> alter system switch logfile;
System altered.

2、删除数据文件

SQL> select name from v$datafile;

NAME
------------------------------------------------------------------------------
/usr/local/oradata/orcl/system01.dbf
/usr/local/oradata/orcl/sysaux01.dbf
/usr/local/oradata/orcl/undotbs01.dbf
/usr/local/oradata/orcl/users01.dbf
/usr/local/oradata/orcl/data01.dbf
/usr/local/oradata/orcl/data02.dbf

6 rows selected.

Elapsed: 00:00:00.10
SQL> host rm /usr/local/oradata/orcl/users01.dbf

SQL> host rm /usr/local/oradata/orcl/data01.dbf

SQL> host rm /usr/local/oradata/orcl/data02.dbf

3、重新启动数据库

由于数据文件丢失,启动数据库失败。

SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size		    2220200 bytes
Variable Size		  482348888 bytes
Database Buffers	  578813952 bytes
Redo Buffers		    5554176 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/usr/local/oradata/orcl/users01.dbf'

4、使用RMAN恢复数据库

RMAN> 

run {
    restore database;
    recover database;
4> }

Starting restore at 2020-04-12 13:37:18
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=135 device type=DISK

------------------------------------------------------------------------------------
---------------数据恢复的第一阶段:读取level 0备份数据
------------------------------------------------------------------------------------

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /usr/local/oradata/orcl/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /usr/local/oradata/orcl/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00005 to /usr/local/oradata/orcl/data01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/rmanbak/incremental_ORCL_1559168802_114_1_20200412.bak
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00001 to /usr/local/oradata/orcl/system01.dbf
channel ORA_DISK_2: restoring datafile 00004 to /usr/local/oradata/orcl/users01.dbf
channel ORA_DISK_2: restoring datafile 00006 to /usr/local/oradata/orcl/data02.dbf
channel ORA_DISK_2: reading from backup piece /home/oracle/rmanbak/incremental_ORCL_1559168802_115_1_20200412.bak
channel ORA_DISK_1: piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_114_1_20200412.bak tag=TAG20200412T123730
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:36
channel ORA_DISK_2: piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_115_1_20200412.bak tag=TAG20200412T123730
channel ORA_DISK_2: restored backup piece 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:56
Finished restore at 2020-04-12 13:38:15

------------------------------------------------------------------------------------
---------------数据恢复的第二阶段:读取level 1备份数据
------------------------------------------------------------------------------------

Starting recover at 2020-04-12 13:38:15
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00002: /usr/local/oradata/orcl/sysaux01.dbf
destination for restore of datafile 00003: /usr/local/oradata/orcl/undotbs01.dbf
destination for restore of datafile 00004: /usr/local/oradata/orcl/users01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/rmanbak/incremental_ORCL_1559168802_119_1_20200412.bak
channel ORA_DISK_2: starting incremental datafile backup set restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /usr/local/oradata/orcl/system01.dbf
destination for restore of datafile 00005: /usr/local/oradata/orcl/data01.dbf
destination for restore of datafile 00006: /usr/local/oradata/orcl/data02.dbf
channel ORA_DISK_2: reading from backup piece /home/oracle/rmanbak/incremental_ORCL_1559168802_118_1_20200412.bak
channel ORA_DISK_1: piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_119_1_20200412.bak tag=TAG20200412T125539
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_2: piece handle=/home/oracle/rmanbak/incremental_ORCL_1559168802_118_1_20200412.bak tag=TAG20200412T125539
channel ORA_DISK_2: restored backup piece 1
channel ORA_DISK_2: restore complete, elapsed time: 00:00:01

------------------------------------------------------------------------------------
---------------数据恢复的第三阶段:读取重做日志信息和归档日志信息
------------------------------------------------------------------------------------

starting media recovery

archived log for thread 1 with sequence 22 is already on disk as file /home/oracle/archive_logs/1_22_1037350089.dbf
archived log for thread 1 with sequence 23 is already on disk as file /home/oracle/archive_logs/1_23_1037350089.dbf
archived log for thread 1 with sequence 24 is already on disk as file /home/oracle/archive_logs/1_24_1037350089.dbf
archived log file name=/home/oracle/archive_logs/1_22_1037350089.dbf thread=1 sequence=22
media recovery complete, elapsed time: 00:00:01
Finished recover at 2020-04-12 13:38:18

5、打开数据库,查看数据

RMAN> alter database open;
database opened

SQL> conn scott/tiger
Connected.
SQL> select count(*) from e02;

  COUNT(*)
----------
    229376

SQL> select count(*) from e011;

  COUNT(*)
----------
    229376

猜你喜欢

转载自blog.csdn.net/weixin_44377973/article/details/105472946