原创 转载请注明出处
10g中添加很多新特性 当然RMAN 也得到了增强,INCREMENTALLY UPDATED BACKUPS就是其中之一。
此特性有别于传统的增量备份,主要是为了节省恢复时间,他通过合并COPY和增量BACKUPSET来节约时间,举个例子:周1早上 全备(全备为COPY备份) 周2早上 增量 周2晚上 洗白
如果没合并恢复时间为:
周1早上-(使用增量)--周2早上--(使用归档和日志文件)---当前状态
如果合并了恢复时间为:
周1早上-(省去)--周2早上--(使用归档和日志文件)---当前状态
周2早上--(使用归档和日志文件)---当前状态 只需要这段时间
周1早上-(省去)--周2早 这段时间省去。
官方的说明为:
In Oracle Database 10g, you can use RMAN to apply incremental backups to data file image copies. With this recovery method, you use RMAN to recover a copy of a data file; that is, you roll forward (recover) the image copy to the specified point in time by applying the incremental backups to the image copy. The image copy is updated with all changes up through the SCN at which the incremental backup was taken. RMAN uses the resulting updated data file in media recovery just as it would use a full image copy taken at that SCN, without the overhead of performing a full image copy of the database every day. The benefits of applying incremental backups to data file image copies are that you reduce the time required for media recovery (using archive logs) because you only need to apply archive logs since the last incremental backup. Also, you do not need to perform. a full image copy after incremental restoration
If the recovery process fails during the application of the incremental backup file, you simply restart the recovery process. RMAN automatically determines the required incremental backup files to apply, from before the image data file copy until the time at which you want to stop the recovery process. If there is more than one version of an image copy recorded in the RMAN catalog, RMAN automatically uses the latest version of the image copy. RMAN reports an error if it cannot merge an incremental with an image copy.
Note: The RECOVER COPY OF DATAFILE RMAN command is the same as the RECOVER DATAFILECOPY RMAN command.
下面试验证明:
1、COPY全备份
RMAN> BACKUP AS COPY DATABASE;
启动 backup 于 08-2月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00001 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF
输出文件名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_SYS
RXPJLB8_.DBF 标记 = TAG20090208T211145 recid = 9 时间戳 = 678316351
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:56
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00003 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF
输出文件名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_SYS
RXPLB0H_.DBF 标记 = TAG20090208T211145 recid = 10 时间戳 = 678316387
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:35
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00002 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF
输出文件名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_UND
_4RXPMFGN_.DBF 标记 = TAG20090208T211145 recid = 11 时间戳 = 678316402
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:07
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00004 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF
输出文件名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_USE
XPMNPG_.DBF 标记 = TAG20090208T211145 recid = 12 时间戳 = 678316405
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:03
通道 ORA_DISK_1: 启动数据文件副本
复制当前控制文件
输出文件名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\CONTROLFILE\O1_MF_
090208T211145_4RXPMR0Z_.CTL 标记 = TAG20090208T211145 recid = 13 时间戳 = 6
409
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:04
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 08-2月 -09
通道 ORA_DISK_1: 已完成段 1 于 08-2月 -09
段句柄=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\BACKUPSET\2009_02_08\O1_
SNF_TAG20090208T211145_4RXPMWB8_.BKP 标记=TAG20090208T211145 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 08-2月 -09
2、增量BACKUPSET备份
RMAN> run
2> {
3> allocate channel c1 type disk;
4> backup incremental level 1 database format='f:\%d_%T_%s1.bak';
5> sql' alter system switch logfile';
6> release channel c1 ;
7> }
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: sid=157 devtype=DISK
启动 backup 于 08-2月 -09
通道 c1: 启动增量级别 1 数据文件备份集
通道 c1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF
输入数据文件 fno=00002 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF
通道 c1: 正在启动段 1 于 08-2月 -09
通道 c1: 已完成段 1 于 08-2月 -09
段句柄=F:\PP_20090208_191.BAK 标记=TAG20090208T211441 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:45
通道 c1: 启动增量级别 1 数据文件备份集
通道 c1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 c1: 正在启动段 1 于 08-2月 -09
通道 c1: 已完成段 1 于 08-2月 -09
段句柄=F:\PP_20090208_201.BAK 标记=TAG20090208T211441 注释=NONE
通道 c1: 备份集已完成, 经过时间:00:00:06
完成 backup 于 08-2月 -09
sql 语句: alter system switch logfile
释放的通道: c1
3、合并过程(重点)
RMAN> recover copy of database;
启动 recover 于 08-2月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 指定要恢复的数据文件副本
恢复数据文件副本 fno=00001 名称=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_SYSTEM_4RXPJLB8_.DBF
恢复数据文件副本 fno=00002 名称=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_UNDOTBS1_4RXPMFGN_.DBF
恢复数据文件副本 fno=00003 名称=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_SYSAUX_4RXPLB0H_.DBF
恢复数据文件副本 fno=00004 名称=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_USERS_4RXPMNPG_.DBF
通道 ORA_DISK_1: 正在读取备份段 F:\PP_20090208_191.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = F:\PP_20090208_191.BAK 标记 = TAG20090208T211441
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:07
完成 recover 于 08-2月 -09
4、使用备份文件,重置文件
RMAN> restore database;
启动 restore 于 08-2月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在恢复数据文件00001
输入数据文件副本 recid=17 stamp=678316568 文件名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_SYSTEM_4RXPJLB8_.DBF
数据文件 00001 的恢复目标: D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF
通道 ORA_DISK_1: 已复制数据文件 00001 的数据文件副本
输出文件名=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF recid=18 stamp=678316
通道 ORA_DISK_1: 正在恢复数据文件00002
输入数据文件副本 recid=15 stamp=678316566 文件名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_UNDOTBS1_4RXPMFGN_.DBF
数据文件 00002 的恢复目标: D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF
通道 ORA_DISK_1: 已复制数据文件 00002 的数据文件副本
输出文件名=D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF recid=19 stamp=67831
2
通道 ORA_DISK_1: 正在恢复数据文件00003
输入数据文件副本 recid=16 stamp=678316567 文件名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_SYSAUX_4RXPLB0H_.DBF
数据文件 00003 的恢复目标: D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF
通道 ORA_DISK_1: 已复制数据文件 00003 的数据文件副本
输出文件名=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF recid=20 stamp=678316
通道 ORA_DISK_1: 正在恢复数据文件00004
输入数据文件副本 recid=14 stamp=678316566 文件名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_USERS_4RXPMNPG_.DBF
数据文件 00004 的恢复目标: D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF
通道 ORA_DISK_1: 已复制数据文件 00004 的数据文件副本
输出文件名=D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF recid=21 stamp=6783169
完成 restore 于 08-2月 -09
5、恢复
RMAN> recover database;
启动 recover 于 08-2月 -09
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 recover 于 08-2月 -09
可以看出恢复过程并没有使用到我们的增量备份。