rman命令

点击数:1462发布日期:2020-04-20 13:47:34 来源:老鹰

rere
list backup summary;


rman>connect target sys/…@db;
rman>connect catalog catalog/catalog@catalog;
rman>list backup summary; --检查备份集的总体情况
rman>list backup;  --检查备份集
rman>list backup of datafile ‘’; --检查文件的备份情况






restore archivelog  from sequence x  until sequence y






--增量备份0
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’ 
database skip readonly;
sql ‘alter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ 
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}




--
run {
backup incremental level 0 tag 'ora1' format '/oracle/backup/rman/db0%u_%s_%p'
database skip readonly;
sql 'alter system archive log current';
backup archivelog all format '/oracle/backup/rman/arch%u_%s_%p' delete all input;
}






run {
backup incremental level 1 tag 'ora1' format '/oracle/backup/rman/db0%u_%s_%p'
database skip readonly;
/
backup archivelog all format '/oracle/backup/rman/arch%u_%s_%p' delete all input;
}










RMAN全库备份脚本:




ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;


crosscheck archivelog all;


run{


allocate channel c1 type disk maxpiecesize 50m;


allocate channel c2 type disk maxpiecesize 50m;


configure backup optimization on;


#retention policy


configure retention policy to REDUNDANCY 1;


#backup controlfile


configure controlfile autobackup on;


configure controlfile autobackup format for device type disk to  'd:\orabackup\controlfile_%F';


#backup datafile


backup database format 'd:\orabackup\%U.dbf'


skip inaccessible filesperset 2


plus archivelog filesperset 2


delete all input;


release channel c1;


release channel c2;


}


delete expired  archivelog all;


#delete obsolete


crosscheck backupset;


delete noprompt obsolete;




--
report obsolete device type sbt;
















修改参数NLS_DATA_LANGUAGE=AMERICAN
        NLS_DATA_FORMAT=MON DD YYYY HH24:MI:SS
--创建用户rman
create tablespace rman_ts datafie 'c:\oracle\oradata\rmants.dbf' size 20m
default storage(
initial 100k
next 100k
pctincrease 0)


create user rman identified by rman  
default tablespace rman_ts 
Temporary tablespace temp 
quota unlimited on rman_ts 


grant recovery_catalog_owner to rman; 
grant connect,resource to rman; 


--使用rman
>rman
--创建恢复目录
RMAN>create catalog tablespace rman_ts
RMAN>connect target system/manager
RMAN>register database;
RMAN>resync catalog;


--全部备份
RMAN>Run {
     allocate channel c1 type disk;
     backup full filesperset 3
     (database format 'e:\bk\full_%p%d.%s');}


--备份表空间users, 注意表空间名大写
RMAN>run{
         backup tablespace users format '/orabak/users_%t%s.%p';
        }


--备份数据文件
RMAN>run{
         allocate channel c1 type disk;
         backup datafile 'c:\oracle\oradata\tulip\user01.dbf'
         format 'e:\bk\user\%t%s.%p';
        }


--备份控制文件
RMAN>run{
         allocate channel 1 c1 type disk;
         backup current controfile format 'e:\bk\users%t%s.%p';
        }


--备份归档文件
RMAN>run{
         allocate channel c1 type disk;
         backup archivelog all
         format 'e:\bk\arc_%t%s.%p';}


--查看标记为丢弃的备份
RMAN>report obsolete


--删除过期的备份
RMAN>delete obsolete
RMAN>delete noprompt obsolete  无需确认立既删除


--看参数配置
RMAN>show all


--配置保留策略为冗余2
RMAN>configure retention policy to redundancy 2;


--配置default device type
rman>configure default device type to sbt;


--将某项预定义配置恢复为默认置
rman>configure default device type clear;
RMAN> configure retention policy clear;


--检查备份文件是否存在
RMAN>crosscheck backup;


--删除过期的备份
RMAN>delete expired backup;


--验证日志文件
RMAN>crosscheck archivelog all;


--删除缺失的归档日志信息
RMAN>delete noprompt expired archivelog all;


--验证归档日志文件
crosscheck archivelog all;


--设置控制文件自动备份
RMAN>configure controlfile autobackup on;


--查询是否自动备份
RMAN>show controlfile autobackup;
sql>select * from v$rman_configuration;


--完整的全备份脚本
RMAN>run{
         allocate channel c1 type disk;
         backup full tag 'dbfull' format '/path/full%u_%s_%p' database
         include current controlfile;
         sql 'alter system archive log current';
         backup fileaperset 3 format '/path/arch%u_%s_%p'
         archivelog all delete input;
         release channel c1;
        }


--rman不使用Catalog的配置


C:>rman nocatalog
RMAN>connect target /


--9i全备脚本
run {
backup full tag 'ebank' database
include current controlfile format '/oradata/others/backup/ebankfull_%d_%T_%s'
plus archivelog format '/oradata/others/backup/ebankarch_%d_%T_%s' delete all input;
}


--10G全备脚本
run {
backup full tag 'xddb' database
include current controlfile format '/orabak/xddbfull_%d_%T_%s'
plus archivelog format '/orabak/arch_%d_%T_%s' delete all input;
}


--全备份不成功解决
backup archivelog all delete input;
crosscheck archivelog all;
delete expired archivelog all;


 crosscheck backup;
delete expired backup;


--查看恢复进度
select * from v$recovery_progress;
select * from V$instance_recovery;


