Oracle 学习之RMAN(五)镜像copy

我们上一讲讲到了RMAN能提供全库备份、表空间备份、数据文件备份、归档日志备份、控制文件及参数文件的备份。RMAN备份出来的文件称之为备份集,RMAN在备份的过程中,只备份已经使用过的数据块。RMAN将多个数据文件打包到一起,生成一个备份集。数据文件与备份集文件不再是一一对应的关系。关于备份集的概念,我们下一讲再详细介绍。本将我们说说RMAN的另一种备份方式--镜像copy。

镜像copy是单个数据文件、控制文件、归档日志的克隆。备份出来的备份文件与数据库文件一一对应。下图描述了备份集与镜像copy之间的区别

镜像copy可以使用RMAN的backup as copy命令生成,也可以使用操作系统命令生成。

使用backup as copy命令备份时,Oracle服务器会话验证数据文件中的数据块,并且会将此次备份操作记录到控制文件中。我们知道,如果使用操作系统命令进行热备,首先要在数据库中执行begin backup命令,执行该命令后,数据文件的头部将被冷冻,在备份期间,为了保证数据块的有效性,一旦数据块被修改,那么日志文件将记录下该数据块的原始镜像。如果使用RMAN的backup as copy命令进行备份,则无需执行begin backup。 因为rman在备份的过程中会检查数据块的一致性,直到数据块一致了,才将其copy到备份文件中。

镜像copy有如下特征:

  • 镜像copy只能写到磁盘上,当备份大文件时,将花费很长时间。但是数据还原的时间将大大减少。因为数据文件已经在磁盘上,无需从其他介质中还原数据文件。
  • 镜像copy中包含数据文件中的所有的块,无论该块是否被使用。

执行镜像copy

  • 备份数据库
RMAN> backup as copy database;

Starting backup at 2015/07/08 11:53:55
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=39 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_system_bss7pnh2_.dbf tag=TAG20150708T115355 RECID=9 STAMP=884519670
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_sysaux_bss7qqqg_.dbf tag=TAG20150708T115355 RECID=10 STAMP=884519692
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_example_bss7rk3f_.dbf tag=TAG20150708T115355 RECID=11 STAMP=884519708
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_undotbs1_bss7s07q_.dbf tag=TAG20150708T115355 RECID=12 STAMP=884519715
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/u01/app/oracle/oradata/devdb/idx01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_idx_bss7s7gp_.dbf tag=TAG20150708T115355 RECID=13 STAMP=884519720
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_users_bss7s8mb_.dbf tag=TAG20150708T115355 RECID=14 STAMP=884519720
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 11:55:21

Starting Control File and SPFILE Autobackup at 2015/07/08 11:55:21
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884519721_bss7sbdk_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2015/07/08 11:55:22

备份了数据库中所有的数据文件(包括undo,其实undo也是数据文件)。但是backup database as copy时,并不会备份控制文件和spfile。最后一段备份控制文件与参数文件是因为我们配置了控制文件自动备份功能。

  • 备份表空间
RMAN> backup as copy tablespace EXAMPLE;

Starting backup at 2015/07/08 12:26:58
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_example_bss9nmnv_.dbf tag=TAG20150708T122659 RECID=15 STAMP=884521632
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
Finished backup at 2015/07/08 12:27:14

Starting Control File and SPFILE Autobackup at 2015/07/08 12:27:14
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884521634_bss9o37t_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2015/07/08 12:27:15
  • 备份数据文件
RMAN> backup as copy datafile ‘/u01/app/oracle/oradata/devdb/example01.dbf‘;

Starting backup at 2015/07/08 12:28:59
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_example_bss9rcv9_.dbf tag=TAG20150708T122859 RECID=16 STAMP=884521750
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
Finished backup at 2015/07/08 12:29:14

Starting Control File and SPFILE Autobackup at 2015/07/08 12:29:15
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884521755_bss9rv8v_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2015/07/08 12:29:16
  • 备份控制文件
RMAN> backup as copy current controlfile;

Starting backup at 2015/07/08 12:33:34
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/controlfile/o1_mf_TAG20150708T123334_bssb0yj4_.ctl tag=TAG20150708T123334 RECID=17 STAMP=884522014
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 12:33:35

Starting Control File and SPFILE Autobackup at 2015/07/08 12:33:35
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884522015_bssb0zrf_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2015/07/08 12:33:36
  • 备份归档日志文件
RMAN> backup as copy archivelog all;

