1. RMAN 执行程序, 也就是RMAN 命令.
2. Server session : 服务器上的进程, 是真正用来干活的.
3. Target database: 你想要进行备份的数据库
4. RMAN Repository: RMAN的源数据, 这部分内容可以存储在control file, 也可以单独存储在数据库中, 我目前尝试的都是直接存储在control file中.
5. Channel: 是一个通道, 用来连接数据库与备份的存储介质.
6. Media Management Library: 一般就是指存储介质的制造商给出的驱动. 我们一般就存储在磁盘. 所以就用 oracle 提供的 SBT_TYPE 就可以了.
ALLOCATE CHANNEL命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型
实际上是通过channel来控制备份及恢复时的行为
channel 自动分配:
CONFIGURE DEVICE TYPE … PARALLELISM
CONFIGURE DEFAULT DEVICE TYPE
CONFIGURE CHANNEL
假定在RMAN提示符下执行backup datafile 1, 则RMAN 会使用预先配置的通道参数为之分配通道, 这些命令 backup, restore, delete 等在非 run 块运行时会根据 configure
命令设定的值自动分配通道, 但上述命令在run 块中则需要手动分配通道.
CONFIGURE DEFAULT DEVICE TYPE TO sbt; -- 默认是 disk
CONFIGURE DEVICE TYPE DISK PARALLELISM 3; -- 为自动分配通道配置并行度, 影响 I/O 性能等
-- 配置自动通道首选项
CONFIGURE CHANNEL DEVICE TYPE DISK
FORMAT = ‘/BACKUP/RMAN/%U’;
CONFIGURE CHANNEL DEVICE TYPE DISK
MAXPIECESIZE 4G;
连接 rman 测试:
rman target / nocatalog -- 使用操作系统权限登陆
rman target sys/oracle@trgt -- 远程方式登陆
show default device type; -- 查看默认的备份介质, 默认是 disk
configure default device type clear; -- 将备份介质还原成默认的disk.
channel 手动分配:
backup, copy, restore, recover 等命令至少需要分配一个通道
分配一个通道将在目标数据库所在服务器启动一个服务进程, 分配的通道实际上是指定了并发度
RMAN> RUN {
2> ALLOCATE CHANNEL ch1 TYPE disk
3> BACKUP DATAFILE 1, 2, 4
4> FORMAT ‘/u01/app/oracle/rmanbak/users_%U.bak’; }
另一个例子:
RMAN> RUN {
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> allocate channel ch3 device type disk;
5> backup
6> incremental level 0
7> (datafile 1, 4 channel ch1)
8> (datafle 2, 3 channel ch2)
9> (datafile 5, 6 channel ch3);
10> alert system archive log current; }
注意, filesperset : 是指一个备份集中可容纳的文件数, maxpiecesize: 限制一个备份片的大小.
backup set: 是一个集合, 是由一个或多个物理文件组成, 是一个逻辑单位.
backup piece: 是真正的一个输出文件, 受到操作系统单个文件的限制, 即 maxpiecesize 这个参数.
补充: filesperset 参数:
filesperset是每个备份集中包含的最大文件个数, 和 channel 没有关系.
allocate channel
提供备份并发度,若平均文件数<filesperset则会按照 平均文件数/备份集 进行备份,若超过则按照filesperset的数量生成备份集;例如:
1、run {
allocate channel ch1 type disk;
allocate channel
ch2 type disk;
backup datafile 3,4,5,6 filesperset 3;
release
channel ch1;
release channel ch2;
}
平均数是
4(文件数)/2(channel数) = 2 ,小于filesperset 3,则生成2个备份集,每个备份集包含2个数据文件
2、run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup datafile 3,4,5,6 filesperset 1;
release channel ch1;
release channel ch2;
}
则生成4个备份集,每个包含一个数据文件
由以上补充, 可知, 参数 filesperset 不用指定就可以, 因为默认是用 (备份的文件数/chanel)得到的数 和 64 相比较. 只要比64 小, 就用前边的数, 貌似看来一般都会比 64 小
configure 命令的使用
配置channel 自动分配
指定备份的保留策略
指定备份的副本的副本数 (backup 的 backup)
限制备份集的大小
设置缺省的备份类型
启动和关闭备份优化
配置是否自动备份控制文件
配置自动channel : CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT = ‘/backup/rman/%U’;
? 配置保留策略恢复窗口: configure retention policy to recovery window of 7 days; -- 保留的时间, 默认的不就是 7 days
? 配置保留策略冗余数: configure retention policy to redundancy 2;
配置多个备份镜像: configure datafile backup copies for device type disk to 2;
配置自动优化备份: configure backup optimization on;
使用清楚命令恢复到缺省值: configure retention policy clear; configure channel device type sbt clear;
配置备份的并行度: configure device type disk parallelism 2
配置备份片的大小: configure channel device type disk maxpiecesize=1G;
配置控制文件自动备份: configure controlfile autobackup on; configure controlfile autobackup clear; -- 清空controlfile 自动备份
show 命令
直接 show all 就可以了
List 命令
列出备份集, 数据文件镜像
列出指定表空间任意数据文件的备份集或镜像副本
列出指定范围内包含归档日志的备份集或镜像副本
list backup;
list copy;
list backup of database;
list backup of tablespace users;
list backup of archivelog all;
list backup verbose;
list backup summary;
list backup of datafile 1 [n | <dir>];
list copy of archivelog from time = ‘sysdate – 7’;
list backup of archivelog from sequence 1000 until sequence 1020;
list backupset tag=TAG20140317T155753;
Report命令
Report命令显示存储仓库(Repository)中的详细的分析信息
例如, 那些文件需要备份, 那些备份可以被删除, 那些文件不可恢复 等
report schema;
report need backup;
report need backup days 3;
report need backup redundancy 3;
report need backup recovery window of 3 days;
report obsolete;
report unrecoverable;
report schema at time ‘sysdate – 7’;
report need backup days 2 tablespace system;
Delete 命令
删除相关的备份集火镜像副本的物理文件, 同时将删除标记 delete 更新到控制文件.
delete backupset;
delete backupset n;
delete obsolete;
delete obsolete redundancy 2;
delete noprompt copy;
delete noprompt backupset tag TAG20140317T14432;
delete obsolete recovery window of 7 days;
delete expired backupset;
delete expired copy;
delete expired archivelog all;
Crosscheck 命令
用于检验存储仓库中的备份集或镜像副本, 执行该命令后, 将更新仓储仓库中的刚刚检验的对象状态, 便于后续操作处理.
RMAN 备份检验的几种状态
expired: 对象不存在于磁盘或磁带。当一个备份集处于expired状态,则该备份集中所有的备份片同样处于expired状态
available: 对象处于可用状态。当一个备份集可用,则该备份集内的所有备份片同样可用
unavailabe: 对象处于不可用状态。当一个备份集不可用,则该备份集内的所有备份片同样不可用
注:expired不等同于obsolette。
校验时的限制
目标数据库必须被启动
对于磁盘上的备份集,校验时不需要使用通道。而磁带上的备份集则必须使用通道,如果未为磁带配置自动通道,则必须手动分配
可以校验执行resetlogs之前的备份,即可以校验不同的incarnation
RMAN> crosscheck backupset; --校验备份集
RMAN> crosscheck copy; --校验镜像副本
RMAN> crosscheck backup of controlfile; --校验备份的控制文件
RMAN> crosscheck backup of archivelog all; --校验所有备份的归档日志
RMAN> crosscheck backup of datafile 1,2; --校验datafile 1,2
RMAN> crosscheck backup of tablespace sysaux,system; --校验表空间sysaux,system
RMAN> crosscheck backup completed between ‘13-OCT-10‘ and ‘23-OCT-10‘; --校验时间段,时间段格式由NLS_DATE_FORMAT设置
RMAN> crosscheck backupset 1067,1068; --校验指定的备份集
数据库初始化参数
control_file_record_keep_time : 指定控制文件内RMAN信息被覆盖前保留的最小天数
db_recovery_file_dest : 如果将 RMAN 备份到此处, 需要设置该参数
db_recovery_file_dest_size: 如果将 RMAN 备份到此处, 需要设置该参数
环境变量参数
nls_date_format : 设定日期
nls_lang: 设定环境变量影响 restore, recover, report 等命令
原文:http://www.cnblogs.com/moveofgod/p/3605127.html