--数据库全备份的脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag ‘dbfull’ format ‘/u01/oradata/backup/full%u_%s_%p’ database
include current controlfile;
sql ‘alter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ 
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}


--零级备份的脚本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag ‘db0’ format ‘/u01/oradata/backup/db0%u_%s_%p’ 
database skip readonly;
sql ‘alter system archive log current’;
backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’ 
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}




--时间点恢复的例子
startup mount instance_name;
recover database until time '2019-05-28:08:40:00';






















select sysdate from dual;
select count(*) from t;
$ export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
$ rman target /
RMAN> run {
set until time '2005-04-05 09:26:55';
restore database;
recover database;
}
alter database open resetlogs;
exit
select count(*) from t;






run {
set until sequence=83469 thread 1;
recover database;
}










--用全备恢复数据库
restore database;
recover database;


--基于表空间的恢复
a. rman target /
b. list backup of datafile 1;
c. startup mount;
d. restore datafile 1;
e. recover tablespace system;
f. alter database open;


--用rman巧命名数据文件(梁世强)
添加一个数据文件时,由于终端的原因,导致数据文件名中包含了隐含字符。
在操作系统和数据库里均无法以数据文件名定位数据文件,用rman对该数据文件进行重命名:
a. 获得该文件的file_id
select file_id from dba_data_files where tablespace_name='BCREG_TS04';
b. 运行rman,执行如下脚本:
c. 把数据库启动到mount状态
run{
sql "alter database backup controlfile to ''/rmandata/backup/3/controlfile_old2''";
copy datafile 172 to '/oradata/bcreg_data3/BCREG_TS04_06.dbf';
set newname for datafile 172 to '/oradata/bcreg_data3/BCREG_TS04_06.dbf';
switch datafile 172;
sql "alter database backup controlfile to ''/rmandata/backup/3/controlfile_new''";
}
上述脚本先将该数据文件copy,再执行set newname对该文件重命名,最后执行switch,切换到新的数据文件名。












--增量备份
其实原理很简单,主要就是弄明白怎么样在做增量备份时确定某个数据块需要备份,哪个不需要 
rman在做1级备份的时候怎么来确定0级备份之后都有哪些数据块做了修改呢?看下面一段 
Each data block in a datafile contains a system change number (SCN), which is the 
SCN at which the most recent change was made to the block. During an incremental 
backup, RMAN reads the SCN of each data block in the input file and compares it to 
the checkpoint SCN of the parent incremental backup. If the SCN in the input data 
block is greater than or equal to the checkpoint SCN of the parent, then RMAN copies 
the block. 
原来block里边也有一个change scn 
也就是说在做level 1级备份的时候,需要扫描所有的数据块并且用块中记录修改的SCN跟level 
0备份时的SCN做比较(备份记录中的Ckp SCN),来确定这个块是否需要备份。所以扫描整个数据文件是不可避免的 ! 
这是传统的rman做增量备份 
……………………………………………………………………
在10g中rman做增量备份不再需要扫描整个数据文件了 
10g引入的新特性 block change tracking: 
Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判定增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。 
RMAN's change tracking feature for incremental backups improves incremental 
backup performance by recording changed blocks in each datafile in a change tracking 
file. If change tracking is enabled, RMAN uses the change tracking file to identify 
changed blocks for incremental backup, thus avoiding the need to scan every block in 
the datafile. 
估计是使用的位图文件做的记录! 


附: 
有爱好的可以看看dump的数据块 
通过下面的查询找一个表对应的数据块 
SQL>; select file_id,block_id,blocks 
2 from dba_extents 
3 where segment_name='EMPLOYEES'; 
FILE_ID BLOCK_ID BLOCKS 
---------- ---------- ---------- 
5 81 8 
SQL>; alter system dump datafile 5 block 81; 
System altered. 


在udump目录找到对应的trc文件,找到dump那段 
Start dump data blocks tsn: 6 file#: 5 minblk 81 maxblk 81 
buffer tsn: 6 rdba: 0x01400051 (5/81) 
scn: 0x0000.00086c4d seq: 0x01 flg: 0x04 tail: 0x4b502001 
后面省略了 


scn: 0x0000.00086c4d是16进制你可以换算过来552013 
你可以尝试做一下修改,不过一定要保证对应的块被修改了,并且被写了,才能反映出来
二:
我们可以用RMAN进行数据库、表空间和数据文件的增量备份。 
如果数据库运行在归档模式,在数据库OPEN状态我们可以进行增量备份;如果数据库处于非归档方式,在数据库CLOSE状态我们也可以进行增量备份。增量备份只备份上次备份以来变化过的数据块。 
每个数据块都包含一个system change number (SCN),记录着该数据块的最后改变。在进行增量备份的时候,RMAN将没给数据块的SCN和父级增量备份的CHECKPOINT SCN进行比较,如果该数据块的SCN大于等于父级的CHECKPOINT SCN,RMAN将备份该数据块。 
为了提高数据库增量备份的性能,我们可以指定变化跟踪文件来监控数据块的改变: 
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'd:/rman_change.f' REUSE;
SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
以通过以下命令查询:
SQL> SELECT FILENAME,STATUS FROM V$BLOCK_CHANGE_TRACKING
移动跟踪文件:
SQL>SELECT filename FROM V$BLOCK_CHANGE_TRACKING;
SQL>SHUTDOWN IMMEDIATE;
SQL>HOST COPY OLDFILE NEWFILE
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE RENAME FILE ‘OLDFILE' TO ‘NEWFILE’; 
SQL>ALTER DATABASE OPEN;
我们可以用RMAN进行数据库、表空间和数据文件的增量备份。 
如果数据库运行在归档模式,在数据库OPEN状态我们可以进行增量备份;如果数据库处于非归档方式,在数据库CLOSE状态我们也可以进行增量备份。增量备份只备份上次备份以来变化过的数据块。 
每个数据块都包含一个system change number (SCN),记录着该数据块的最后改变。在进行增量备份的时候,RMAN将没给数据块的SCN和父级增量备份的CHECKPOINT SCN进行比较,如果该数据块的SCN大于等于父级的CHECKPOINT SCN,RMAN将备份该数据块。 
为了提高数据库增量备份的性能,我们可以指定变化跟踪文件来监控数据块的改变: 
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'd:/rman_change.f' REUSE;
SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;


