关闭状态的备份: 在数据库关闭期间执行,也称:冷备份、一致备份、脱机备份。 --只有数据库处于mount状态时才能执行RMAN一致备份 RMAN通过获取控制文件的读一致性快照并对其进行备份,已避免使用操作系统备份对控制文件的写操作
打开状态的备份:只能在数据库处于归档日志模式下才能进行。
全部备份:备份所有数据文件和控制文件。
局部备份:只备份全备的子集, --绝大多数情况下只能在归档模式下才能进行。
完整备份:备份所有使用的文件块
增量备份:只备份上次备份以来更改的块 可以是累积增量备份(包括自上一次完整备份以来更改的所有块)或差异增量备份(包括自上一次增量备份以来更改的所有块)
打开状态的备份只能在数据库处于归档日志模式下才能进行。如果非归档,则只能进行关闭状态的备份,并且(如果使用RMAN)数据库必须为加载模式,然后执行干净的关闭。非归档,只能做冷备份,即RMAN的COPY方式,热备份必须归档
RMAN可备份的文件类型:
数据文件
控制文件
归档日志
spfile --非默认值
备份集片
;
RMAN不能备份的文件类型:
临时文件
联机重做日志文件 redo.log
口令文件
静态pfile
oracle net配置文件
RMAN可以生成三类备份:
备份集(backup set)是专用格式,它可包含多个文件,但不包括当前不是备份段一部分的数据文件的块。
压缩备份集(compressed backup set)与备份集的内容相同,但RMAN在写出到备份集时将应用压缩算法。
映像副本(image copy) 是与输入文件相同的的备份文件。映像副本可与源文件立即交换,而在从备份集提取文件时,需要执行RMAN还原操作。
备份集(不管压缩与否)可以是完整或增量的。而映像副本只能是完整的。备份集是饱饭一个活多个输入文件的逻辑结构;从物理上讲,它由一个或多个片组成。是备份操作的输出文件。
RMAN备份和还原由 被称为通道(channel)的服务器进程执行。通道可能是磁盘类型(disk 可访问磁盘) 或SBT_TAPE 类型(可访问磁带)
RMAN存储库(repository) 是有关备份的元数据:构成备份集的片的名称和位置、包含在其中的文件以及映像副本的名称和位置。存储库是自动化还原和恢复操作的关键:RMAN通过读取它计算出还原和恢复损坏数据文件的有效方式。
存储库存储在目标库的控制文件中,也可以存储在目录数据库中创建的一组表中。
RMAN有三种使用方式: 交互界面(用于执行即席任务)、脚本接口(通过操作系统的调度程序运行作业)和Enterprise Manager界面
只有数据库处于mount模式下时才能执行rman一致备份
脱机-全部-完整备份
run{
shutdown immediate;
startup mount;
allocate channel d1 type disk;
backup as backupset database
format '/oracle/rman/offline_full_whole.bus';
release channel d1;
alter database open;
}
rman target sys/oracle@testdb @offline_full_whole.rman --编写好了rman脚本,可以远程调用
打开状态的备份
run{
allocate channel d1 type disk; --type sbt_tape
allocate channel d2 type disk;
backup as compressed backupset filesperset 4 database; --每个备份集不超过4个文件
backup as compressed backupset archivelog all; --加delete all input 则删除所有input的归档
release channel d1;
release channel d2;
}
在创建备份集或者压缩备份集时,RMAN不备份从未分配到段的块,这回节省大量空间。 完整备份会备份这种块。
backup as backupset format '/rman/df_%d_%s_%p' tablespace gl_tabs; -- 备份表空间的所有数据文件 %d 数据库ID %s 备份集编号 %p 备份片编号,对每个备份集从1开始
backup as compressed backupset datafile 4; --备份数据文件, 用数据文件的编号指定
backup as backupset archivelog like '/arch_p/arch_1%'; --备份指定归档,用通配符指定特定串开头的归档
增量备份不包括从未写入或可压缩的空块。
增量备份必须作为备份集或压缩备份集。无法执行映像副本的增量备份。
增量备份依赖于包含所有块的起点,这称为增量级别(incremental level)0 备份。然后增量级别1备份将提取上一次级别1以来更改的所有块,如果没有介于其间的级别1备份,则提取自上次级别0备份以来更改的所有块。
累积备份:提取自上一个级别0备份以来更改的所有块,不考虑其间是否存在任何级别1备份。 --只有0和1这两个级别。
backup as backupset incremental level 0 database; --执行级别0备份 备份集将包含所有使用过的块。
backup as backupset incremental level 1 database; --提取自上一个级别1备份(第一次是级别0)以来更改的所有块。
backup as backupset incremental level 1 cumulative database; --累积增量备份,提取自级别0备份以来所有更改的块。
*如果没有进行级别0备份,那么第一次级别1差异备份或累积备份将实际执行级别0备份。
增量备份将总是小于完整备份,但节省出来的时间并没有那么多,因为增量备份默认行为是:扫描备份的整个数据文件来确定哪些块需要提取。这样有一个优点:允许RMAN检查块的损坏。启用块变更跟踪会加快备份速度。
块变更跟踪(block change tracking)依赖于启动一个额外后台进程:CTWR (Change Tracking Writer,变更跟踪写入器)。这个进程在名为“变更跟踪文件”的文件中记录每个已更改的块的地址。如果启用块变更跟踪,RMAN将在执行增量备份时读取变更跟踪文件以确定哪些块需要备份,这比扫描文件块多了。
alter system set db_create_file_dest='/oracle/rman' scope=spfile; --设置变更跟踪文件的位置。不加scope 相当于scope=both
alter database enable block change tracking using file '/oracle/rman/change_tracking.dbf'; --启用块变更跟踪并制定跟踪文件的位置。
select * from v$block_change_tracking; --确认变更文件已经创建启用
当备份进行时,注意步骤:
1、启动磁盘类型通道
2、识别数据文件仅
3、通道写出一个包括数据文件的备份片
4、控制文件和spfile进入第二个备份片。
list backup of database; --列出备份
delete all input 不应用于使用的数据库;只应用于归档日志和备份。
映像副本
映像副本就像操作系统的复制程序。机制不同:RMAN读写Oracle块,而不是操作系统块。
可在不执行还原操作的情况下立即使用映像副本。
磁带通道不能用于映像副本,映像副本可有数据文件、控制文件、和归档日志组成,不能由spfile组成。
backup as copy database --备份整个DB
backup as copy archivelog all delete all input; --所有归档日志移动到闪回去
保护备份
RMAN备份使用中的数据库及其归档。
RMAN> backup as backupset device type disk copies 2 database plus archivelog; --备份数据库及归档,还备份自己的备份。2份
backup device type sbt_tape backupset all delete all input; --将备份转移到磁带
backup recovery area; --只在磁带库可用时有效 备份闪回区,包括完整增量备份集、控制文件和自动备份、数据文件、归档副本
backup recovery files; --只在磁带库可用时有效。 备份有恢复相关的文件(及时不在闪回恢复区)
三层备份策略:
一级存储时磁盘上使用的数据库。
二级存储时磁盘上的闪回恢复区
三级存储时磁带库
每次使用RMAN时,都至少会对目标库启动两个会话:默认会话和轮询会话。
默认会话:调用实现RMAN的内核PL/SQL(在db mount 或open前实例可用的PL/SQL) 的会话。
轮询会话:监视RMAN操作的进展。
通道: 第三个会话,当RMAN读写磁盘或磁带时。
减少备份时间可以启动多个通道并行。可达到的并行度受下列三个因素影响:
通道数
备份集数
输入文件数
每个通道读一个或多个文件和写多个备份;备份集数也会限制并行度。并行度不能超过输入文件数--除非启用多段备份功能。
run{
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup database files per set 8;
}
前4行启用4个随意命名的通道。然后,备份命令强制RMAN计算数据库中的五年数,并将它们分布到备份集中,每个备份集不超过8个文件。如果有100个datafile,前12个备份集每个包含8个文件。第13个备份集包含剩下的4个数据文件。并行度是4:受通道限制。如果数据库有20个数据文件,那么只生成3个备份集,并行度是3;有1个通道空闲。
如果文件很大,但一个通道一次只能读一个文件,可以使用多段关键字改变这一行为
run{
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup as compressed backupset datafile 16b section size 10g;
}
--每个通道读取数据文件16的一段10g的段,每个通道生成包含段的备份片(单独的物理文件)。如果文件200GB,将有20个这样的片,一次生成4个。如果没有section size 关键字,并行度将为1(也就是序列化),用一个通道执行所有操作。
练习
(1)rman target /
(2) sqlplus / as sysdba
(3) select username,program from v$session order by program; ---两个rman的会话是:默认会话和轮询会话。
(4)执行备份
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup as compressed backupset database;
}
(5)备份是查看(3)的查询。会有4个RMAN会话:默认会话、轮询会话以及两个通道会话。 --有4个rman会话:默认会话、轮询会话以及两个通道会话。
(6)在RMAN窗口中,观察备份的进展;注意文件是如何在两个通道之间划分的。
backup current controlfile; --备份控制文件
backup database include current controlfile
加密备份
在磁盘上创建加密的备份,必须启用 Advanced Security Option 选项。这是在企业版数据库许可之上购买的单独许可选项
将加密的备份直接写入磁带,必须通过Oracle Secure Backup SBT接口(磁带库许可并配置的单独产品)访问带库。
加密可以是透明的或基于口令的。 透明数据加密是默认的,基于钱包(wallet)的使用 默认使用128位**的AES算法。
set encryption algorithm 'aes256' identified by pa55word;
backup as compressed backupset database format '/oracle/rman/ora_enc.bkp';
使用前,再次设置口令:
set decryption identified by pa55word;
默认加密要求使用跟一个钱包和AES128算法。或者指定一个口令或更长的秘钥。
配置RMAN默认值
RMAN> show all; --显示已配置的默认值
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name NEWTEST are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_newtest.f'; # default
RMAN> configure retention policy to recovery window of 30 days; --保留30天
要将配置的设置恢复为默认值,可以使用clear命令
管理和监控RMAN
list
report
report 命令通过询问目标数据库来确定哪些需要备份。这要求将已生成的数据库和归档日志的物理结构域存储库中已记录的备份集和副本相比较,并应用保留策略。
report obsolete; delete obsolete
report obsolete redundancy 2; delete obsolete redundancy 2;
归档备份
归档备份指的是:希望长久或永久备份的备份,并不是归档日志的备份。
BACKUP ...KEEP { FOREVER | UNTIL TIME 'date_expr'}
[ restore point rsname] ;
backup database as compressed backupset keep until time 'sysdate + 7' restore point quarterly_backup;
--此命令写出一个压缩备份,该备份在7天后视为过期(可删除)
动态视图
select * from v$backup_files; --已备份的每份文件
select * from v$backup_set; --每个备份集一行信息。
select * from v$backup_piece; --每个备份片一行信息。
select * from v$backup_redolog; --已备份的每个归档日志
select * from v$backup_spfile; --由spfile构成的每个备份
select * from v$backup_datafile; --数据文件的备份
select * from v$backup_device; --已链接到RMAN的SBT设备的名称。
select * from v$rman_configuration; -- 每个配置设置的一行信息。
delete expired --不删除磁盘上的文件,只在存储库中将其标记为expired
delete obsolete --删除文件,并更新存储库。
select start_time,end_time,status,input_type,input_bytes_display,output_bytes_display from v$rman_backup_job_details order by start_time desc;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28341524/viewspace-1442269/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28341524/viewspace-1442269/