RMAN 使用详解
一、连接方式
(一)、连接本地数据库[oracle@oracle ~]$ rman target /
(二)、连接远程数据库[oracle@oracle ~]$ rman target sys/oracle@orcl
二、基本指令
(一)、执行 SQL 语句RMAN>SQL ‘ALTER SYSTEM SWITCH LOGFILE’;
(二)、RMAN 默认配置
1.显示 RMAN 默认配置
RMAN>SHOW ALL;
2.RMAN 默认配置详解
using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
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 ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_orcl.f'; # default
#default 表示该条配置仍然是初始的默认配置。
如果我们想把某条更改过的配置再置为初始应该怎么办呢,很简单,
用如下命令:CONFIGURE ... CLEAR;
例如:
RMAN> CONFIGURE RETENTION POLICY CLEAR;
旧的RMAN 配置参数:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
RMAN 配置参数已成功重置为默认值
1、CONFIGURE RETENTION POLICY 配置备份保留策略
两种保留策略:
基于时间:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;
基于冗余数量:
CONFIGURE RETENTION POLICY TO REDUNDANCY n;
也可以取消备份保留策略:
CONFIGURE RETENTION POLICY TO NONE;
2、CONFIGURE BACKUP OPTIMIZATION 配置备份优化
如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。
备份优化,包括OFF 和ON 两个状态
打开备份优化:
CONFIGURE BACKUP OPTIMIZATION ON;
关闭备份优化:
CONFIGURE BACKUP OPTIMIZATION OFF;
3、CONFIGURE DEFAULT DEVICE TYPE 配置IO 设备类型
RMAN 支持的 IO 设备类型有两种:磁盘(DISK)和磁带(SBT),默认情况下为磁盘。
使用磁盘设备:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
使用磁带设置:
CONFIGURE DEFAULT DEVICE TYPE TO SBT;
在这里需要注意的一点是:如果IO 设备发生变化,相关配置项也需要修改。例如:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
3、CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份
是否自动备份,包含两个状态:OFF 和ON
打开自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON
禁止自动备份
CONFIGURE CONTROLFILE AUTOBACKUP OFF
同时可以通过如下配置指定备份的控制格式,路径。例如:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE
DISK TO 'd:/backup/%F';
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可
以通过如下配置:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO
'D:/BACKUP/SNCFJSSWEB.ORA';
5、CONFIGURE DEVICE TYPE 设置并行备份
RMAN 支持并行备份与恢复,也可以在配置中指定默认的并行程度。例如:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
指定在以后的备份与恢复中,将采用并行度为2,同时开启2个通道进行备份与恢
复,当然也可以在run 中指定通道来决定备份与恢复的并行程度。
默认情况下,自动分配通道的并行度为1,如果你通过设置PARALLELISM 设置了
并行通道为2,那么在run 块中,如果你没有单独通过ALLOCATE CHANNEL 命令指定通道,它会默认使用2 条并行通道,如果你在run 命令块中指定了数个ALLOCATE CHANNEL,那么rman 在执行备份命令时会以你设置的channel 为准,而不管configure中配置了多少个并行通道。
需要注意的一点是,在backup 命令中有一个 FILESPERSET 参 数 该参 数 是 指
rman建立的每个备份集中所能包含的备份片段(即磁盘文件)的最大数,该参数默认值为64,如果在执行backup 命令时没有指定该参数值,那么rman 会仅使用第一个通道来执行备份,其它通道将处于空闲状态。filesperset 值不要小于你设定的通道数。
6、CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度
7、CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。
RMAN> show channel; // 通道分配
RMAN> show device type; // IO 设备类型
RMAN> show retention policy; // 保存策略
RMAN> show datafile backup copies; // 多个备份的拷贝数目
RMAN> show maxsetsize; // 备份集大小的最大值
RMAN> show exclude; // 不必备份的表空间
RMAN> show backup optimization; // 备份的优化
(三) 、FORMAT 字符串替代变量使用FORMAT 参数时可使用的各种替换变量,如下:
%c:备份片的拷贝数(从1 开始编号);
%d:数据库名称;
%D:位于该月中的天数(DD);
%M:位于该年中的月份(MM);
%F:一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中
IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列;
%n:数据库名称,并且会在右侧用x 字符进行填充,使其保持长度为8;
%u:是一个由备份集编号和建立时间压缩后组成的8 字符名称。利用%u 可以为每个备
份集生成一个唯一的名称;
%p:表示备份集中备份片段的编号,从1 开始编号;
%U:是%u_%p_%c 的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一
个唯一名称,这是最常用的命名方式;
%s:备份集的号;
%t:备份集时间戳;
%T:年月日格式(YYYYMMDD);s
注:如果在BACKUP 命令中没有指定FORMAT 选项,则RMAN 默认使用%U 为备份片段命名。
(四) 、RMAN 备份相关的动态性能表V$ARCHIVED_LOG:本视图包含了所有归档重做日志文件的创建情况,备份情况以
及其他信息。
V$BACKUP_CORRUPTION:这个视图显示了RMAN 在哪些备份集中发现了损坏的
数据坏。在你使用BACKUP VALIDATE 命令对备份集进行检查时如果发现了损坏的数据块,
RMAN 将在这个视图中写入记录。
V$COPY_CORRUPTIO:本视图显示了哪些镜像复制备份文件已经被损坏。
V$BACKUP_DATAFILE:本视图通常用来获取每个数据文件中非空白数据块的数量,
从而帮助你创建出大小基本相等的备份集。另外,在视图中也包含了数据文件中损坏的数据块的信息。
V$BACKUP_REDOLOG:本视图显示了在现有的备份集中饮食有哪些归档重做日志文件。
V$BACKUP_SET:本视图显示了已经创建的备份集的信息。
V$BACKUP_PIECE:本视图显示了已经创建的备份片段的信息。
(五) 、备份信息
1.列出备份信息
列出数据库中所有文件的备份信息:
RMAN>LIST BACKUP OF DATABASE;
列出指定表空间的备份信息:
RMAN>LIST COPY OF TABLESPACE 'SYSTEM';
列出指定数据文件的备份信息:
RMAN>LIST BACKUP OF DATAFILE
'F:\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA';
2.删除备份信息
1.删除陈旧备份
当使用 RMAN 执行备份操作时,RMAN 会根据备份冗余策略确定陈旧备份。
RMAN> delete obsolete;
2.删除 EXPIRED 备份
执行 crosscheck 命令核对备份集,如果备份集丢失或者损坏,那么会将该备份集标记
为 EXPIRED 状态。为了删除相应的备份记录,可以执行 delete expired backup 命令。
RMAN> delete expired backup;
3.删除 EXPIRED 副本
RMAN> delete expired copy;
4.删除特定备份集
RMAN> delete backupset 19;
5.删除特定备份片
RMAN> delete backuppiece 'd:\backup\DEMO_19.bak';
6.删除所有备份集
RMAN> delete backup;
7.删除特定映像副本
RMAN> delete datafilecopy 'd:\backup\DEMO_19.bak';
8.删除所有映像副本
RMAN> delete copy;
9.在备份后删除输入对象
RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input;
(六) 、指令运行方式1.单个执行
RMAN>backup database;
2.批处理
RMAN>RUN{
.......................
.......................
}
批处理方式实质是将原来单个执行的命令组合到一起,并放在run{}之间,这种方式最
大的好处是所有在run中的命令被视为一个作业,如果作业中任何一条命令执行失败,
则整个命令停止执行,即失败命令后的其它命令都不会再被执行。这种方式是最常使用的方式,特别对于后台执行。
3.运行脚本(又能细分为几种方式如下:)
[oracle@oracle ~]$ rman TARGET / @backup_db.rman
RMAN> @backup_db.rman
RMAN> RUN { @backup_db.rman }
运行存储在恢复目录中的脚本(需要首先为rman 创建恢复目录)
RMAN> RUN { EXECUTE SCRIPT backup_whole_db };
4.操作系统脚本(linux,windows 环境下小有差异,但只是操作系统命令的不同)
[oracle@oracle ~]$rman cmdfile=backup_db.rman
三、RMAN 备份概念
(一)、RMAN 备份类型
1.镜像复制
首先大家需要明了这个概念,rman 中的镜像复制实质与通过操作系统copy 命令备份相同,甚至连命令的格式都相似,只不过直接应用操作系统的copy 命令复制数据文件时,只是文件拷贝,而rman 的copy 则能够在复制的同时,验证数据的有效性。
2.备份集
备份集(BACKUPSET)表示进行一次备份所产生的所有备份片集合,是一个逻辑上的概
念。备份片(BACKUPPIECE)表示一个由RMAN 产生备份的文件.用 OS 工具可以实在在的看到。一个备份集由一个或多个备份片组成。(与表空间、数据文件关系类似)
一个数据文件可以跨备份片存在,而不能跨备份集存在。
示例(数据库
四、
五、RMAN> run
{
allocate channel c1 device type disk maxpiecesize 1500m;
backup database plus archivelog delete all input;
release channel c1;
}
每个备份片的最大为1500M,超过这个大小就会产生新的备份片,在启动备份时,会归档当前的日志,生成一个备份片,删除已备份的归档日志.然后备份数据文件,生成两个备份片(数据文件2G),再备份当前的SPFILE 和CONTROLFILE,生成一个备份片,最后再做一次LOGSWITCH,最备份这归档日志,生成一个备份片,因此可以这样描述,这个备份集包含成五个备份片,一个备份片包含文件个数由 FILESPERSET 指定.
RMAN> run
{
allocate channel c1 device type disk maxpiecesize 1500m;
backup database filesperset 1;
release channel c1;
}
表示一个备份片中包含一个文件,即使没有达到 1500M,也生成新的备份片,如我的有五个数据文件,还有 SPFILE和 CONTROLFILE 一个备份片,一共生成六个备份片.如果加上plus archivelog delete all input 这个备份选项之后,那
(二) 、增量备份的工作机制所谓增量备份,顾名思义即是每次备份仅操作那些发生了"变化"的数据块。RMAN 中
增量备份有两种:Differential 方式和Cumulative 方式。级别0-4.
0 级备份和全库备份的区别:
1)全库备份不能作为 1 级备份的基础
2)全库备份会对unused 数据库做备份
0 级备份
backup incremental level 0 database;
1 级差异增量
backup incremental level 1 database;
1 级累计增量
backup incremental level 1 cumulative database;
(三)、备份集复制RMAN 提供了一种更谨慎的备份策略:Duplexed方式备份,其实质即是在生成备份集的同时,向指定位置生成指定份数(最大不超过4 份)的备份集复制,以避免在灾难性事故时数据库损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。RMAN 中提供了三种方式实现Duplexed 方式备份:
1、在RMAN 中执行BACKUP 命令时显式指定COPIES 参数。例如:
RMAN> BACKUP COPIES 3 DATABASE;
上述命令将会在全库备份的同时,自动生成当前备份集的2份拷贝到默认备份目录。
2、在RUN{}命令块中利用SET BACKUP COPIES 命令为该命令块中所有的BACKUP命令设置Duplexed 方式,例如:
RMAN> RUN{
SET BACKUP COPIES 2;
BACKUP DEVICE TYPE DISK FORMAT 'D:\BACKUP1\%U','D:\BACKUP2\%U'
TABLESPACE USERS,SALES;
}
上述命令将生成两份备份集,分别存储到d:\backup1 和d:\backup2 目录。
3、通过CONFIGURE ..... BACKUP COPIES 命令设置预定义的备份Duplexed 方式。CONFIGURE ... BACKUP COPIES 命令可以为指定的设备类型设置默认的备份拷贝量。这个配置仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动分配的通道时才能够使用CONFIGURE ... BACKUP COPIES命令设置的配置。
例如:
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;
RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;
上述命令将disk设置上数据文件与归档文件的拷备数量设置为2,当再执行BACKUP
DATABASE 备份时,即会自动生成2 份数据文件的备份集。