可以通过以下命令查询:
SQL> SELECT FILENAME,STATUS FROM V$BLOCK_CHANGE_TRACKING
移动跟踪文件:
SQL>SELECT filename FROM V$BLOCK_CHANGE_TRACKING;
SQL>SHUTDOWN IMMEDIATE;
SQL>HOST COPY OLDFILE NEWFILE
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE RENAME FILE ‘OLDFILE' TO ‘NEWFILE’; 
SQL>ALTER DATABASE OPEN;


注意:
如果不能关闭数据库,必须禁用跟踪文件然后移动跟踪文件:
ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 'new_location';




SELECT FILE#, INCREMENTAL_LEVEL, COMPLETION_TIME, BLOCKS, DATAFILE_BLOCKS
FROM V$BACKUP_DATAFILE
WHERE INCREMENTAL_LEVEL > 0
AND BLOCKS / DATAFILE_BLOCKS > .5
ORDER BY COMPLETION_TIME;
1、切换服务器归档模式,如果已经是归档模式可跳过此步:
  %sqlplus /nolog (启动sqlplus)
  SQL> conn / as sysdba (以DBA身份连接数据库)
  SQL> shutdown immediate; (立即关闭数据库)
  SQL> startup mount (启动实例并加载数据库,但不打开)
  SQL> alter database archivelog; (更改数据库为归档模式)
  SQL> alter database open; (打开数据库)
  SQL> alter system archive log start; (启用自动归档)
  SQL> exit (退出)
  2、连接:
  %rman target=rman/rman@mydb (启动恢复管理器)
  3、基本设置:
  RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
  RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
  RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
  RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
  RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)
  RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)
  4、查看所有设置:
  RMAN> show all
  5、查看数据库方案报表:
  RMAN> report schema;
  6、备份全库:
  RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)
  7、备份表空间:
  RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)
  8、备份归档日志:
  RMAN> backup archivelog all delete input;
  9、复制数据文件:
  RMAN> copy datafile 1 to '/oracle/dbs/system.copy';
  10、查看备份和文件复本:
  RMAN> list backup;
  11、验证备份:
  RMAN> validate backupset 3;
  12、从自动备份中恢复服务器参数文件:
  RMAN> shutdown immediate; (立即关闭数据库)
  RMAN> startup nomount; (启动实例)
  RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)
  13、从自动备份中恢复控制文件:
  RMAN> shutdown immediate; (立即关闭数据库)
  RMAN> startup nomount; (启动实例)
  RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)
  13、恢复和复原全数据库:
  RMAN> shutdown immediate; (立即关闭数据库)
  RMAN> exit (退出)
  %mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)
  %mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)
  %mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)
  %mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)
  %rman target=rman/rman@mydb (启动恢复管理器)
  RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)
  RMAN> restore database; (还原数据库)
  RMAN> recover database; (恢复数据库)
  RMAN> alter database open; (打开数据库)
  14、恢复和复原表空间:
  RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)
  RMAN> exit (退出恢复管理器)
  %mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)
  %rman target=rman/rman@mydb (启动恢复管理器)
  RMAN> restore tablespace users; (还原表空间)
  RMAN> recover tablespace users; (恢复表空间)
  RMAN> sql 'alter tablespace users online'; (将表空间联机)
  15、增量备份与恢复:
  第一天的增量基本备份:
  RMAN> backup incremental level=0 database plus archivelog delete input;
  第二天的增量差异备份:
  RMAN> backup incremental level=2 database plus archivelog delete input;
  第三天的增量差异备份:
  RMAN> backup incremental level=2 database plus archivelog delete input;
  第四天的增量差异备份:
  RMAN> backup incremental level=1 database plus archivelog delete input;
  第五天的增量差异备份:
  RMAN> backup incremental level=2 database plus archivelog delete input;
  第六天的增量差异备份:
  RMAN> backup incremental level=2 database plus archivelog delete input;
  第七天的增量差异备份:
  RMAN> backup incremental level=0 database plus archivelog delete input;
  增量恢复:
  RMAN> shutdown immediate;
  RMAN> exit
  %mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
  %mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
  %mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
  %mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
  %rman target=rman/rman@mydb
  RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
  RMAN> restore database;
  RMAN> recover database;
  RMAN> alter database open;
