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命令指定复合备份
RMAN> RUN{
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> }
3.使用CONFIGURE 命令指定复合备份
该方式公适用于数据文件和归档重做日志文件的备份,并且,只有在使用自动分配通道时才能该命令进行设置。
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK.
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;
RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;
在创建数据文件和归档日志文件备份时,将自动生成2份备份集。
================================
设置备份集的属性
1.设置备份片段的文件名
默认不使用FORMAT指定时为%F.
RMAN> RUN{
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> }
或
RMAN> BAKCUP TABLESPACE USERS FORMAT ‘D:\ora_backup\test_bak%U‘;
===============================
设置备份集标签
备份时可以直接给备份集指定一个名称,RMAN管这个叫做TAG。
默认格式为:TAGyyyymmddThhmmss,TAG和T是固定字符。
RMAN> BAKCUP TABLESPACE USERS TAG TBS_USERBAK;
===============================
设置备份片段/备份集的大小
指定备份片段大小,参数MAXPIECESIZE:
RMAN> RUN{
2> SET BACKUP COPIES 2;
3> BACKUP DEVICE TYPE DISK MAXPIECESIZE=10m FORMAT ‘D:\ora_backup\ALCH1_%U‘, ‘D:\ora_backup2\ALCH2_%U‘
4> TABLESPACE USERS;
5> }
指定备份集大小,参数:MAXSETSIZE
RMAN> BACKUP DATABASE MAXSETSIZE
===============================
使用恢复目录
如果不使用恢复目录,则RMAN的相关备份信息都保存在目标数据的控制文件中。但是控制文件并不能无限增长,因此最好使用恢复目录,将更加详细的信息保存在恢复目录中。
强烈建议不要将恢复目录的数据建在目录数据库中。
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;
------------
注意,如果连接时没有以CATALOG模式连接,则备份信息仍然只存入目标端数据库的控制文件。
======================================
启用备份优化
备份优化必须满足以下条件:
CONFIGURE BACKUP OPTIMIZATION 参数置为ON。
执行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中带有ALL或LIKE参数。
分配通道仅使用了一种设备类型,也就是不能同时分配使用SBT(磁带)与DISK的多个通道。
-----------
使用如下命令打开备份优化的设置:
CONFIGURE BACKUP OPTIMIZATION ON;
====================================
备份时对备份集进行压缩
RMAN> BACKUP AS COMPRESSED BACKUPSET TABLESPACE SYSTEM;
默认是不压缩的。
====================================
启用加密备份
RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;
RMAN> CONFIGURE ENCRYPTION FOR TABLESPACE USERS ON;
-----此后执行的备份均是加密备份。
RMAN> CONFIGURE ENCRYPTION OFF;关闭加密备份。
RMAN> SET ENCRYPTION ON IDENTIFYED BY rusky123 ONLY; ----为备份集指定一个密码,则恢复时恢复时必须使用该密码才能恢复。