Starting backup at 2015/07/08 12:34:54
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=16 RECID=7 STAMP=884486041
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_16_bssb3h9w_.arc RECID=15 STAMP=884522095
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=17 RECID=8 STAMP=884486144
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_17_bssb3jdy_.arc RECID=16 STAMP=884522096
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=18 RECID=9 STAMP=884486148
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_18_bssb3khz_.arc RECID=17 STAMP=884522097
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=19 RECID=10 STAMP=884486151
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_19_bssb3ll4_.arc RECID=18 STAMP=884522098
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=20 RECID=11 STAMP=884486169
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_20_bssb3mnx_.arc RECID=19 STAMP=884522099
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=21 RECID=12 STAMP=884486468
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_21_bssb3nqm_.arc RECID=20 STAMP=884522100
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=22 RECID=13 STAMP=884486525
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_22_bssb3otp_.arc RECID=21 STAMP=884522101
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=23 RECID=14 STAMP=884522094
output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_23_bssb3py8_.arc RECID=22 STAMP=884522103
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 12:35:03

Starting Control File and SPFILE Autobackup at 2015/07/08 12:35:04
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884522104_bssb3r69_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2015/07/08 12:35:05
时间: 2024-08-27 10:23:23

Oracle 学习之RMAN(五)镜像copy的相关文章

Oracle 学习之RMAN(十五)恢复实战--TSPITR

TSPITR是英文Tablespace Point In Time Recovery的缩写.也就是表空间定点时间恢复.TSPITR是一种相对细粒度的不完全恢复技术.我们通常见到的还原操作,都是将所有的表空间和数据还原到相同的一个时间点上.而TSPITR则是以表空间为粒度单元,单独将某个表空间内容还原到一个特定可恢复时间点上.举一个例子:一个Oracle数据库运行在归档模式下,在夜间零时保留一份完全备份.早上七点时候,某个特定表空间上数据表(单个表独占表空间)发生一个误操作,数据损坏.要求在不伤害

Oracle 学习之RMAN(十二)恢复实战--控制文件丢失

首先我们进行一次全库备份 RMAN> run {   backup database    format '/backup/full_%d_%T_%s'   plus archivelog    format '/backup/arch_%d_%T_%s'   delete all input;  }  Starting backup at 2015/07/09 09:35:03 current log archived using channel ORA_DISK_1 channel ORA_

Oracle 学习之RMAN(七)参数配置

配置RMAN备份环境 对于大多数备份操作而言,RMAN为持久化的参数配置提供了合理的默认值,使您能够执行基本的备份和恢复.但是如果你了解更多的配置,你可以更有效的使用RMAN实现基于RMAN的备份策略. 使用SHOW ALL命令查看RMAN的配置 RMAN> show all; RMAN configuration parameters for database with db_unique_name DEVDB are: CONFIGURE RETENTION POLICY TO REDUND

Oracle 学习之RMAN(一)

Recovery Manager(RMAN)是Oracle提供的一个实用工具,使用RMAN可以对Oracle数据库进行备份.还原.恢复等.RMAN还可以自动管理Oracle的备份策略.RMAN提供了命令行与图形界面两种访问方式.我们主要学习命令行方式操作RMAN. 进入RMAN非常简单,执行在OS环境下敲入rman命令即可. [[email protected] ~]# su - oracle 11gdg-> rman Recovery Manager: Release 11.2.0.3.0 -

Oracle 学习之RMAN(二)

我们已经知道如何进入rman,并连接到需要备份的数据库上.那么如何使用rman备份,以及rman能备份哪些东西呢? 备份数据库 RMAN> backup database; Starting backup at 2015/07/08 00:58:27 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in

Oracle 学习之RMAN(十一)恢复实战场景一

场景一.数据库机器崩溃,需要使用备份在其他机器上还原数据库. 首先假设我们做了一个全库的备份. RMAN> backup database include current controlfile plus archivelog delete all input; Starting backup at 2015/07/09 06:47:15 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting arch

Oracle 学习之RMAN(一)架构

Recovery Manager(RMAN)是Oracle提供的一个实用工具,使用RMAN可以对Oracle数据库进行备份.还原.恢复等.此程序无需单独安装,她作为Oracle数据库的一部分,一单你安装了Oracle数据库软件,那么RMAN即可使用.RMAN是一个Client/Server程序,她使用Oracle服务器会话进行备份与恢复.RMAN备份的元数据存储在备份目标数据库的控制文件中,或者是一个单独的称之为catalog的数据库中. 为什么要使用RMAN? 可以管理复杂的备份与恢复操作 最

Oracle 学习之RMAN(四)增量备份

RMAN不但能进行数据库.数据文件等全量备份,而且还能做增量备份.增量备份有两大优点: 减少数据库恢复的时间. 数据库恢复是利用归档日志,不断的应用归档日志,将数据库恢复到最新(或者指定状态).但是增量备份只备份被修改了的数据块,在执行恢复时,直接用备份出来的数据块去覆盖数据文件中被更改的数据块. 减少备份时间 增量备份只需备份被修改过的数据块,备份时间和备份存储空间都有相应的减少. 做增量备份的前提,是需要一个基准备份,所有的增量都是针对这个基准来说的.要不然,增量备份无从谈起. 增量备份使用

Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复

1. 我们先做一个全备 RMAN> backup database ; Starting backup at 2015/07/09 13:40:47 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=28 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in b