四:oracle 10g
************************************************************用下面的备份方法的时候要分析具体的情况和数据资源的应用
增量追加备份工作原理:首先创建一个文件镜像拷贝,然后定期把从上次镜像拷贝最大SCN以来变化的数据块追加到镜像拷贝文件中。增量追加备份可以达到快速恢复的目的,如果是每天进行增量追加的话,在进行恢复的时候,我们最多应用一天的REDO数据就可以完成恢复。 
创建增量追加备份,格式如下: 
BACKUP... FOR RECOVER OF COPY WITH TAG
一个基础的增量追加备份示例:简称basic脚本:
RUN ...{
RECOVER COPY OF DATABASE WITH TAG 'incr_update';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update'
DATABASE;
}


为了理解上述脚本,我们先看一下如果没有数据文件拷贝和增量备份运行这两个脚本的情况。 
1、如果没有LEVEL0备份或者备份文件拷贝,执行BACKUP INCREMENTAL LEVEL 1... FOR RECOVER OF COPY WITH TAG...不能产生LEVEL1增量备份文件,但是RMAN会按照指定的tag在DATAFILE对应的目录下创建一分镜像文件拷贝。 
2、如果没有LEVEL0备份或者备份文件拷贝,执行RECOVER COPY OF DATABASE WITH TAG...则生成一些信息但是不产生错误。 
我们看一下整个basic脚本的执行情况: 
第一次运行该脚本没有数据文件拷贝和增量备份所以执行RECOVER COPY OF DATABASE WITH TAG 'incr_update'没有任何结果;执行BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE将产生数据文件的镜像文件拷贝。 
第二次运行该脚本,由于第一次运行的时候BACKUP INCREMENTAL LEVEL 1... FOR RECOVER OF COPY WITH TAG...命令产生一个镜像文件拷贝,但是没有LEVEL1的增量备份,所以执行RECOVER COPY OF DATABASE WITH TAG 'incr_update'还是没有任何结果;执行BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE将产生LEVEL1增量备份。 
第三次运行该脚本,执行RECOVER COPY OF DATABASE WITH TAG 'incr_update'命令将把第二次执行该脚本产生的LEVEL1增量备份追加到镜像文件拷贝,同时又产生一个新的LEVEL1增量备份文件。 
以后再执行该脚本都是把上次产生的LEVEL1的增量备份追加到镜像文件拷贝,然后再产生一个新的LEVEL1的增量备份文件。 
如果需要恢复,我们首先恢复镜像文件拷贝和最后一次LEVEL1增量备份,最后应用REDO。 
1




restore spfile to '/tmp/spfileeygle.ora' from autobackup;




CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/ora_df%t_s%s_s%p';
%t --表示唯一时间戳
%s --备份集号
%p --备份片号








recover database noredo
































rman> configure channel device type disk rate 1k ;


rman> backup validate database;






--RMAN备份进度查询


SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,TIME_REMAINING,
ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0
AND SOFAR <> TOTALWORK;






--RMAN备份进度查询
SELECT s.sid,
s.serial#,
s.machine,sl.opname,sl.target,sl.message,s.program,sl.sql_hash_value,
TRUNC(sl.elapsed_seconds/60) || ':' || MOD(sl.elapsed_seconds,60) elapsed,
TRUNC(sl.time_remaining/60) || ':' || MOD(sl.time_remaining,60) remaining,
ROUND(sl.sofar/sl.totalwork*100, 2) progress_pct
FROM v$session s,
v$session_longops sl
WHERE s.sid = sl.sid
AND s.serial# = sl.serial#
AND sl.totalwork>0
AND sl.sofar<>sl.totalwork;






set linesize 190
col sid for 99999
col MACHINE for a11
col OPNAME for a25
col TARGET for a6
col MESSAGE for a25
col PROGRAM for a25
col SQL_HASH_VALUE for 999999999999
col ELAPSED for a5
col REMAINING for a5
set wrap off
SELECT s.sid,
s.machine,sl.opname,sl.target,s.program,sl.sql_hash_value,
TRUNC(sl.elapsed_seconds/60) || ':' || MOD(sl.elapsed_seconds,60) elapsed,
TRUNC(sl.time_remaining/60) || ':' || MOD(sl.time_remaining,60) remaining,
ROUND(sl.sofar/sl.totalwork*100, 2) progress_pct
FROM v$session s,
v$session_longops sl
WHERE s.sid = sl.sid
AND s.serial# = sl.serial#
AND sl.totalwork>0
AND sl.sofar<>sl.totalwork;










log_archive_min_succeed_dest 最少成功数
v$rman_configuration
configure device type disk parallelism 2;
configusr channel 1 device type disk format 'd:\backup_%U';
configusr channel 2 device type disk format 'e:\backup_%U';
configusr channel 1 device type disk maxpiecesize 100m;
configusr channel 1 device type disk maxpiecesize 10m;有必要。限制每个备份文件的大小。
configure maxsetsize to 1000m;
configure maxsetsize to unlimited;




configure maxpiecesize 10g;












命令报告过期备份
RMAN>report obsolete;     
命令删除过期备份      
RMAN>delete obsolete;         
RMAN>delete backup;
















run {
allocate channel c1 type 'sbt_tape' parms
'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
allocate channel c2 type 'sbt_tape' parms
'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
backup
incremental level 0 cumulative
filesperset 5
format 'db_%t_%s_%p'
(database);
}




--backup all
run {
BACKUP DATABASE include current controlfile;
BACKUP ARCHIVELOG ALL;
}




