RMAN详细教程(三):备份脚本的组件和注释

RMAN详细教程(一):基本命令代码 RMAN详细教程(二):备份、检查、维护、恢复 RMAN详细教程(三):备份脚本的组件和注释 RMAN详细教程(四):备份脚本实战操做    html

1、基本组件:

一、Server session:

服务器会话,服务器上的进程, 是真正用来干活的;  sql

二、Channel:

是一个通道, 用来链接数据库与备份的存储介质; 通道配置选项:数据库

connect :是一个Oracle Net链接串。通常不适用于单实例环境
format : 为通道建立的备份片或映像副本肯定路径与文件名
duration: 控制做业的时间总量,以小时和分钟进行指定
maxopenfiles:该选项限制RMAN一次可以打开的输入文件数,默认为
maxpiecesize:限制一个备份集分割的备份片的大小,以字节(默认)、k、m、g为单位
parms:可以被用于设置sbt_type通道所需的任何变量
filesperset:备份集中可容纳的文件数
backup set: 是一个集合, 是由一个或多个物理文件组成, 是一个逻辑单位.
backup piece: 是真正的一个输出文件, 受到操做系统单个文件的限制, 即 maxpiecesize 这个参数;

 

三、backuppiece:

备份片,表示一个由RMAN产生备份的文件.用OS工具能够实实在在的看到;  bash

四、backupset:

备份集,表示进行一次备份所产生的全部备份片集合,是一个逻辑上的概念; <font color='red'>一个数据文件能够跨备份片存在,而不能跨备份集存在。</font>    服务器

2、基本做业模板:

示例1:

RMAN> run
{
allocate channel c1 device type disk maxpiecesize 1500m;
backup database plus archivelog delete all input;
release channel c1;
}

allocate channel命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操做使用的I/O类型。 每一个备份片的最大为1500M,超过这个大小就会产生新的备份片,在启动备份时,会归档当前的日志,生成一个备份片,删除已备份的归档日志.而后备份数据文件,生成两个备份片(数据文件2G),再备份当前的SPFILE 和CONTROLFILE,生成一个备份片,最后再作一次LOGSWITCH,备份归档日志,生成一个备份片,所以能够这样描述,这个备份集包含成五个备份片,一个备份片包含文件个数由 FILESPERSET 指定.  session

示例2:

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这个备份选项,那 FIELSPERSET 这个参数就会被IGNORE掉。    oracle

3、RMAN备份脚本:

一、全备:

$cat arch_rman_backup.sh:app

source /home/oracle/.bash_profile
rman target / log=/u01/app/script/arch_rman.log<<EOF
run
{
allocate channel ch1 device type disk; 
allocate channel ch2 device type disk;
sql 'alter system archive log current';  
sql 'alter system archive log current';
backup archivelog all format '/backup/arch_%U_%d_%T_%t' delete all input;
backup current controlfile format '/backup/ctl_%U_%d_%T_%t';
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt obsolete;
#delete noprompt backup of database completed before 'sysdate -7';
#delete noprompt archivelog all;
#delete noprompt backup of archivelog all completed before 'sysdate -7';
release channel ch1;
release channel ch2;
}
EOF

 

二、归档日志备份:

$cat arch_rman_backup.sh工具

source /home/oracle/.bash_profile
rman target / log=/u01/app/script/arch_rman.log<<EOF
run
{
allocate channel ch1 device type disk; 
allocate channel ch2 device type disk;
sql 'alter system archive log current'; 
#backup database format '/backup/db_%d_%T_%U';
sql 'alter system archive log current';
backup archivelog all format '/backup/arch_%U_%d_%T_%t' delete all input;
backup current controlfile format '/backup/ctl_%U_%d_%T_%t';
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt obsolete;
#delete noprompt backup of database completed before 'sysdate -7';
#delete noprompt archivelog all;
#delete noprompt backup of archivelog all completed before 'sysdate -7';
release channel ch1;
release channel ch2;
}
EOF

原文出处:https://www.cnblogs.com/WoLykos/p/11690334.htmlspa

相关文章
相关标签/搜索