1 RMAN的概述
1.1 功能
1)Recovery MANager,是备份和恢复数据库的管理工具
2)由server process进行备份和恢复
3)rman备份的文件种类
①datafile(database、tablespace、datafile)
②controlfile、spfile
③archivelog
4)在归档模式下支持非一致性备份(热备)
非归档方式的RMAN只能冷备,并在mount下做,但手工备份在mount下cp出来的备份对于RMAN是不可用的。
非归档方式的RMAN恢复只能还原最后一次备份
1.2 特点
1)备份时自动检查数据文件是否有坏块,因为RMAN是ORACLE BLOCK级备份技术
2)不备份临时表空间
3)可以实现增量备份
4)支持多通道并行工作
5)可以备份ASM文件
1.3 架构
1)可连接三类数据库:target database(备份的目标库),catalog database(目录数据库),duplicate database(复制数据库)。
2)存储设备:disk、tape(sbt磁带机)存放备份文件的设备
3)channel:目标库和存储设备之间备份恢复通道(服务进程)默认最少启动一个channel,可同时启动多个channel并发操作。
4)server process:用于备份和恢复的进程
5)rman的元数据:记录备份的信息(放在目标库的controlfile里)
6)catalog database :集中管理、存放备份的元数据,还可以存储备份脚本
7)MML:media manage layer介质管理层:用于管理磁带机的库文件或驱动
1.4 连接方法
1)本地连接
RMAN工具和target database在同一台服务器
[oracle@prod ~]$ rman target /
2)远程连接
RMAN客户端通过ORACLE_NET连接target database 在target database 启动监听,在client配置tnsnames.ora。
C:\>rman target sys/system@prod
1.5 备份类别
1)backupset:(备份集)
不备份datafile里从未使用块、可以实现增量备份(可以备份到disk和tape)。可以实施compression, 如果只启用一个channel,默认会把所有备份的datafile放入到一个backupset里,并且生成一个备份片backup piece。
2)image copy(映像文件):
实际上和手工cp 类似的,备份datafile所有的数据块, 不能作为增量备份的基础(即0级增量备份),只能备份到disk ,不能备份到tape,优点是可以省略还原步骤,恢复数据库速度快
2 RMAN的环境变量
含义解释:
2.1 CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
保留策略:用来决定哪些备份是有效的,而哪些备份是淘汰的。保留策略决定了备份是否为obsolete,obsolete有“淘汰”的意思,一旦某个备份成为obsolete了,RMAN还原备份时就不会选择它了。
有两种保留策略,互斥只能选其一。
1)冗余策略,给定至少需要保留最近的N份备份,更早的obsolete。
例如,如果有三个备份,而冗余数是2,那么最早的那个备份将被废弃。下面的命令将备份策略设置为2:
RMAN> configure retention policy to redundancy 2;
2)窗口策略,指定一个时间窗口,此策略将保证必须能恢复此时间段内任一个时刻的数据。
例如,假如我们指定恢复窗口是7天,假设今天是星期一,此前存在3个全备及归档日志。第一个全备是5天前生成的,第二个全备是十天前生成的,而最早一个全备是15天前备份的,
那么十天前生成的备份及之后的归档日志必须保留,而15天前的那个备份会成为废弃备份(obsolete)
关于此环境变量的几种常见设置:
RMAN>configure retention policy to recovery window of 7 days; 将恢复窗口配置为7天
RMAN>configure retention policy to none; 备份保持策略失效,此后不会将任何备份集或映像文件为obsolete状态。
RMAN>configure retention policy clear; 将恢复默认的保持策略
RMAN>configure retention policy to recovery window of 5 days; 保证至少有一个备份能恢复到Sysdate-5的时间点上,之前的备份将标记为Obsolete
RMAN>configure retention policy to redundancy 3; 至少需要有三个冗余的备份存在,如果多余三个备份以上的备份将标记为冗余
2.2 CONFIGURE BACKUP OPTIMIZATION OFF; # default
备份优化,需要说明的是,这个参数是在做全库备份时才会有效。如果优化设置打开,它只用于归档日志,只读或脱机表空间的数据文件,因为这些文件是不会变化的,备份集运行一个优化算法。全库备份时跳过重复的备份文件。
备份优化选项依赖于RETENTION POLICY策略,如果启用优化,在已有足够相同文件副本的情况下(r+1),RMAN将不创建额外的文件副本。
RMAN> configure backup optimization on;
2.3 CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
设备类型有两种,可以是磁盘(DISK),或者磁带(STB),默认为磁盘。
2.4 CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
设置控制文件自动备份RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
off: 默认情况下,在备份system表空间时,会备份控制文件和spfile
on: ①在做任何文件的备份时,会自动备份控制文件和spfile,②数据库的物理结构发生变化时,也自动备份controlfile。
从ORACLE DATABASE 11GR2开始,引入了控制文件自动备份延迟创建的特性。有个隐含参数_controlfile_autobackup_delay来控制这种行为,默认是300秒。
2.5 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
给出控制文件自动备份的路径和命名方式,缺省是‘%F’,控制文件自动备份将放入flash_recovery_area目录下
也可以指定到其他地方
如: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/u01/myrman/%F’;
关于%:
%告诉RMAN要使用的格式模板,以便备份文件的命名引用预定的格式,如下:
%c备份片的拷贝数
%D位于该月中的第几天(DD)
%M位于该年中的第几月(MM)
%F一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,
%d数据库名称其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列
%n数据库名称,向右填补到最大八个字符
%u一个八个字符的名称代表备份集与创建时间
%p该备份集中的备份片号,从1开始到创建的文件数
%U一个唯一的文件名,代表%u_%p_%c
%s备份集的号
%t备份集时间戳
%T年月日格式(YYYYMMDD)
第四行和第五行的环境变量是有关系。当第四行开启AUTOBACKUP ON后,控制文件备份将放入第五行指定的的目的地
这样好让RMAN在恢复控制文件备份时能自动找到控制文件备份。即和restore controlfile from autobackup命令配套。
2.6 CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
指定在以后的备份与恢复操作中并行度为2,即同时开启2个通道进行备份与恢复,此行设置可以和手动定义通道命令配合使用:
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/myrman/%U.bak';
RMAN> CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u01/myrman1/%U.bak';
注意:定义备份片的位置使用format子句大致有三种形式,以局部优先级更高为原则:
1)在环境变量里定义,如:
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u01/myrman/%U.bak';
2)在run块中定义,如:
run{
allocate channel c1 type disk format '/u01/myrman/%s.bak';
};
3)在backup语句中定义,如:
backup datafile 4 format '/u01/myrman/%d_%s.bak';
2.7 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
备份集也可以有多路复用(但映像文件不可以),最大值4,如为2就备份相同的2份(PPT-II-101)
注意:TO STB和TO DISK是独立的。也就是说不能同时以DISK和TAPE多路复用。如果一定要实现duplex到磁盘和磁带,可使用backup backupset.
RMAN> backup copies 2 datafile 4 format '/u01/myrman/%s_dbf','/u01/myrman1/%s_dbf';
手动命令可以覆盖这个变量的设置
2.8 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
归档日志的多路复用,类似数据文件多路复用
2.9 CONFIGURE MAXSETSIZE TO UNLIMITED; # default
该配置限制通道上备份集的最大尺寸,单位支持Bytes、KB、MB、GB,默认值是unlimited
2.10 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
配置备份集是否加密开关,默认关闭能够具体到某个表空间。
2.11 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
加密,Transparent encryption透明的加密,带钱夹,Password encryption:不带钱夹
2.12 CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
RMAN里的压缩也叫binary compression,这是11g新增的参数(PPT-II-104-106), 压缩只能是针对backup set,有两种算法:‘BZIP2’和’ZLIB’.不要将RMAN的压缩和外部压缩实用程序混合在一起做
2.13 CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
对于归档文件,一般来说,如果你仅是单实例的话(不是Data Guard环境),全备以前的archivelog就没有什么用处了,可以删除,但很多人不习惯在这里设置参数,更愿意使用脚本删除归档文件。
2.14 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_prod.f'; # default
rman控制文件RMAN存储库与catalog做全同步的时候,需要建立一个controlfile的快照,这个参数指定快照存放位置。
3 RMAN命令格式
3.1 交互式 (也叫stand alone方式)
RMAN> shutdown immediate;
RMAN>startup force mount;
RMAN>alter database open;
RMAN>sql 'alter system switch logfile';
RMAN>sql 'select * from scott.emp'; select不显示结果
3.2 批处理方式(也叫job方式)
RMAN>run {
shutdown immediate;
startup mount;
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/u01/myrman/%d_%s.bak';
alter database open;
release channel c1;
release channel c2;
}