--
list incarnation;




--show,list,crosscheck,delete 
RMAN> show all;
2、REPORT命令:
RMAN> report schema                        报告目标数据库的物理结构;
RMAN>report need backup days=3;            报告最近3天没有被备份的数据文件;
RMAN> report need backup days 3 tablespace users;   在USERS表空间上3天未备份的数据文件;
RMAN> report need backup incremental 3;    报告恢复数据文件需要的增量备份个数超过3次的数据文件;
RMAN> report need backup redundancy 2 database;           报告备份文件低于2份的所有数据文件;
RMAN>report need backup redundancy=2;
RMAN> report need backup recovery window of 6 days;    报告文件报表的恢复需要超过6天的归档日志的数据文件;
RMAN> report unrecoverable;      报告数据库所有不可恢复的数据文件;
RMAN> report obsolete redunndancy 2; 报告备份次数超过2次的陈旧备份;
RMAN>report obsolete;          报告多余的备份;


RMAN>list backup         列出详细备份;
RMAN>list expired backup     列出过期备份;
RMAN> list backup of database;     列出所有数据文件的备份集;
RMAN> list backup of tablespace user01; 列出特定表空间的所有数据文件备份集;
RMAN> list backup of controlfile     列出控制文件备份集;
RMAN> list backup of archivelog all      列出归档日志备份集详细信息;
RMAN>list archivelog all;      列出归档日志备份集简要信息
RMAN> list backup of spfile              列出SPFILE备份集;
RMAN> list copy of datafile 5        列出数据文件映像副本;
RMAN> list copy of controlfile           列出控制文件映像副本;
RMAN> list copy of archivelog all    列出归档日志映像副本;
RMAN> list incarnation of database       列出对应物/列出数据库副本;
RMAN>list backup summary;    概述可用的备份;
         表示backup
         表示FULL
         表示archive log
           表示incremental backup
         说明备份状态(A AVAILABLE   X EXPIRED )


MAN>list backup by file    按备份类型列出备份;
            按照数据文件备份,归档日志备份,控制文件备份,服务器参数文件备份 列出
CHECK命令:校验备份信息
RMAN> crosscheck backup             核对所有备份集;   
RMAN> crosscheck backup of database      核对所有数据文件的备份集;   
RMAN> crosscheck backup of tablespace users      核对特定表空间的备份集;   
RMAN> crosscheck backup of datafile 4    核对特定数据文件的备份集;   
RMAN> crosscheck backup of controlfile   核对控制文件的备份集;   
RMAN> crosscheck backup of spfile    核对SPFILE的备份集;   
RMAN> crosscheck backup of archivelog sequence 3 核对归档日志的备份集;   
RMAN> crosscheck copy               核对所有映像副本;   
RMAN> crosscheck copy of database       核对所有数据文件的映像副本;   
MAN> crosscheck copy of tablespace users       核对特定表空间的映像副本;   
MAN> crosscheck copy of datafile 6        核对特定数据文件的映像副本;   
MAN> crosscheck copy of archivelog sequence 4  核对归档日志的映像副本;   
MAN> crosscheck copy of controlfile       核对控制文件的映像副本;  
MAN> crosscheck backup tag='SAT_BACKUP';
MAN> crosscheck backup completed after 'sysdate - 2'
MAN> crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
MAN> crosscheck backup device type sBT;
MAN> crosscheck archivelog all;
MAN> crosscheck archivelog like '%ARC00012.001'
MAN> crosscheck archivelog from sequence 12;
MAN> crosscheck archivelog until sequence 522;
E:删除备份
RMAN> delete obsolete;      删除陈旧备份;
RMAN> delete expired backup; 删除EXPIRED备份     
RMAN> delete expired copy;   删除EXPIRED副本;
RMAN> delete backupset 19;   删除特定备份集;
RMAN> delete backuppiece ''d:\backup\DEMO_19.bak''   删除特定备份片;
RMAN> delete backup      删除所有备份集;
RMAN> delete datafilecopy ''d:\backup\DEMO_19.bak''  删除特定映像副本;
RMAN> delete copy   删除所有映像副本;
RMAN> 


 all delete input;
RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input
               在备份后删除输入对象;
RMAN> delete backupset id;
























配置RMAN默认设置
show default device type;              show maxsetsize;        show retention policy;              show all;


配置用于指定默认通道的默认值及清除通道
configure channel device type (ORA_DISK_N  ORA_SBT_TAPE_N)
configure channel n device type 
configure channel n device type clear          configure channel n device type clear
配置设备
configure default device type to sbt;configure default device to disk;


configure device type disk backup type to backupset;
configure device type disk backup type to compressed backupset;
configure device type disk backup type to copy;
configure device type disk parallelism 4;
configure channel 1 device type disk format '/.../backup_%U';
configure channel 2 device type disk format '/.../backup_%U';
限制。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
CONFIGure channel 1 device type disk maxpiecesize 100m maxopenfiles 8 rate 100m->每个备份最大为100,该通道最多打开8个文件,限制为100m以内的吞吐量
configure channel device type disk maxpiecesize 100m-->限制所有通道。
configure channel device type sbt maxpiecesize 100m-->修改默认设备为磁盘
configure maxsetsize to 20G; ----------------------->限定整个备份集。
configure maxsetsize clear--------------------------->没有限制
clear -----------------》修改为默认选项。
configure channel1 device type disk clear------------------>默认通道一
configure datafile backup copies for device type disk to 2--->任何备份到磁盘上的备份都将被复制,拥有两个副本。
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10g/db_1/dbs/snapcf_rman.f'; ->快照文件
configure exclude for tablespace old_data:------------------->排除一个表空间。
configure backup optimization on------------------------------->启动优化(启动时,会是ORACLE跳过在备份设备上已有相同备份文件的备份)
configure channel 1 device type disk format '/.../backup_%U';----->使用格式串参考69面的内容
CONFIGURE CONTROLFILE AUTOBACKUP OFF;/ON ----------------》控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP format for device type disk to '/.../backup_%F';----->控制文件备份到指定目录。
configure retention policy to recovery window of 3 days---->配置三天的保存策略


