本文固定链接:https://www.askmac.cn/archives/oracle-11g-ocm-rman.html
3.1目标
在完成这个课程之后,你能够做下列事情:
- 创建镜像文件备份
- 创建一个全备份
- 创建一个数据库全备份
- 开启快速增量备份
- 创建多个备份集
- 备份一个备份集
- 创建一个长期的归档备份
- 创建一个多节的备份
- 创建一个压缩的备份
- 创建一个加密的备份
- 备份的维护和报告
3.2 创建备份集
RMAN> BACKUP AS BACKUPSET FORMAT ‘/BACKUP/df_%d_%s_%p.bus’ TABLESPACE hr_data;
RMAN 可以存储备份以RMAN特有的格式称作备份集。一个备份集是那些被称作备份片的文件的集合,每个备份片可能包含一个或多个数据文件的备份。
注意:FORMAT参数为每个备份片产生的文件名称指定了格式。这个FORMAT也可以在ALLOCATE CHANNEL和CONFIGURE中被指定。
3.3创建备份镜像
RMAN> BACKUP AS COPY DATAFILE ‘/ORADATA/users_01_db01.dbf’;
RMAN> BACKUP AS COPY ARCHIVELOG LIKE ‘/arch%’;
一个镜像备份是数据文件、归档日志或控制文件的克隆。一个镜像备份可以使用BACKUP AS COPY命令或者操作系统命令创建。当你使用RMAN BACKUP AS COPY命令创建一个镜像文件时,服务会话会验证文件中的块并且在控制文件中记录拷贝信息。
一个镜像拷贝可以有以下特性:
- 一个镜像拷贝只能写入到磁盘。当存在大文件的时候,拷贝可能会化很长时间,但是恢复时间也相应的减少,因为可以在磁盘上进行复制。
- 如果文件存放在磁盘,你可以在RMAN中使用立即使用switch命令,就等同于alter database RENAME FILE sql 命令。
- 在镜像备份中,所有的块都被拷贝,无论里面是否包含数据,oracle数据库进程复制文件和执行另外的操作,例如在控制文件中记录拷贝和检查当前块的信息。为了加快拷贝速度,你可以使用NOCHECKSUM参数。RMAN 默认会给每个备份块计算校验和,并将其一起备份。当进行备份恢复时,会校验校验和。更多关于BACKUP命令中使用NOCHECKSUM选项的信息,可以参考Oracle Database Backup and Recovery Reference。
- 一个镜像备份可以是全库或者一个增量级别为0的备份,因为其总是包含所有块。如果这个镜像拷贝被增量备份集联合使用,你需要指定级别0的选项。
在图示中,创建镜像拷贝如下:
- /ORADATA/users01_db01.dbf 数据文件的备份
- 归档文件的备份
3.4 创建一个整库备份
一个整库备份可以以备份集或者镜像拷贝的形式,包含所有的数据文件和控制文件。参数文件或者归档日志文件是随意的。使用RMAN进行全库的镜像拷贝需要挂载或打开数据库,运行RMAN,执行图示中的BAKUP命令。在进行归档备份的时候,你可以选择性地使用DELETE INPUT选项。这个可以使RMAN在备份完它们后,将归档文件删除。在没使用闪回恢复区时,这个选项对于你管理空间,删除文件来减轻空间压力是很有效的。在这种情况下,图示的命令可以像这样:
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
你应该执行CONFIGURE命令来生成备份:
- CONFIGURE DEFAULT DEVICE TYPE TO disk;
- CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY;
- CONFIGURE CONTROLFILE AUTOBACKUP ON;
你也可以使用下列命令,为数据库中所有的数据文件和控制文件创建一个备份(可以是备份集或镜像拷贝):
RMAN> BACKUP COPY OF DATABASE;
默认情况下,RMAN在执行BACKUP命令时是串行的。但是你可以使用下列方式为拷贝设置并行:
- 使用CONFIGURE DEVICE TYPE DISK PARALLELISM n命令,n代表并行度
- 分配复合通道
- 指定一个BACKUP AS COPY 命令和清理多个文件。
3.5用压缩未使用块来减少备份使用空间
下列块可能在备份时候被跳过:
- 未分配的块:这些是在数据文件高水位之上的块。
- 未使用的块:这些是被分配的块,但是形成为段中一部分的块。
当发生确定类型的备份时,RMAN能够跳出这些块。没有被分配的块可能被跳过,它们那些尚未被分配,在高水位之上的块。同样地,在下面情况满足的情况下,一些分配的块但是没有成为段(没被使用的块),也可能被跳过:
- 没有指定一个确定恢复的时间点。
- 数据文件存放在本地管理的表空间中。
- 数据文件是在一个以备份集形式或0级的增量的形式中备份。这些备份类型在下列图示中列出。
- 备份是存放到磁盘,或者是Oracle 安全备份作为媒体管理器。
3.6 RMAN备份类型
- 一个全备份包含所有使用的块
- 一个0级的增量备份等价于一个全部备份使用level 0的标记。
- 一个累积等级是1的增量备份只包含那些在上一次等级0增量备份到现在,改变过的块。
- 一个差量等级是1的增量备份只包含那些上一次增量备份到现在,改变过的块。
全备份
一个全备份于一个整库备份时不同的。一个所有数据文件的备份,是一个包含文件中所有使用数据块的备份。RMAN会把所有的数据块拷贝到备份集或者镜像拷贝中,跳过那些从未被使用的数据块。对于全部的镜像拷贝,所有的文件是精确的复制。一个全备份不能成功增量备份策略中的一部分,即它不成为随后增量备份的前置备份。
增量备份
一个增量备份可以是等级0的备份,0级备份包含那些在数据文件中,没使用块之外的所有的数据块。也可以是等级1的备份,只包含之前最早的一次备份到现在备份发生变化的数据块。一个0级的增量备份在物理程度上和一个全备份是一样的。唯一的区别是0级的增量备份可以用于后续增量等级为1的备份,而一个全备份不能用于等级1的备份。
在BACKUP命令中指定INCREMENTAL关键字来指定一个增量备份。你可以指定INCREMENTAL LEVEL为0或1。
RMAN可以创建多级增量备份,如下:
差异:这个是默认的增量备份类型,只备份那些从上一次1或者0级的增量备份,到现在发生变化的数据块。
累积:备份最近一次0级备份以来,所有发生变化的数据块。
例子
使用下列命令,完成一个0级的增量备份:
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
使用下列命令,完成一个差异增量备份:
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
使用下列命令,完成一个累计增量备份:
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
如果没有指定full或INCREMENTAL,RMAN会默认进行一个全备份。在使用备份集备份数据文件时,即使是全备份,那些从来都没写入块会被跳过,完成未使用块的压缩。
一个全备份对后续增量备份来说没有用处,它不会考虑任何地增量备份策略,尽管一个全镜像拷贝,可以使用RECOVER命令,来使用增量备份来进行一个增量的更新。这个在课程”“Using RMAN to Perform Recovery”中涵盖。
注意:可以在NOARCHIVELOG模式下对数据库进行任何形式的备份(全部或增量)–如果,必须,这个数据库是不能打开的。还要注意只能恢复到上一次的备份。要恢复到最后提交的事务,数据库必须处于归档模式。
3.7 快速增量备份
实现块变化跟踪:
- 保留从上一次备份以来块发生的变化。
- 在日志生成的时候,将这些记录些入到文件。
- 在备份的时候 ,会自动去应用,这样使得备份更快。
增量备份的目的,就是只备份那些,从上一次最早备份以来发生变化的数据块。你可以使用RMAN对数据文件,表空间,或者整个数据库进行增量的备份。当进行一个增量备份,RMAN会扫描数据文件中每个块,找出在上一次备份后发生了变化的数据块。因为只备份那些改变过的块,这样备份就会很小。这样在恢复的时候就会更快,因为只有很少的一部分块需要被修复。
在启用块跟踪之后,执行增量备份会更快。那些每个块的变化会被跟踪,然后写入到一个物理文件中。当执行增量备份时,RMAN可以查看这些记录块变化的跟踪文件,备份的时候只应用这些块,避免了去扫描所有的块,找出从上次备份以来发生变化的块的步骤。这样就使得增量备份更快了。
维护这个跟踪文件是全自动的,不需要人工的干预。这个记录块变化的跟踪文件的大小正比于于:
- 数据库的大小,字节为单位
- RAC环境中启用的线程数
- 使用跟踪文件记录过去备份的数目
块变化跟踪文件最小的值是10MB,任何新的空间都是以10MB为单位来分配。oracle 数据库默认不记录块改变的信息。
3.8:开启快速增量备份
ALTER DATABASE
{ENABLE|DISABLE} BLOCK CHANGE TRACKING
[USING FILE ‘…’]
你可以在数据库控制首页上开启块变化跟踪。导航栏性能>备份设置>策略。如果DB_CREATE_FILE_DEST在初始化参数中设置了,那么不用再设置跟踪文件的路径,因为OMF会自动使用DB_CREATE_FILE_DEST的路径。当然,你也可以指定跟踪文件的名称,和任意的一个自定义的路径。
你也可以是用ALTER DATABASE 命令来开启或禁用这个特性。如果跟踪文件和数据文件存放在一个区域,当你禁用块跟踪时,这个文件会自动被删除。你可以使用alter database name 为这个跟踪文件改名。在你为跟踪文件改名的时候,数据库必须处于mout状态。ALTER DATABASE RENAME FILE命令会在控制文件中更新,使之关联到新的路径。你可以使用下列语法来改变跟踪文件的路径:
ALTER DATABASE RENAME FILE ‘…’ TO ‘…’;
注意:RMAN不能管理备份恢复中的跟踪文件,出于这个原因,你不要将这个文件放到闪回恢复区。
3.9 块变化跟踪的监控
SELECT filename, status, bytes
FROM v$block_change_tracking;
SELECT file#, avg(datafile_blocks),2avg(blocks_read), avg(blocks_read/datafile_blocks)* 100 AS PCT_READ_FOR_BACKUP,avg(blocks)
FROM v$backup_datafile
WHERE used_change_tracking = ‘YES’ AND incremental_level > 0
GROUP BY file#;
V$BLOCK_CHANGE_TRACKING视图显示了跟踪文件的存放地,块跟踪的状态(开启或禁用),文件的大小(字节为单位)。
在V$BACKUP_DATAFILE中有效的显示了跟踪文件在增量备份引起的最小的I/O(CT_READ_FOR_BACKUP字段)。一个高的值,说明RMAN在进行增量备份时会读取更多的块。你可以减少2次增量备份的时间来降低这个比例。
一个简单查询$BACKUP_DATAFILE的输出如下:
FILE# BLOCKS_IN_FILE BLOCKS_READ PCT_READ_FOR_BACKUP BLOCKS_BACKED_UP
—– ————– ———– ——————- —————-
1 56320 4480 7 462
2 3840 2688 70 2408
3 49920 16768 33 4457
4 640 64 10 1
5 19200 256 1 91
3.10 创建多路备份集
为了创建多路备份集,使用:
- CONFIGURE … BACKUP COPIES
- BACKUP…COPIES
RMAN可以在一个备份中同时生产4个副本,每一个都是另一个的精确复制。一个备份集的副本是在备份集中每个备份片的复制,每一个复制都用唯一的复制号(例如,0tcm8u2s_1_1 和 0tcm8u2s_1_2)。
在大多数情况,最简单的创建多个备份集,是使用BACKUP…COPIES或CONFIGURE … BACKUP COPIES来指定多个备份集。在磁盘通道,FORMAT选项中指定多个值来直接进行到多个物理磁盘上的多个拷贝。在SBT 通道,如果你使用的媒体管理器支持2个版本的SBT API,那么媒体管理器会自动的将每个副本放入不同的的介质(例如,不同的磁带)。
注意:系统上的SBT API是被MML开发商所定义的,他们使得MML可以和RMAN进行沟通。
注意,不能在闪回区中进行多个备份集,而且只能用于备份集,不能用于镜像拷贝。如果你使用BACKUP… COPIES 进行 镜像拷贝,你会收到一个错误。CONFIGURE…BACKUP COPIES的配置会被镜像拷贝忽略。
多路备份一般被磁带备份使用。
3.11 使用CONFIGURE BACKUP COPIES创建多路备份
使用CONFIGURE … BACKUP COPIES命令配置,在你指定设备类型上创建指定数目的完全相同的备份集。这个配置使用与于所有的备份,除了控制文件自动备份(因为自动地控制文件备份总是生成一个单独的副本)和使用BACKUP BACKUPSET命令的备份集的备份。
注意:你必须有自动通道的配置
安照下列步骤使用CONFIGURE BACKUP COPIES命令创建多路备份集:
1.为数据文件和归档文件,在所希望的设备类型上指定一个拷贝的数目。
2.执行BACKUP命令。
3.执行LIST BACKUP 命令来验证你的备份。
注意:之前的备份命令不会受COPIES配置的参数的影响,它只会产生在磁盘上产生一份单独的备份。
3.12 使用BACKUP COPIES创建多路备份集
RMAN> BACKUP AS BACKUPSET DEVICE TYPE sbt COPIES 2 INCREMENTAL LEVEL 0 DATABASE;
你可以使用BACKUP 命令中的COPIES选项覆盖COPIES或其他的多路参数,来创建多路备份集。
执行下列步骤,使用BACKUP COPIES创建多路备份:
1.在BACKUP 命令中使用COPIES指定需要生成相同副本的数目。
2.执行LSIT BACKUP 命令来验证你的备份。
3.13 使用备份集创建备份
RMAN> BACKUP DEVICE TYPE DISK AS BACKUPSET DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP DEVICE TYPE sbt BACKUPSET ALL;
使用RMAN BACKUP BACKUPSET为之前创建的备份集进行备份。只有那些在磁盘设备上生成的备份集,可以用RMAN备份。这个备份集可以使用任何合适的设备类型来备份。
这个BACKUP BACKUPSET 命令使用默认的磁盘通道,来进行磁盘间的备份集拷贝。从磁盘到磁带的备份,你必须配置或手动指定一个非磁盘类型的通道。
3.14 备份只读表空间
只读表空间备份s可以考虑:
- 在这个只读表空间没备份满足保留策略的时候,备份优化会让RMAN去备份这个只读表空间。
- 如果你改变这个表空间变为可读写的,请立即备份它。
- 你可以在RMAN BACKUP 中使用SKIP READONLY 选项来跳过只读表空间。
因为只读表空间不会被写入,所以没有必要对它们像可读写的表空间那样,不断地进行备份。你可以在BACKUP命令中,使用SKIP READONLY选项,来使RMAN知道,哪些只读表空间不用备份。
3.15 备份归档:概念
如果你需要对特定的一段时间维护一个在线的备份,RMAN通常认为,你可能想完成一个,从当前备份到之前任意时间点的恢复。为了满足这个场景,RMAN在这个时期内会保留归档日志文件。但是,你可能有一个简单的需求,保存特定的备份(必须保证能够一致性恢复)在指定的一段时间内–例如:2年内。你没有恢复到这个时间点之后的需求,但是你希望以后能够使用备份恢复到一个确切地时间点。你也希望维护保留策略,保持备份区不那么混乱,因此恢复到2年之前是不可接受的。这是一个在商业会议和法律领域中,对数据保留的一个常见需求。
归档备份解决了这个问题。如果你标记一个备份时归档备份,这个属性会覆盖掉以这个备份为目标的,其他任何保留策略。你可以保留这个归档备份,直到超过了你指定的时间之后,才会过期,或者永远不过期。如果你想指定更早的时间,你需要使用备份恢复目录。使用KEEP子句创建一个归档备份,相当于此时间点上数据库的快照。那些在修复备份保持一致性时所需要的日志文件,会被保留下来。在执行备份后,运行RESTORE POINT子句指定了多少日志文件需要保留(保留足够的日志来修复备份到RESTORE POINT指定的时间点 )。
一个归档备份也可以包含,备份中需要修复时所需的所有文件。RMAN包含数据文件,归档日志文件(只是那些在线备份,恢复时需要的),和一些相关的自动备份的文件。所有的文件必须存放在相同的媒体中(或磁带组)。
你也可以创建一个指定的修复点,这个修复点和归档备份有相同的SCN。本质上给了创建备份时的时间点一个更有意义的名称。
在归档备份创建之后,它会在指定的时间内保留。即使你有一个很短的保留时间窗口,并且运行DELETE OBSOLETE命令,归档备份仍然会保留。
这个备份时数据库在某个时间点的一个快照,可以用来在另外的主机上,修复一个数据库来作为测试机。
注意:归档备份不能写入到闪回恢复区。如果你有一个归档备份,你必须使用FORMAT 来指定一个另外的路径。
3.16 使用EM创建归档备份
使用EM创建一个归档备份,执行下列步骤:
1.选择可用性>备份计划>自定义备份计划。
2.安装自动备份计划向导提示操作,直到进入设置页面。
3.点击覆盖当前设置,然后到政策栏。在覆盖保留策略的选项中,你可以选项保存备份一个指定的天数。一个修复时间点就会基于备份作业名生成。你如果想为备份文件指定不同的路径,可以选择设备栏进行操作。
3.17 使用RMAN创建归档备份
当数据库在open模式,指定KEEP子句可以让数据文件和归档日志备份都被保留
KEEP {FOREVER | UNTIL TIME [=] ‘ date_string ‘} [RESTORE POINT rsname]
使用下列RMAN语法来创建 归档备份:
BACKUP … KEEP {FOREVER|UNTIL TIME ‘SYSDATE + <n>’} RESTORE POINT
<restore_point_name>
until time 子句可以让你在进行归档备份的时候,不再受保留策略的影响。你可以指定特殊的选项FOREVER,这就意味着这个备份是一个归档备份,直到你采用其他的动作改变它。
可选的,使用RESTORE POINT子句来为这个相关备份指定修复点的名称。
3.18 管理数据库的归档备份
1.把数据库备份存档:
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG rman/rman@catdb
RMAN> CHANGE BACKUP TAG ‘consistent_db_bkup’ KEEP FOREVER;
2.改变数据库副本的状态:
RMAN> CHANGE COPY OF DATABASE CONTROLFILE NOKEEP;
这个change命令可以关联配置的保留策略,改变备份或拷贝与的豁免状态。例如,你可以指定CHANGE … NOKEEP可以使备份从保留策略豁免当前属性,得到OBSOLETE状态。
第一个离职是改变一致性备份成为一个归档备份,作为离线存储。因为数据库是一致性的,因此,不需要恢复,你不需要在备份中保存归档日志。
第二个例子是指定任何长时间的,数据文件和控制文件的镜像拷贝,会丢失他们豁免属性,并且能够从当前的保留策略中得到过期状态。这个声明从本质上。从备份文件上移除了归档属性。如果没有特别指定标记,例如这个例子,这个change适用于所有指定类型的备份。
注意:RESTORE POINT选项在CHANGE中无效,因为没办法去创建一个已经过去的修复点(在备份完成后)
3.19 多节备份:概述
oracle 数据文件可以达到128TB。通常情况下,RMAN是按一个完整的文件作为最小的单元来备份。这样,对于那些大文件来说是不实际的。RMAN可以将大文件分解成独立的部分,来进行备份和恢复。你可以创建多节备份,能够将文件生成的备份集分解成独立的文件。这个只适用于备份集,不适用于镜像拷贝。
每个文件部分是文件中连续的,一系列的块。每个文件部分可以单独地处理,可以串行或并行。把一个文件分割成独立的部分,再进行备份可以提升备份的性能,同时也允许将大文件的备份重新启动。
一个多节的备份任务产生了一个多片的备份集。每个片包含一个文件部分。所有在一个分级备份中的文件部分,出了最后一个部分可能不同之外,所有的部分都是相同的大小。每个文件最多能有256个部分。
注意:在备份大文件的时候,你不应该在一个很少磁盘数量的备份中,使用一个大的并行度,这样反而达不到并行的目的;多个同时访问相同设备将产生竞争。这个功能是RMAN内置的。在oracle 11g中不需要在普通安装之外再进行安装。COMPATIBLE参数至少要设置为11.0,因为更早的版本不支持多节备份。
3.20 使用RMAN 创建多节备份:
BACKUP <options> SECTION SIZE <integer> [K | M | G]
VALIDATE DATAFILE <options> SECTION SIZE <integer> [K | M | G]
例子:
RMAN> BACKUP DATAFILE 5 SECTION SIZE = 25M TAG ‘section25mb’;
backing up blocks 1 through 3200
piece handle=/u01/…/o1_mf_nnndf_SECTION25MB_382dryt4_.bkp
tag=SECTION25MB comment=NONE
…
backing up blocks 9601 through 12800
piece handle=/u01/…/o1_mf_nnndf_SECTION25MB_382dsto8_.bkp
tag=SECTION25MB comment=NONE
这个BACKUP 和 VALIDATE DATAFILE 命令支持下列选项:
SECTION SIZE <integer> [K | M | G]
用这个来指定你计划为每个备份分配的大小。这个选项是备份命令和备份分级的规范,这样你可以在相同的备份任务中,给不用的文件应用不同的部分大小。4
在图示的例子中,备份文件号是5的数据文件,分节大小被指定为25MB。这个数据文件有100MB,所以4个部分被创建。注意,那些块范围,相邻块信息也被写入分节文件中。
查看关于多节备份的元数据
- V$BACKUP_SET 和 RC_BACKUP_SET视图中的MULTI_SECTION字段表明了这个备份是否是多节备份。
- V$BACKUP_DATAFILE 和RC_BACKUP_DATAFILE视图中的SECTION_SIZE字段指定了在一个分节备份中,每个部分的块的数量。0表示是整个文件的备份。
3.21 压缩备份
RMAN 可以在生成备份集的时候采用2进制压缩。
- 除了未使用块压缩之外,使用的块也能够进行压缩。
- 默认情况,RMAN使用BZIP2的压缩算法。
- BZIP2于ZLIB在下列2点有不同:
–其有更好的压缩比率。
-其比较慢。
- 对于DBA来说,在使用一个压缩备份修复时,不需要额外的操作步骤。
为使用块的压缩是减少那些块写入到备份,二进制压缩可以使用一些算法在写入数据的时候压缩。最有效的压缩算法是ZLIB和BZIP2
ZIP 使用更小的CPU.BZIP2则提供了最好的压缩比。BZIP2比ZIB更消耗CPU,但是产生的备份会更小。在使用ZLIB时,初始化参数COMPATIBLE应该设置为11.0.0 或者更高,其需要oracle 建议的压缩选项。
你不需要在修复的时候额外的进行操作。注意,压缩和解压缩都需要CPU资源。所以创建一个压缩备份和使用备份恢复,都可能会话很长的时间,并且还暂用很多系统资源。
在选择压缩算法的时候,综合考虑你的磁盘空间和动态的系统参数例如:cpu和内存。
3.22 加密备份
你可以使用下列3种方式来加密备份:
- 透明加密:这个方式是使用钱包,是默认的模式。
- 密码加密:这个方式加密依赖于密码.不需要配置一个钱包。在使用这个备份进行修复的时候你必须知道密码。
- 双模式加密:透明加密和密码加密都使用.在修复中,两种模式的加密都可以被使用。这个模式在你经常进行本地修复,也有时会备份到其他地方的时候,比较有用。
修改备份设置使用:SET ENCRYPTION。下面是使用密码加密的例子;
RMAN> SET ENCRYPTION IDENTIFIED BY mypassword;
RMAN> BACKUP DATAFILE 5;
…
RMAN> SET DECRYPTION IDENTIFIED BY mypassword;
RMAN 使用透明加密,将加密数据写入到数备份集,然后在修复操作的时候解密。为了再磁盘上创建一个加密的备份机,数据库需要使用高级安全选件。为了在磁盘上直接创建加密文件,RMAN必须使用 oracle安全备份 SBT 接口,但是不需要高级安全选件。
如果你想使用透明加密,钱包必须被创建,并且配置数据库使用钱包。这个和TDE使用相同的钱包。钱包必须在使用加密或TDE之前创建。
增加一个完整的配置到SQLNET.ORA 文件中:
ENCRYPTION_WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY =
/oracle/dbsid/admin/pdcs11/wallet)))
创建一个简单的密码保护钱包,如下列命令:
ALTER SYSTEM SET [ENCRYPTION] KEY IDENTIFIED BY “welcome1″;
注意:使用oracle安全备份(OSB)进行加密可以配置所有备份被OSB加密,无论客户端有什么样类型的加密请求。更多关于OSB 加密的信息,可以参考:Secure Backup Administrator’s Guide
3.23 备份恢复文件
- 仅备份那些在闪回恢复区的文件:
RMAN> BACKUP RECOVERY AREA
- 备份所有的恢复文件
RMAN> BACKUP RECOVERY FILES
这里有两种备份备份恢复数据的方式。BACKUP RECOVERY AREA 命令 备份所有能够被发现的,当前或者之前存在于闪回恢复区的文件。BACKUP RECOVERY FILES 命令备份所有的恢复文件,即使它们不存在闪回恢复区中。你在使用这个之后,为数据文件,例如:控制文件或者那些不在闪回恢复区中的数据库文件,增加了额外的保护,防止丢失。
默认情况下,备份优化对这二个命令时启用的,即使你使用CONFIGURE命令禁用了备份优化。也就是说在使用这个命令的时候,只有那些没有被备份的恢复文件会进行备份。你可以使用force选项来强制备份所有文件。
你不能为这个命令指定DEVICE TYPE DISK设备类型。
注意:RMAN只备份数据库文件:数据库文件,日志文件,控制文件,参数文件,归档文件和这些文件的备份。放置其他的操作系统文件到闪回恢复区,不会被恢复区备份所包含。
3.24 使用媒体管理器:
在备份数据库的时候使用磁带存储,RMAN需要 oracle安全备份或一个媒体管理器。
媒体管理器是一个实用的程序,在备份,修复,恢复的时候,用于加载,标签,卸载一系列的媒体设备(例如磁带驱动)。oracle 服务从调用MML软件程序,从那些被媒体管理器控制的获取到媒体来进行备份和修复数据。
注意,oracle数据库服务,不需要在访问磁盘的时候连接MML软件。
oracle 备份解决程序(BSP)提供了一系列媒体管理的产品,并且都复合oracle的MML规范。软件兼容MML可以使得oracle 数据库会话备份数据到一个媒体管理,和从媒体管理器中请求恢复备份。检查你的媒体供应商确定是不是oracleBSP中的一员.
在你可以用RMAN调用媒体管理器之前,你必须安装媒体管理软件和确保RMAN可以和其通信。这些程序的指令,可以参考媒体管理器的软件厂商的文件。
根据你安装的产品,执行以下基础步骤:
1.在目标机器或生产网络上,安装和配置媒体管理软件。在这个阶段不需要RMAN集成。
2.确保你可以不使用RMAN在目标数据库主机上创建操作系统的文件。这个步骤使得以后发现解决问题更简单了。参考你的媒体管理器文档,学习如何使用媒体管理器来进行文件备份。
3.为了oracle数据库集成,获取和安装第三方的媒体管理模块。这个模块必须包含oracle 数据库服务访问这个媒体管理器的库文件。
使用媒体管理器完成备份和修复操作
下面的恢复管理脚本执行了一个数据文件的备份,使用媒体管理中的磁带设备:
run {
# Allocating a channel of type ‘sbt’ for serial device
ALLOCATE CHANNEL ch1 DEVICE TYPE sbt;
BACKUP DATAFILE 3;
}
当恢复管理器执行这个命令,它发送一个备份请求给oracle数据库会话来执行备份。这个oracle 数据库会话识别一个媒体管理的设备作为通道,并请求媒体管理器去加载一个磁带来进行写出。
在每个磁带上,都有标签,保存的跟踪记录和文件的命令。媒体管理器还处理修复操作。当修复一个文件的时候,下面的步骤发生 :
1、oracle 数据库服务器请求修复一个特定的文件。
2、媒体管理器识别磁带保存的文件,并从磁带上读取这些文件。
3、媒体管理器将消息传回给数据库会话。
4、数据库服务将文件写到磁盘。
3.25 执行代理拷贝
在RMAN BACKUP命令中使用PROXY选项,来请求一个MML执行文件的拷贝。
一些媒体管理产品可以完全管理所有数据,在oracle 数据文件和备份设备之间移动。一些产品,在存储和媒体子系统之间使用高速连接,这样可以减少主数据库服务器的备份压力。在LAN中拷贝的时候通过SAN时很有益的。RMAN在这一点上是在图片之外的,仅仅通过LAN 从MML通信一些状态。
3.26 创建一个ORACLE 建议的备份
在你设置一个oracle建议备份策略的时候,EM使得这更加简单了。这个策略可以保护你的数据,能够恢复到24小时内的任意时间点,还可以延长到48小时,具体的时间取决于你最后一次创建备份的时间。oracle建议备份策略使用增量备份和增量更新备份的特性。当从归档日志中应用数据库变化的时候,这使得恢复更加快速。
建立一个oracle建议策略,从导航栏到维护页面。在备份/恢复的区域,选择备份计划。这个备份策略选择可以从oracle建议备份中选择,也可以是自定备份策略。oracle建议备份在第一次备份的时候是一个全库的复制。因为它是一个整库备份,你可以考虑让其在一段时间是活动的。在这之后,每天在磁盘上会进行一个增量备份。可选地,创建每周的磁带备份,备份所有恢复相关的文件。
因为这些备份时在磁盘上保留的,你可以执行一个全库的恢复或者在24时内的任意时刻,进行时间点的恢复,这是最低限度。这个恢复时间可能可以延长到48小时。这时因为在一个指定的天理创建一个备份之前,在创建时间 N-1的那个时间点的备份仍然存在。(意思就是只会保留2个备份。1号,2号备份,当3号备份完毕后,就会干掉1号的备份,那么在3号备份之前,是可以恢复到48小时之前的,应为此时1号的备份还没被干掉,这个是默认的策略)
3.27 管理备份:报告
使用下列RMAN命令来获取你备份的信息:
- LIST:显示在资源库中备份集,代理拷贝,镜像拷贝的信息。
- report:为资源库生成一个详细的分析。
- report need backup: 列出那些需要备份的所有数据文件。
- report obsolete:识别那些安全备份保留策略不再需要的文件 。
使用RMAN list 命令来显示在资源库中备份集,代理拷贝,镜像拷贝的信息 。使用这个命令列出:
- 那些在RMAN 资料库中没有AVALIABLE状态的备份和副本
- 那些可以被修复操作使用的,可用的备份和副本中的数据文件
- 包含特定数据文件列表or特定表空间的备份机和副本
- 那些被标签,完成时间,可恢复性,或设备限制的备份集和副本
- 特定数据库的化身,或者这个资源库知道的所有数据库
- 在恢复目录中存储的脚本
使用REPORT OBSOLETE 命令,你可以识别那些安全备份保留策略不再需要的文件。默认地,REPORT OBSOLETE命令列出了那些,不在当前配置的保留策略中的过期文件。你可以在 REPORT OBSOLETE中使用不同的 REDUNDANCY 或RECOVERY WINDOW参数来指定不同地保留策略,这样就可以对于不同地保留策略,生成哪些过期文件的报告。
你可以参考Oracle Database Backup and Recovery Reference来获取更详细的语法详细
3.28 管理备份:动态性能视图
在目标数据库中查询下来动态视图,来获取关于备份的信息:
- V$BACKUP_SET: 创建备份集
- V$BACKUP_PIECE: 存在备份片
- V$DATAFILE_COPY:磁盘上的数据拷贝
- V$BACKUP_FILES:在创建备份时,所有创建的文件信息。
这里有很多视图提供了于备份相关的信息。最常用的那些在幻灯片中列出。
如果你使用备份恢复目录,你可以查询在恢复目录的数据库上查询相同的视图,这些视图的信息,和每个注册到恢复目录的目标数据库上的信息一样。这个等价的视图名称是一样的,只是v$换成了RC_。同样的,它们存放在恢复目录拥有者的方案下。例如:这些等价的视图RC_BACKUP_SET, RC_BACKUP_PIECE,RC_DATAFILE_COPY, 和 RC_BACKUP_FILES在恢复目录中,和幻灯片中的视图提供相同的信息。
为了查询RC_BACKUP_FILES视图,你必须在恢复目录数据库上先执行下列语句:
SQL> CALL DBMS_RCVMAN.SETDATABASE(null,null,null,<dbid>);
<dbid> 表示目标数据库的id
3.29 使用EM来查看备份的报告
你可以使用备份报告页面来显示那些数据库中的备份任务,这些备份任务的相关信息记录在数据库控制文件中。
在顶端的检索栏中,你可以结果中自定义显示的任务列表。这个结果列表基于每个备份任务,例如开始时间,话费时间,和备份任务的状态。你也可以使用结果列表中,备份名称字段上的链接,下钻到单独备份任务上,去查看其更详细的信息。
你可以在结果列表中点击任务状态,下钻到备份任务的总结工作的页面,你可以看到输出的日志文本。
点击备份名称的链接,你可以使用备份报告页面来显示这个备份的详细信息。这个页面上显示的信息来源于数据库控制文件中记录的信息。
这个备份页面在选择不同的类别中可以显示不同的结果信息,例如输入概括,汇总了关于备份的所有文件的信息;输出概括,汇总了备份集合镜像拷贝的信息;输入和输出选项显示了那些任务的详细信息,包括数据文件,控制文件,备份集,备份片和镜像拷贝 。
3.30 管理备份:交叉检查和删除
使用下列RMAN命令来管理你的备份:
- CROSSCHECK: 对于媒体(磁盘和瓷磁带),验证备在RMAN资源库中,备份集和副本的状态
- DELETE EXPIRED:移除那些在资源库中状态是无效的文件
- DELETE OBSOLETE:删除那些不在需要的备份
是用crosscheck 可以确保在恢复目录中或同步的控制文件中备份文件的数据,对应在磁盘或者媒体管理目录中的实际文件是存在的。crosscheck命令只会对那些记录在RMAN资源库中的文件进行操作。
CROSSCHECK 命令 通过DISK通道检查磁盘上的文件或者通过SBT通道查询媒体管理器,来校验那些被标记为AVAILABLE或EXPIRED的对象。CROSSCHECK命令会更新资源库记录,将那些找不到的文件都置为EXPIRED。它并不会删除那些无法找到的文件。
DELETE命令可以从list和crosscheck命令上删除任何文件。例如,你可以删除备份集,归档日志,数据文件副本。DELETE命令同时删除物理文件和在目录中的文件记录。DELETE OBSOLETE 命令删除那些不在使用的备份。它和带REDUNDANCY 和RECOVERY WINDOW选项的REPORT OBSOLETE 用法类似。
如果你没有使用RMAN来删除备份。你可以使用UNCATALOG命令来将这些文件从恢复目录中移除,或者使用CROSSCHECK和DELETE EXPIRED命令。
更详细的语法信息,可以参考Oracle Database Backup and Recovery Reference
3.31:总结
在这个课程,你应该学会如何:
- 创建镜像文件备份
- 创建一个整库备份
- 创建一个全库备份
- 启用快速增量备份
- 创建多路备份集
- 备份一个备份集
- 为长时间保留策略创建一个归档备份
- 创建一个多级备份
- 创建一个压缩备份
- 创建一个加密备份
- 生成备份报告和备份维护
Leave a Reply