使用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