report obsolete;----->查看生成过 已作废的备份。
delete obsolete;------>删除 crosscheck 就无须确认


配置默认的加密级别 此例是口令 模式 。参考73面。
RMAN> configure encryption for database on;


RMAN> set encryption on identified by oracle only;


executing command: SET encryption


RMAN> backup database plus archivelog;


配置归档日志删除策略
configure archivelog deletion policy to applied on standby -------->一旦成功将归档的重做日志应用于强制的备用数据库位置,则将其从FRA中删除


配置服务器共享
rob1_sid=
    (DESCRIPTION=
        (ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= ))
        (CONNECT_DATA=(SERVICE_NAME= )(SERVICER=dedicated))
    )






















RMAN> backup database;


 


RMAN> configure backup optimization on;


RMAN> backup database;


RMAN> backup database force; /* 在开启备份优化的情况下,强制备份只读的数据文件 */


备份优化会使RMAN默认不备份没有发生变化的表空间(例如只读表空间)。但要执行一个忽略这个配置的特定备份操作,可以使用force参数来确保备份所有数据文件。


 


RMAN> configure exclude for tablespace ts;  /* 配置备份时不备份表空间 ts */
RMAN> backup database;


RMAN> backup database noexclude;  /* 在开启exclude设置时,仍然备份被exclude的表空间 */
 


RMAN> backup database force noexclude;  /* 确保完整备份数据库 */
在开启备份优化的情况下,备份包括只读数据文件;在开启exclude表空间的情况下,备份包括exclude的表空间。


 


RMAN> backup database plus archivelog;  /* 备份数据库和所有日志 */
RMAN> backup database plus archivelog delete input; /* 同上,并将已备份的日志删除 */
RMAN> backup database archivelog all;  


RMAN> backup database archivelog all delete input;  


关于plus archivelog 与 archivelog all的区别,参考下边的:备份数据文件的同时备份归档文件,其区别是一样的。


 


RMAN> backup tablespace system, users;


RMAN> backup tablespace system plus archivelog ;


RMAN> backup tablespace system archivelog all;


 


 


RMAN> backup validate database;  /* 坏块记录到v$database_block_corruption */


RMAN> backup validate tablespace system;


RMAN> backup validate database archivelog all; 


RMAN> backup as compressed backupset database;  /* 压缩备份 */
 


 


RMAN> backup as copy …   /* Image Cpoy */
 


Image Copy备份database的方法:


RMAN> backup as copy database;


 


Image Copy备份datafile的方法:


RMAN> backup as copy


2> datafile '/u02/oradata/zydev/users01.dbf'


3> format   '/u01/BACKUP/users01.dbf';


 


/* 备份时不检查坏块 */


RMAN> backup as copy nochecksum


2> datafile '/u02/oradata/zydev/users01.dbf'


3> format   '/u01/BACKUP/users01.dbf';


 


/* 重写已经存在的备份集或映像拷贝 */


RMAN> backup as copy reuse


2> datafile '/u02/oradata/zydev/users01.dbf'




3> format '/u01/BACKUP/users01.dbf';


 


RMAN> delete copy of datafile 4;


RMAN> delete copy of datafile '/u02/oradata/zydev/users01.dbf';


 


Image Copy备份archivelog的方法:


RMAN> backup as copy


2> archivelog like '/FRA_PATH/o1_mf_1_26_5t0mp0q6_.arc'


3> format '/u01/BACKUP/o1_mf_1_26_5t0mp0q6_.bak';


 


RMAN> delete copy of archivelog like '/u01/BACKUP/o1_mf_1_26_5t0mp0q6_.bak';


 


Image Copy同时备份datafile和archivelog的方法:


 


RMAN> run {


2> allocate channel c1 type disk;


3> copy


4> datafile '/u02/oradata/zydev/users01.dbf' 


5> to '/u01/BACKUP/users01.dbf',


6> archivelog  '/FRA_PATH/o1_mf_1_26_5t0mp0q6_.arc'


7> to '/u01/BACKUP/o1_mf_1_26_5t0mp0q6_.bak';


8> }


 


 


备份数据文件的同时备份归档文件:


RMAN> report schema;


RMAN> backup datafile 1 plus archivelog;


RMAN> backup datafile 1 plus archivelog delete input;


RMAN> backup datafile 1 archivelog all;


RMAN> backup datafile 1 archivelog all delete input;


注意:plus archivelog 与 archivelog all的区别,plus archivelog 在备份时先备份归档文件且对当前redo进行了归档,然后再备份数据文件,接下来是控制文件和spfile,最后是再对当然redo进行归档并进行备份。而archivelog all则是先备份数据文件,然后再备份归档(有时也是先备份归档,然后再备份数据文件),且不对当前的redo进行归档,最后备份控制文件和spfile。当使用archvielog all时,如果归档目录中没有归档文件时,将报错。


 


 


