rman备份跳过read only数据文件,减少备份总量,加快备份时间

客户需求,RMAN备份时间过长,想缩短备份时间,优化备份。

客户基于表空间进行历史数据归档的方式,将历史的表空间进行read only,想让RMAN跳过只读表空间,减少RMAN备份的数据总量,从而缩短备份时间。

SQL> alter tablespace test read only;

SQL> select segment_name,owner from dba_segments where tablespace_name='TEST';
SEGMENT_NAME      OWNER
------------------------------
EMP1              SCOTT

SQL> select * from scott.emp1;
     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM    DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                  20

SQL> delete scott.emp1;
delete scott.emp1
             *1 行出现错误:
ORA-00372: 此时无法修改文件 7
ORA-01110: 数据文件 7: 'C:\WIN_ORACLE_11_DATABASE\APP\ORADATA\WIN11\TEST01.DBF'

开启备份优化,对read only 无效,并不会跳过read only的备份
RMAN> run {
  CONFIGURE BACKUP OPTIMIZATION ON;
  backup as compressed backupset database format 'C:\win_oracle_11_database\rmanbackup\db\FULLBAK_%U_%d_%s.bak';
 }

通过参数设置
RMAN>run {
 CONFIGURE BACKUP OPTIMIZATION ON;
  CONFIGURE RETENTION POLICY TO NONE; 
 backup as compressed backupset database format 'C:\win_oracle_11_database\rmanbackup\db\FULLBAK_%U_%d_%s.bak';
}

当第二次备份时,将跳过已备份的文件,但是由于RMAN保留参数配置为默认值,无法删除历史的备份文件,浪费空间存储,不符合实际情况。

使用如下参数,将无法进行跳过read only备份
RMAN>run {
 CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
 backup as compressed backupset database format 'C:\win_oracle_11_database\rmanbackup\db\FULLBAK_%U_%d_%s.bak';
}

使用SKIP READO参数进行备份
RMAN> delete backup;
RMAN>run {
 CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
 backup as compressed backupset database SKIP READONLY format 'C:\win_oracle_11_database\rmanbackup\db\FULLBAK_%U_%d_%s.bak';
}

加上参数SKIP READONLY 即可
知识兔
RMAN>run { CONFIGURE RETENTION POLICY TO REDUNDANCY 2; backup as compressed backupset
database SKIP READONLY format 'C:\win_oracle_11_database\rmanbackup\db\FULLBAK_%U_%d_%s.bak'; }
计算机