天天看点

RMAN增量备份-备份保留策略-设置备份集属性

RMAN增量备份:

增量备份级别:0,1,2,3,4

BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份。这种备份不包含增量备份的0级备份,并不支持在此基础上再创建增量备份。

1、建立增量级0级的全库备份

C:\Users\Administrator>RMAN

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 17 21:44:29 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

RMAN> CONNECT TARGET /

连接到目标数据库: ORCL (DBID=1392118573)

RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE;

启动 backup 于 17-12月-14
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=184 设备类型=DISK
通道 ORA_DISK_1: 正在启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件: 文件号=00005 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件: 文件号=00003 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件: 文件号=00004 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 17-12月-14
通道 ORA_DISK_1: 已完成段 1 于 17-12月-14
段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2014_12_17\O1_MF_NNND0_TAG20141217T214527_B9327SYF_.BKP 标记=TAG20141217T214527 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:02:52
完成 backup 于 17-12月-14

启动 Control File and SPFILE Autobackup 于 17-12月-14
段 handle=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2014_12_17\O1_MF_S_866584101_B932F6GY_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 17-12月-14      

2、为数据文件users01.dbf建立增量级别1的备份

RMAN> BACKUP INCREMENTAL LEVVEL=1 DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF';

3、为表空间users建立增量级别1的备份

RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE USERS;

==================

增量备份的类型:

DIFFERENTIAL差异(默认)和CUMULATIVE累积

1、以CUMULATIVE增量备份方式创建数据库的完整备份。

RMAN> BACKUP INCREMENTAL LEVEL=1 CUMULATIVE DATABASE;

====

RMAN在做增量备份时,会把所有的数据文件读入内存,检查每个数据文件的SCN信息,并与增量备份的父备份集相比较来确定块是否被修改过,如果被修改过,则都要进行重新备份。ORACLE10G后有个新的特性:块修改跟踪(Block Change Tracking)。启动块修改跟踪后,RMAN不再去扫描数据文件中的每一个块,直接通过块修改跟踪文件就可以获取哪些块发生了修改的信息。

启动块修改跟踪:

SQL> select status from v$block_change_tracking;

STATUS

----------

DISABLED

SQL> alter database enable block change tracking usering file'/location/trk_filename';

禁用块修改跟踪:

SQL> alter database disable block change tracking;

===================

RMAN备份集保留策略

1、基于时间的备份保留策略

设备备份集保留n天

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY RECOVERY WINDOW OF n DAYS;

如果N等于7,则7天前的备份都将被RMAN废弃,并可通过DELETE OBSOLETE命令删除。

对于NOCATALOG下创建的备份,RMAN的备份集信息保存在目标数据的控制文件中,这部分信息的大小也是有限的,受制于初始化参数:CONTROLFILE_RECORD_KEEP_TIME,该参数指定记录在控制文件中保存的天数,默认7天,如果超过7天,并且控制文件由于空间不足,需要重用记录,则7天前的记录可能会被覆盖。

可通过该视图查询相关信息:V$CONTROLFILE_RECORD_SECTION;

SQL> select * from v$controlfile_record_section;

TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
---------------------------- ----------- ------------- ------------ ----------- ---------- ----------
DATABASE 316 1 1 0 0 0
CKPT PROGRESS 8180 11 0 0 0 0
REDO THREAD 256 8 1 0 0 0
REDO LOG 72 16 4 0 0 4
DATAFILE 520 100 5 0 0 38
FILENAME 524 2298 10 0 0 0
TABLESPACE 68 100 6 0 0 2
TEMPORARY FILENAME 56 100 1 0 0 1
RMAN CONFIGURATION 1108 50 1 0 0 1
.......      

2、基于备份文件的冗余数据数量的备份保留策略

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY n;

取消备份保留策略:

RMAN> CONFIGURE RETENTION PLOICY TO NONE;

取消之后,使用REORT OBSOLETE和DELTE OBSOLETE命令不会显示任何信息。

如果设置了备份保留策略,可通过REPORT OBSOLETE命令查看被标记为废弃的备份文件,然后DBA通过DELTE OBSOLETE命令删除这些文件以减小空间占用。

RMAN对于手工删除的文件,物理上已经不存在,在执行了CROSSCHECK命令之后,RMAN将其标记为EXPIRED;对于那些超出备份保留策略的备份集备份片段,则标记为OBSOLETE;

=================================

备份通道

通道其实就是一个到存储设备的数据流。说白了就是一个路径指向U盘,或是指向某一个文件夹,或是指向某一个分区,或是指向磁带等。

手工分配通道的命令:ALLOCATE CHANNEL。

如:

RMAN> RUN{

2> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT 'D:\ora_backup\ALCH_%U';

3> BACKUP TABLESPACE USERS;

4> }

RMAN中每执行一条BACKUP、RECOVER等命令都至少需要使用一个通道,通道数量决定了这些操作的并行度。可用ALLOCATE CHANNEL命令指定多个通道。

在RUN块中如果不使用RELEASE CHANNEL命令释放通过,则RMAN也会在RUN块中的任务执行完毕之后自动释放通道。

如果没有通过ALLOCATE CHANNEL命令手工分配通道,则RMAN也会使用预定义配置中的设置来自动分配通道。

===============================

启用复合备份

在生成备份同时,向指定的位置生成指定份数的备份文件。

RMAN中提供了三种方式实现Duuplexed方式备份:

1.执行BACKUP命令时指定复合备份

RAN> BACKUP COPIES 3 DATABASE;

2.在RUN{}命令块中利用SET BACKUP COPIES命令指定复合备份

2> SET BACKUP COPIES 2;

3> BACKUP DEVICE TYPE DISK FORMAT 'D:\ora_backup\ALCH1_%U', 'D:\ora_backup2\ALCH2_%U'

4> TABLESPACE USERS;

5> }

1.创建独立的表空间:
SQL> CREATE TABLESPACE RMANTBS DATAFILE 'D:\RMAN_CATALOG\rmantbs01.dbf' SIZE 1024M;
表空间已创建。

2.创建一个独立的SCHEMA,用来记录备份信息,并授予相关权限。
SQL> GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO RMANCT IDENTIFIED BY RNACT;

授权成功。

3.通过RMAN连接到新创建的恢复目录中:
C:\Users\Administrator>RMAN CATALOG RMANCT/RMANCT
恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 17 23:29:42 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到恢复目录数据库

4.在RMAN中创建CATALOG
RMAN> CREATE CATALOG TABLESPACE RMANTBS;
恢复目录已创建
-------
恢复目录创建完成,一个恢复目录可同时为多个目标数据库提供服务。只需要把目标数据库注册进来即可。

5.以CATALOG模式连接到目标数据库和恢复目录(如:目标数据库为ORACL)
首先以CATALOG模式连接到目标数据库和恢复目录,连接恢复目录时只需要在连接时指定CATALOG参数即可。
C:\Users\Administrator>RMAN TARGET / CATALOG RMANCT/RMANCT@ORCL;

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 17 23:33:52 2014

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

连接到目标数据库: ORCL (DBID=1392118573)
连接到恢复目录数据库

6.注册目标数据库
RMAN> REGISTER DATABASE;

注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
-----------
取消注册为UNREGISTER DATABASE;