备份controlfile和spfile:


RMAN> backup current controlfile;


RMAN> backup current controlfile plus archivelog;


RMAN> backup current controlfile archivelog all;


 


RMAN> backup spfile;


RMAN> backup spfile plus archivelog;


RMAN> backup spfile archivelog all;


 


备份数据库同时备份controlfile、spfile和archivelog:


RMAN> backup database include current controlfile;


RMAN> backup database spfile;


RMAN> backup database include current controlfile spfile;


RMAN> backup database spfile include current controlfile;


RMAN> backup database spfile include current controlfile plus archivelog;


RMAN> backup database spfile include current controlfile archivelog all;


 


单独备份归档:


RMAN> backup archivelog all;


RMAN> backup archivelog all force;  /* 有关信息Backup Optimization */


RMAN> backup archivelog all delete input;


RMAN> backup archivelog all delete all input;


注意:单独备份日志时,会首先对当前日志进行归档(归档目录当前可以没有归档日志),然后备份,不备份spfile和controlfile。  delete input 选项的意思是归档备份后删除已备份的归档。在存在多个归档路径时, dete all input 用于备份后删除归档目录中的所有的归档(9i引入的选项)。


 


 


 


只备份新添加数据文件:


SQL> create tablespace ts datafile '/u02/oradata/zydev/ts01.dbf' size 10m;


 


RMAN> backup database not backed up;


 


备份在限定时间内没有备份的文件:


RMAN> backup database not backed up since time='sysdate-2';














































1、设置备份的并行度,使多个cpu同时工作,提高备份速度。


2、搞明白expired


3、搞明白obsolete


4、在rman中设置时间格式






1、设置备份的并行度,使多个cpu同时工作,提高备份速度。


2、搞明白expired


3、搞明白obsolete




1、设置备份的并行度,使多个cpu同时工作,提高备份速度。
RMAN> show all;


RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
RMAN configuration has no stored or default parameters
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/oracle/porduct/9.2.0/dbs/snapcf_test.f'; # default


配置了并行度为4,也就是默认开4个通道进行备份,这在多cpu的情况下可以提高备份速度。
测试一下:
Recovery Manager: Release 9.2.0.4.0 - Production


Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.


RMAN> connect target /
2> run{
3> copy 
4> datafile 4 to '/share/4.dbf',
5> datafile 5 to '/share/5.dbf',
6> datafile 6 to '/share/6.dbf',
7> datafile 7 to '/share/7.dbf';
8> }
9> 
connected to target database: TEST (DBID=1862890406)


Starting copy at 16-SEP-05
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=12 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=16 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=17 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=18 devtype=DISK
channel ORA_DISK_2: copied datafile 5
output filename=/share/5.dbf recid=1 stamp=569158719
channel ORA_DISK_1: copied datafile 4
output filename=/share/4.dbf recid=3 stamp=569158740
channel ORA_DISK_3: copied datafile 6
output filename=/share/6.dbf recid=2 stamp=569158737
channel ORA_DISK_4: copied datafile 7
output filename=/share/7.dbf recid=4 stamp=569158755
Finished copy at 16-SEP-05


Starting Control File and SPFILE Autobackup at 16-SEP-05
piece handle=/u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-01 comment=NONE
Finished Control File and SPFILE Autobackup at 16-SEP-05


Recovery Manager complete.


确实是开了4个通道,而且每个文件的备份都占用了一个通道,可惜只有1个cpu,要是多个cpu,速度就应该能提高了。
改成2个并行度试试,
RMAN> configure device type disk parallelism 2;


old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
new RMAN configuration parameters are successfully stored


Recovery Manager: Release 9.2.0.4.0 - Production


Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.


RMAN> connect target /
2> run{
3> copy 
4> datafile 4 to '/share/4.dbf',
5> datafile 5 to '/share/5.dbf',
6> datafile 6 to '/share/6.dbf',
7> datafile 7 to '/share/7.dbf';
8> }
9> 
connected to target database: TEST (DBID=1862890406)


Starting copy at 16-SEP-05
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=17 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=16 devtype=DISK
channel ORA_DISK_1: copied datafile 4
output filename=/share/4.dbf recid=6 stamp=569164154
channel ORA_DISK_2: copied datafile 5
output filename=/share/5.dbf recid=5 stamp=569164152
channel ORA_DISK_1: copied datafile 6
output filename=/share/6.dbf recid=7 stamp=569164183
channel ORA_DISK_2: copied datafile 7
output filename=/share/7.dbf recid=8 stamp=569164190
Finished copy at 16-SEP-05


Starting Control File and SPFILE Autobackup at 16-SEP-05
piece handle=/u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-02 comment=NONE
Finished Control File and SPFILE Autobackup at 16-SEP-05


Recovery Manager complete.


只开了2个通道,总结一下,如果在生产环境下,并行度于cpu的数量保持一致,备份速度会提高。


2、搞明白expired
一直弄不清obsolete和expired的区别,作几个实验试试。


RMAN> list backup
2> ;




List of Backup Sets
===================


BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
5 Full 1M DISK 00:00:01 16-SEP-05 
BP Key: 5 Status: AVAILABLE Tag: 
Piece Name: /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-03
SPFILE Included: Modification time: 16-SEP-05


BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
6 Full 1M DISK 00:00:21 16-SEP-05 
BP Key: 6 Status: AVAILABLE Tag: TAG20050916T141929
Piece Name: /u01/oracle/porduct/9.2.0/dbs/06gupkfh_1_1
List of Datafiles in backup set 6
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
3 Full 350737 16-SEP-05 /u01/oracle/oradata/test/example01.dbf


BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
7 Full 1M DISK 00:00:02 16-SEP-05 
BP Key: 7 Status: AVAILABLE Tag: 
Piece Name: /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-04
SPFILE Included: Modification time: 16-SEP-05


先list看一下,有1个example01.dbf的备份和控制文件的自动备份。
然后删除数据文件的备份。


[oracle@vm1 dbs]$ rm -f 06gupkfh_1_1


然后用crosscheck检查备份的状态。


RMAN> crosscheck backup;


using channel ORA_DISK_1
using channel ORA_DISK_2
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-03 recid=5 stamp=569167415
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-04 recid=7 stamp=569168397
Crosschecked 2 objects


crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/u01/oracle/porduct/9.2.0/dbs/06gupkfh_1_1 recid=6 stamp=569168369
Crosschecked 1 objects


检查到 数据文件example01.dbf的备份是expired,再看看list bakcup的结果。


RMAN> list backup;




List of Backup Sets
===================


BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
5 Full 1M DISK 00:00:01 16-SEP-05 
BP Key: 5 Status: AVAILABLE Tag: 
Piece Name: /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-03
SPFILE Included: Modification time: 16-SEP-05


BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
6 Full 1M DISK 00:00:21 16-SEP-05 
BP Key: 6 Status: EXPIRED Tag: TAG20050916T141929
Piece Name: /u01/oracle/porduct/9.2.0/dbs/06gupkfh_1_1
List of Datafiles in backup set 6
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
3 Full 350737 16-SEP-05 /u01/oracle/oradata/test/example01.dbf


BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
7 Full 1M DISK 00:00:02 16-SEP-05 
BP Key: 7 Status: AVAILABLE Tag: 
Piece Name: /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-04
SPFILE Included: Modification time: 16-SEP-05


发现备份集6还在,但status已经是EXPIRED的了。作个测试看这个备份集还能不能用。
关闭数据库,move走example01.dbf,然后试着用rman恢复。


SQL> shutdow immediate
Database closed.
Database dismounted.
ORACLE instance shut down.


[oracle@vm1 test]$ mv example01.dbf example01.dbf.bak


SQL> startup
ORACLE instance started.


Total System Global Area 185668648 bytes
Fixed Size 451624 bytes
Variable Size 117440512 bytes
Database Buffers 67108864 bytes
Redo Buffers 667648 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file
ORA-01110: data file 3: '/u01/oracle/oradata/test/example01.dbf'


RMAN> restore tablespace example;


Starting restore at 16-SEP-05


allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=8 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=14 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/16/2005 14:32:07
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 3 found to restore


在restore时,rman报告没有可用的file 3 的备份,看来备份集6处于expired的状态,已经不能使用了。
这时可以用delete命令删除expired 的backup 。


RMAN> delete expired backup;


allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=8 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=12 devtype=DISK


List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
6 6 1 1 EXPIRED DISK /u01/oracle/porduct/9.2.0/dbs/06gupkfh_1_1


Do you really want to delete the above objects (enter YES or NO)? y
deleted backup piece
backup piece handle=/u01/oracle/porduct/9.2.0/dbs/06gupkfh_1_1 recid=6 stamp=569168369
Deleted 1 EXPIRED objects


小结一下,expired 就是无效的,没用的备份,rman是无法利用这些备份进行恢复的。


3、搞明白obsolete
看文档上说是超出备份保持策略的备份,看来主要目的是及时的删除不需要的备份,释放磁盘空间。
作了3次backup tablespace tools,保持策略设为2,看看report 的结果


RMAN> report obsolete;


RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
Report of obsolete backups and copies
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set 5 16-SEP-05 
Backup Piece 5 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-03
Backup Set 7 16-SEP-05 
Backup Piece 7 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-04
Backup Set 8 16-SEP-05 
Backup Piece 8 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/08gupn4k_1_1
Backup Set 9 16-SEP-05 
Backup Piece 9 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-05
Datafile Copy 5 16-SEP-05 /share/5.dbf


删除多余的备份,


RMAN> delete obsolete;


RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 2
using channel ORA_DISK_1
using channel ORA_DISK_2
Deleting the following obsolete backups and copies:
Type Key Completion Time Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set 5 16-SEP-05 
Backup Piece 5 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-03
Backup Set 7 16-SEP-05 
Backup Piece 7 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-04
Backup Set 8 16-SEP-05 
Backup Piece 8 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/08gupn4k_1_1
Backup Set 9 16-SEP-05 
Backup Piece 9 16-SEP-05 /u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-05
Datafile Copy 5 16-SEP-05 /share/5.dbf


Do you really want to delete the above objects (enter YES or NO)? y
deleted backup piece
backup piece handle=/u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-03 recid=5 stamp=569167415
deleted backup piece
backup piece handle=/u01/oracle/porduct/9.2.0/dbs/c-1862890406-20050916-04 recid=7 stamp=569168397
deleted backu