一、数据库备份与RMAN备份的概念
1.数据库完全备份:按归档模式分为归档和非归档
归档模式
打开状态,属于非一致性备份
关闭状态,一致性备份,非一致性
非归档模式
打开状态,非一致性备份无效
关闭状态,一致性备份,
2.RMAN备份
RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话
RMAN备份内容包括:整个数据库,表空间,数据文件,指定的数据文件,控制文件,归档日志文件,参数文件等
3.RMAN备份的类型
完整备份(full) 或增量备份(incremental)
一致性备份(consistent)或不一致性备份(inconsistent)
热备(open)或冷备(closed),冷备时数据库必须处于mount状态,冷备可以为一致性备份或非一致性备份
完整备份
一个或多个数据文件的一个完整副本,包含从备份开始处所有的数据块.完整备份不能作为增量的基础
增量备份
包含从最近一次备份以来被修改或添加的数据块.可以分为差异增量备份和累计增量备份
差异增量备份自上次增量备份以来的更改,备份数据量小,恢复时间长。
累计自上次0级备份以来的更改。备份数据量大,恢复时间短。
0级增量备份相当于一个完整备份,该备份包含所有已用的数据块文件,与完整备份的差异是完整备份不能用作级增量备份的基础
一致性备份
备份所包含的各个文件中的所有修改都具备相同的系统变化编号(system change number,SCN)。
也就是说,备份所包含的各个文件中的所有数据均来自同一时间点。
一致性数据库完全备份(consis-tent whole database backup)进行还原(restore)后,不需要执行恢复操作(recovery)
非一致性备份
在数据库处于打开(open)状态时,或数据库异常关闭(shut down abnormally)后,对一个或多个数据
库文件进行的备份。非一致性备份需要在还原之后进行恢复操作
4.备份集与镜像副本
备份集
是包含一个或多个数据文件,归档日志文件的二进制文件的集合.备份集由备份片组成,一个备份集中可以包含一个或多个备份片
可以通过filesperset参数来设置备份集中可包含的备份片数,
也可以设定参数maxpiecesize来制定每个备份片的大小。
备份集中空闲的数据块将不会被备份,因此备份集可以支持压缩。备份集支持增量备份,可以备份到磁盘或磁带。
镜像副本
是数据文件或归档日志文件等的完整拷贝,未经过任何压缩等处理,不能备份到磁带,也不支持增量备份
恢复时可以立即使用实现快速恢复
等同于操作系统的复制命令
5.备份路径
可以备份到磁盘目录
可以备份到磁带
闪回区
6.备份限制
数据库必须处于mount或open状态
不能备份联机日志
二、使用RMAN进行备份
恢复区:恢复区提供了一个集中化的存储区域,很大程度上减小了管理开销。
默认RMAN备份数据存储在恢复区
show parameter recovery
alter system set db_recovery_file_dest_size=4G ;
alter system set db_recovery_file_dest='/opt/soft/recover';
RMAN> show all;
使用目标数据库控制文件替代恢复目录
db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为:
1CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
2CONFIGURE BACKUP OPTIMIZATION OFF; # default
3CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
4CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
5CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
6CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
7CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
8CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
9CONFIGURE MAXSETSIZE TO UNLIMITED; # default
10CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
11CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
12CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
13CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
14CONFIGURE SNAPSHOT CONTROLFILE NAME TO ''/opt/oracle/product/11.2.0/dbhome/dbs/snapcf_ORCL.f'; # default
1.1)configure retention policy to redundancy 1:
是用来决定那些备份不再需要了,它一共有三种可选项,分别是
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO NONE;
第一种recover window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。
任何超过最近七天的数据库备份将被标记为obsolete。
第二种redundancy 是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为obsolete。它的默认值是1份。
第三种不需要保持策略,clear将恢复回默认的保持策略。
最安全的方法是采用第二种保持策略。
2.CONFIGURE BACKUP OPTIMIZATION OFF
默认值为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。
1.3)Configure default device type to disk:
是指定所有I/O操作的设备类型是硬盘或者磁带,默认值是硬盘
磁带的设置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;
1.4)CONFIGURE CONTROLFILE AUTOBACKUP OFF
强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,
默认值为关闭。这样可以避免控制文件和catalog丢失后,控制文件仍然可以恢复。
1.5)CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'
是配置控制文件的备份路径和备份格式
1.6)CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
是配置数据库设备类型的并行度。
1.7)CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
是配置数据库的每次备份的copy数量,oracle的每一次备份都可以有多份完全相同的拷贝。
1.8)CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1
是设置数据库的归档日志的存放设备类型
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
show all;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK CLEAR;
show all;
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD false;
show all;
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
1.备份数据库
RMAN> backup database format '/opt/soft/oracle/rmanbak/whole_%d_%U'; --备份整个数据库
SQL> select * from V$Session_Longops; --查询备份情况
select * from v$session s where upper(s.client_info) like '%RMAN%'
v$session_longops显示运行超过6秒的操作的状态。
包括备份,恢复,统计信息收集,查询等等。
数据库重启后,无法查到
list backupset;
list backupset tag=TAG20160416T233240;
delete backupset ;
RMAN> backup as compressed backupset database format ''/opt/soft/oracle/rmanbak/whole_%d_%U';
--备份整个数据库并压缩备份集
run{
allocate channel ch2 type disk
maxpiecesize=2g;
backup as compressed backupset
format '/opt/soft/oracle/rmanbak/whole_%d_%U'
database filesperset=3 ;
}
--手动分配一个通道
--指定备份片的大小为2g
--压缩备份集
--指定备份集中允许容纳的文件数为个
--释放通道
run{
allocate channel ch1 type disk
maxpiecesize=1g;
backup format '/opt/soft/oracle/rmanbak/whole_%d_%U' database;
release channel ch1;
}
RMAN> list backupset tag=TAG20101014T171115;
2.备份数据文件
RMAN> backup as copy datafile 4 format '/opt/soft/oracle/rmanbak/df_%d_%U'; --备份类型为镜像备份
list backup;
RMAN> list copy;
RMAN> backup datafile 4 format '/opt/soft/oracle/rmanbak/df_%d_%U'; --备份类型为备份集
3.备份表空间
RMAN> backup tablespace users format '/opt/soft/oracle/rmanbak/tb_%d_%U';
RMAN> backup tablespace temp; --临时表空间不需要备份
4.备份控制文件
RMAN> configure controlfile autobackup on;--自动备份控制文件置为on状态,
将自动备份控制文件和参数文件(强烈建议开启)
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
自动备份控制文件:自动备份打开时,会在把数据文件,日志文件,控制文件,SPfile等等都备份完了后,再自动备份一遍当前的控制文件。
因为你在上面的备份完成后,控制文件里面记载的信息就发生了变化的,自动备份就会把它备一遍。
自动备份关闭时,就不会最后再备一遍了。
4.1) 对比 on off
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
show all;
backup tablespace users;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
show all;
backup tablespace users;
注:在备份system表空间时将会自动备份控制文件和参数文件,即使自动备份控制文件参数为off
--单独备份控制文件及参数文件
RMAN> backup current controlfile;
--备份数据文件时包含控制文件
RMAN> backup datafile 4 include current controlfile;
RMAN> sql "alter database backup controlfile to '/opt/soft/oracle/rmanbak/orclcontrol01.bak'";
RMAN> sql "alter database backup controlfile to trace as '/opt/soft/oracle/rmanbak/orclcontrol02.sql'";
--单独备份spfile
RMAN> backup spfile format ''/opt/soft/oracle/rmanbak/sp_%d_%U';
RMAN> backup copies 2 device type disk spfile;
5.备份归档日志文件
备份归档日志时仅仅备份归档过的文件(不备份联机重做日志文件)
RMAN对归档日志备份前会自动做一次日志切换,
RMAN> backup format '/opt/soft/oracle/rmanbak/lf_%d_%U' archivelog all delete input;
--delete input 删除所有已经备份过的归档日志
RMAN> backup archivelog all delete input format ''/opt/soft/oracle/rmanbak/lf_%d_%U';
--delete input 删除所有已经备份过的归档日志
RMAN> backup archivelog sequence between 50 and 120 thread 1 delete input;
RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";
使用plus archivelog时备份数据库完成的动作(backup database plus archivelog)
1.首先执行alter system archive log current 命令(对当前日志归档)
2.执行backup archivelog all 命令(对所有归档日志进行备份)
3.执行backup database命令中指定的数据文件、表空间等
4.再次执行alter system archive log current
5.备份在备份操作期间产生的新的归档日志
RMAN> backup database plus archivelog format '/opt/soft/oracle/rmanbak/lg_%d_%U' delete input;
backup database plus archivelog delete input;
6.备份闪回区
RMAN> backup recovery area;
7.增量备份
增量备份与完全备份一致,以增量备份为基础,可执行差异增量备份、累积增量备份。
差异备份:是RMAN生成的增量备份的默认类型。对于差异备份来说,RMAN会备份自上一次同级或低级差异增量备份以来所有发生变化的数据块。
累积增量:是备份上级备份以来所有变化的块
Oracle 9i 共有五种级别 0 1 2 3 4,0级最高-4级最低,0级是1级的基础以此类推。
Oracle 10g官方文档明确指出增量备份只有0和1两种级别(太多增量级别其实没有太大的意义),不过实际执行增量操作时,
仍然能够指定多个级别,最大能够支持4级增量备份。
Oracle 11g 增量备份只有0和1两种级别。
Level 0级就是对数据库一个全库备份,增量备份必须从0级开始,也就是说必须要有一个全库备份当基础。
如果你做全库备份oracle也不认为这是level 0的全库备份,尽管是一样的也要单独做一次level 0。
有了level 0当基础才能有后面的 level 1 level 2 level 3 level 4。。
--0级增量备份
RMAN> run{
allocate channel ch1 type disk;
backup incremental level 0 database format '/opt/soft/oracle/rmanbak/db_%d_%U';
release channel ch1;
}
--下面启用1级差异增量备份
RMAN> run{
allocate channel ch1 type disk;
backup incremental level 1 database
format '/opt/soft/oracle/rmanbak/db1_%d_%U';
release channel ch1;
}
run{
allocate channel ch1 type disk;
backup incremental level 1 database;
release channel ch1;
}
--下面启用1级累积增量备份
RMAN> run{
allocate channel ch1 type disk;
backup incremental level 1 cumulative database format '/opt/soft/oracle/rmanbak/dbc_%d_%U'
tag=db_inc_c_1;
release channel ch1;
}
三、备份的其它特性
3.1)并发:主要用于提高备份的速度,可以分为手动并发或自动并发
手动并发:通过分配多个通道并将文件指定到特定的通道
RMAN> run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
allocate channel ch3 device type disk;
backup database
format '/opt/soft/oracle/rmanbak/df_%d_%U';
release channel ch1;
release channel ch2;
release channel ch3;
}
自动并发:使用configure配置并发度即可
RMAN> configure device type disk parallelism 3 backup type to backupset;
--下面的备份将自动启用个通道执行并发
RMAN> backup database format '/opt/soft/oracle/rmanbak/p3_%U';
3.2 复用备份
即将一个备份集复制多份,同一备份集
手工指定:
RMAN> backup copies 2 datafile 4 format '/opt/soft/oracle/rmanbak/df_%U';
backup copies 2 tablespace users format '/opt/soft/oracle/rmanbak/df_%U';
自动指定:配置下列参数
RMAN> configure datafile backup copies for device type disk to 2; --指定备份数据文件副本数
RMAN> configure archivelog backup copies for device type disk to 2;--指定备份日志文件副本数
3.3 镜像备份
RMAN> backup as copy datafile 4 format ''/opt/soft/oracle/rmanbak/users.dbf' tag='users'
OR
RMAN> copy datafile 4 to ''/opt/soft/oracle/rmanbak/user01.dbf';
--使用下面的configure命令将backup type设置为copy之后,则缺省的备份为镜像副本
RMAN> configure device type disk parallelism 1 backup type to copy;
RMAN> backup datafile 4 format ''/opt/soft/oracle/rmanbak/users.dbf.bak'' tag=users;
--由于上面的设置,则此命令备份的将是镜像副本
3.4 压缩备份集
--下面的命令使用了参数as compressed来实现手动压缩
RMAN> backup as compressed backupset database;
--下面使用configure命令配置自动压缩备份集功能,则后续的备份会自动使用压缩功能
RMAN> configure device type disk parallelism 4 backup type to compressed backupset;
--由于设置了自动压缩,则下面的命令将压缩备份的system表空间及控制文件、参数文件
RMAN> backup tablespace users;
3.5.使用tag标记
tag标记可以为备份集或映像副本指定一个有意义的名字,以备后续使用,其优点如下
为备份集或映像副本提供描述信息
能够在list 命令中使用更好的定位备份文件
能够在restore和switch命令中使用
同一个tag在多个备份集或多个映像副本中使用
当未指定tag标记时,则系统产生缺省的tag标记,其格式为:TAGYYYYMMDDTHHMMSS
RMAN> backup as compressed backupset datafile 4 tag='Monthly_full_bak';
RMAN> backup as compressed backupset tablespace users tag='Weekly_full_bak';
RMAN> list backupset tag=monthly_full_bak;
3.6.备份保留策略
保留策略主要是保留备份副本的一些规则,通常用于满足恢复或其他的需要(比如磁盘空间或磁带空间大小限制)
备份保留策略分为冗余和恢复窗口,这两种保留策略互不兼容,要么使用前者,要么使用后者
备份冗余
默认为,可以通过 RMAN> configure retention policy to redundancy 2;
RMAN> backup tablespace users;
RMAN> backup tablespace users;
RMAN> backup tablespace users;
RMAN> list backup;
可以使用report obsolete命令查看备份数多于的备份
RMAN> report obsolete;
并使用delete obsolete来删除过时的备份
RMAN> delete obsolete;
可以使用crosscheck backup;命令查看备份数多于的备份
RMAN> crosscheck backup;
并使用delete expired backup来删除过时的备份
RMAN> delete expired backup;
obsolete 和 expired 区别
obsolete出现主要是由于违背备份的保留策略【废弃】而导致的,删除需用delete obsolete,
而expired是在crosscheck检查备份集是否有效,主要表现在只是系统层面上删了备份,而没有删除备份信息,删除需用delete expired。
操作系统:
mv /opt/soft/recover/ORCL/backupset/2016_04_20/o1_mf_nnndf_TAG20160420T122818_ckg1c2g7_.bkp 1.bkp
rman target /
RMAN> list backup;
RMAN> list expired backup;
RMAN> report obsolete;
RMAN> crosscheck backup;
RMAN> list backup;
RMAN> list expired backup;
RMAN> report obsolete;
恢复窗口
恢复窗口允许完成恢复到过去某个时间点的时点恢复,通常设定为多少天
使用命令RMAN> configure retention policy to recovery window of 7 days
该命令将确保具有足够的数据文件和归档日志来执行能够返回一个星期中任意时间点的不完全恢复,且允许删除随着时间推移
而变为废弃的备份,即应当满足该条件:SYSDATE - BACKUP CHECKPOINT TIME >= 7
对于大于天但是是恢复所需要的备份依然会被保留
清除备份保留策略
RMAN> configure retention policy clear;
3.7.使用BACKUP ... VALIDATE验证数据文件逻辑坏块,
损坏的坏块将被记录到v$database_block_corruption视图
RMAN> BACKUP VALIDATE CHECK LOGICAL tablespace users;
SQL> select * from v$database_block_corruption
四、启用块变化跟踪:快速增量备份
原理:未启动快速增量备份,RMAN备份必须检查数据文件中所有块的变化(SCN),
即扫描所有的数据库,导致备份慢,
启动快速增量备份,块的改变被记录在一个文件中,RMAN只需读取备份记录文件中的块,
加快备份速度。
1)查看数据库是否启动快速增量备份(11G默认不启动)
SQL> select filename from v$block_change_tracking;
2)启动快速增量备份
alter database enable block change tracking;
2.1) 以OMF方式创建存储块改变信息的文件
SQL> alter system set db_create_file_dest='/opt/soft/rman';
SQL> alter database enable block change tracking;
2.2) 直接指定路径
SQL> alter database enable block change tracking using file '/opt/oracle/fast_back';
2.3) 查看块更改的后台进程
ps -ef | grep ctwr
2.4) 执行增量备份
rman target /
backup incremental level=0 database;
backup incremental level=1 database;
--监视块跟踪
select * from v$backup_datafile order by file#;
select file#,avg(datafile_blocks),avg(blocks_read),avg(blocks_read/datafile_blocks)*100 as pct_read_for_backup, avg(blocks)
from v$backup_datafile
where used_change_tracking = 'YES'
and incremental_level > 0
group by file#;
3) 关闭快速增量备份
alter database disable block change tracking;
五、备份相关的动态性能视图及监控
1.相关视图
v$backup_files
v$backup_set
v$backup_piece
v$backup_redolog
v$backup_spfile
v$backup_device
v$rman_configuration
v$archived_log
v$backup_corruption
v$copy_corruption
v$database_block_corruption
v$backup_datafile
2.查看channel对应的server sessions
使用set command id命令
查询v$process和v$session判断哪一个会话与之对应的RMAN通道
SQL> select sid,username,client_info from v$session where client_info is not null;
--下面使用了set command id命令
RMAN> run{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
set command id to 'rman';
backup database
format '/opt/soft/oracle/rmanbak/dd_%U';
}
RMAN> run{
allocate channel ch1 type disk;
set command id to 'rman';
backup database
format '/opt/soft/oracle/rmanbak/dd_%U';
}
SQL> select sid,username,client_info from v$session where client_info is not null;
SQL> select s.sid,s.serial#,spid,client_info from v$process p ,v$session s
where p.addr = s.paddr and client_info like '%id=%'
--查看rman完整的进度
SQL>
select s.sid,s.serial#,s.context,s.sofar,s.totalwork,s.start_time,s.last_update_time,
round(s.sofar/s.totalwork*100,2) "% Complete"
from v$session_longops s
left join (select s.sid,s.serial#,spid,client_info from v$process p ,v$session s
where p.addr = s.paddr and client_info like '%id=%') p
on s.sid=p.sid and s.serial#=p.serial#
where s.opname like 'RMAN:%'
and s.totalwork!=0
select s.sofar/s.totalwork ,s.* from v$session_longops s
where s.opname like 'RMAN:%'
and s.totalwork!=0 order by start_time desc
v$session_longops显示运行超过6秒的操作的状态。包括备份,恢复,统计信息收集,查询等等。
数据库重启后,无法查到
六:RMAN 调优
1:配置RMAN多路技术:RMAN可以同时读取多个文件,然后将数据块写入到同一个备份片中。
FILESPERSET和MAXOPENFILES默认值分别是63 和 8
run{
allocate channel ch1 type disk;
allocate channel ch2 type disk;
backup database FILESPERSET 4;
release channel ch1 ;
release channel ch2 ;
}
2:配置RMAN使用异步I/O
启用异步IO(参考启用异步IO)
3.监视异步I/O
为了监视异步I/O操作,使用动态性能视图V$BACKUP_ASYNC_IO。重要的监视列如下:
IO_COUNT:在文件中执行的I/O数量。
LONG_WAITS:备份或还原进程必须告知OS等待I/O完成的次数。
SHORT_WAIT_TlME_TOTAL:非阻塞轮询I/O完成占用的总时间(以0.01秒为单位)
LONG_WAIT_TIME_TOTAL:阻塞等待I/O完成占用的总时间(以0.01秒为单位)
如果LONG_WAITS与IO_COUNT的比率达到最大,这很可能是备份过程中的瓶颈。如果SHORT_WAIT_TIME_TOTAL 和 LONG_WAlT_TIME_TOTAL 是非零值,则也指示出现了瓶颈。此示例确定两个包含非零比率的输入文件:
SQL> select long_waits / io_count waitcountratio, filename from v$backup_async_io where io_count > 0 order by long_waits / io_count desc;
对于这个文件而言,可以考虑增加多路复用程度,以便减少或消除备份时的等待时间
4.监视同步I/O
动态性能视图V$BACKUP_SYNC_IO将帮助确定同步I/O操作中的瓶颈以及备份作业的进度。
使用DISCRETE_BYTES_PER_SECOND列来查看操作的I/O比率。
此后将此比率与输出设备(例如磁带设备)的最大比率做比较。如果比率低得多,则可以调整进程,
通过使用并行化或增加通道多路复用级别来提高备份操作的吞吐最
RMAN特点:
1、备份数据库、表空间、数据文件、控制文件、归档日志和SPFILE。目标库必须处于MOUNT状态或OPEN状态。
2、存储频繁执行的备份和恢复操作。放到脚本中执行
3、跳过未用块。
4、执行增量块级备份
5、指定备份限制
6、在备份时检测损坏块。用DBVERIFY工具进行检查
7、自动使用并行化特征提高备份和恢复性能。分配多个CPU、多个通道。
名字参数意义:
/opt/soft/oracle/rmanbak/dd_%U';
常用:_%d_%U
%a:Oracle数据库的activation ID即RESETLOG_ID。
%c:备份片段的复制数(从1开始编号,最大不超过256)。
%d:Oracle数据库名称。
%D:当前时间中的日,格式为DD。
%e:归档序号。
%f:绝对文件编号。
%F:基于"DBID+时间"确定的唯一名称,格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD为日期,QQ是一个1~256的序列。
%h:归档日志线程号。
%I:Oracle数据库的DBID。
%M:当前时间中的月,格式为MM。
%N:表空间名称。
%n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8。比如数据库名JSSBOOK,则生成的名称则是JSSBOOKx。
%p:备份集中备份片段的编号,从1开始。
%s:备份集号。
%t:备份集时间戳。
%T:当前时间的年月日格式(YYYYMMDD)。
%u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称。
%U:默认是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是最常用的命名方式,执行不同备份操作时,生成的规则也不同,如下所示:
生成备份片段时,%U=%u_%p_%c;
生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u;
生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;
生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u。
%Y:当前时间中的年,格式为YYYY。
注:如果在BACKUP命令中没有指定FORMAT选项,则RMAN默认使用%U为备份片段命名。
零级备份脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0 tag 'db0' format '/opt/soft/oracle/rmanbak/db0%u_%s_%p' database;
release channel c1;
release channel c2;
}
一级备份脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1 tag 'db1' format '/opt/soft/oracle/rmanbak/db1%u_%s_%p'database ;
release channel c1;
release channel c2;
}
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
----- 并行定义通道个数, 通道定义了通道属性。
例子1 :
RMAN> configure device type disk parallelism 4;
RMAN> configure channel 1 device type disk;
RMAN> configure channel 2 device type disk;
注意: 在上面的配置中,将开启四个通道, 通道1,2采用用户的配置,3,4采用默认配置 。
例子2 :
RMAN> configure device type disk parallelism 3;
RMAN> configure channel 1 device type disk;
RMAN> configure channel 2 device type disk;
RMAN> configure channel 3 device type disk;
RMAN> configure channel 4 device type disk;
注意: 这时,RMAN将忽略parallelism 的设置,而以用户设置的通道为准。
maxpiecesize 用于设置备份片的大小 。比如备份片最大大小为2000M, 那么一个5G 的数据文件必须跨备份片进行备份,
但是一个数据文件不能跨多个备份集。 通常一个通道对应一个备份集。
用filesperset控制备份集的尺寸
当指定filesperset参数时,rman比较filesperset与自动计算出来的值(对每个已分配通道的文件数目)
并取其中较小的那个值来保证所有的通道被使用。
如果指定或者通过组合backupSpec语句暗示的文件数目比filesperset要大,
那么rman创建多个备份集来维护正确的速率(ratio);
如果没有指定filesperset,rman比较计算出来的值(文件数目除以已分配的通道)和默认值64,
并取其中较小的那个值来保证所有通道可用。
Rman通常尝试创建足够的备份集以使所有已分配的通道有事可做。
一个例外是通道比要备份的文件还要多
例如:
A. filesperset设置为6,数据文件数目为30,通道数据为4,通过30/4可以得出每个
备份集可含有8个文件,取6和8中较小的值6,那么30/6=5个备份集,那么4个通道肯定都有任务。
B. 如果不指定filesperset,假设数据文件数目为30,通道数据为4,通过30/4可以
得出每个备份集可含有8个文件,比较8和默认值64,我们取其中较小的8,那么也可以保证4个通道都有事情可做
--maxpiecesize
run{
allocate channel ch1 type disk;
maxpiecesize=2g;
backup format '/opt/soft/oracle/rmanbak/whole_%d_%U' database;
release channel ch1;
}
--filesperset
run{
allocate channel ch1 type disk ;
backup format '/opt/soft/oracle/rmanbak/whole_%d_%U' database
filesperset=2;
release channel ch1;
}
恢复指导:
RMAN>
1:list failure;
2: advise failure;
3: repair failure;
4: change failure;