1. 关于RMAN通道
一个RMAN通道就代表到一种设备的数据流,和对应的服务器会话(server session);RMAN中执行的大部分的备份与恢复命令都是通过server session完成的;
A. 自动分配通道
CONFIGURE DEVICE TYPE ... PARALLELISM
CONFIGURE DEFAULT DEVICE TYPE
CONFIGURE CHANNEL
B. 手动分配通道
RUN { ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
BACKUP DATABASE PLUS ARCHIVELOG;
}
C. 自动通道设备配置与并行
CONFIGURE DEVICE TYPE ... PARALLELISM
RMAN> SHOW DEVICE TYPE;
D. 自动通道默认设备类型
CONFIGURE DEFAULT DEVICE TYPE
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # configure device disk
CONFIGURE DEVICE TYPE sbt PARALLELISM 2; # configure device sbt
CONFIGURE DEFAULT DEVICE TYPE TO sbt;
越过默认设备来备份
BACKUP DEVICE TYPE sbt DATABASE;
E. 自动通道命名约定
命名规则:ORA_devicetype_n,这个命名规则是RMAN执行,使用,不能手动更改规则;
自动维护通道的命名:ORA_MAINT_devicetype_n
(ALLOCATE CHANNEL FOR MAINTENANCE)
F. 自动通道一般属性配置
CONFIGURE CHANNEL DEVICE TYPE sbt PARMS = 'ENV=(NSR_SERVER=bksvr1)';
CONFIGURE CHANNEL DEVICE TYPE DISK RATE 5M FORMAT="?/oradata/%U";
G. 指定各通道的设置:即为每个单独的通道设置参数
如:
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE = 2M;
CONFIGURE CHANNEL 3 DEVICE TYPE DISK MAXPIECESIZE = 900K;
这个例子中,RMAN会分配ora_disk_1和ora_disk_2为MAXPIECESIZE = 2M,而ora_disk_3则为MAXPIECESIZE = 900K
H. 清除自动通道设置
CONFIGURE DEVICE TYPE DISK CLEAR; # returns DISK to default PARALLELISM 1
# and backup type to BACKUPSET
CONFIGURE DEFAULT DEVICE TYPE CLEAR; # returns to default device type of DISK
CONFIGURE CHANNEL DEVICE TYPE sbt CLEAR;# removes all options for sbt channel
CONFIGURE CHANNEL 3 DEVICE TYPE DISK CLEAR;# removes configurations for 3rd ch.
I. 通道并行
BACKUP DATAFILE 5,6,7;
相当与如下3条命令
BACKUP DATAFILE 5;
BACKUP DATAFILE 6;
BACKUP DATAFILE 7;
但是,BACKUP DATAFILE 5,6,7;可以同时并行使用3条通道;而后者只是顺序执行;如下同理
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
ALLOCATE CHANNEL c3 DEVICE TYPE sbt;
BACKUP DATAFILE 5;
BACKUP DATAFILE 6;
BACKUP DATAFILE 7;
}
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
ALLOCATE CHANNEL c3 DEVICE TYPE sbt;
BACKUP DATAFILE 5,6,7;
}
J. 渠道控制选项
主要为channel的作用,无论是man或auto channel;通过channel控制命令可以做到以下几点:
l 控制操作系统资源,执行RMAN时;
l 影响备份或恢复并行程度;
l 限制I/O带宽消耗在千字节、兆字节或字节(allocation/configure channel…rate)
l 限制备份件的大小(MAXPIECESIZE参数)
l 限制备份集的大小(MAXSETSIZE参数)
l 发送特定-供应商的命令给media manager(send)
l 指定特定于供应商的参数为media manager(ALLOCATE CHANNEL ... PARMS,CONFIGURE CHANNEL ... PARMS)
l 指定哪个实例执行操作(ALLOCATE CHANNEL ... CONNECT, CONFIGURE CHANNEL ... CONNECT)
K. 通道失败
当一个通道失败,RMAN会尝试用其他通道完成任务;如果是脚本中的命令,则后续命令不会执行;
2. 关于RMAN备份
Backup命令执行备份,创建备份集和镜像拷贝;默认情况下,无论是磁盘还是磁带都是创建备份集;
A. 镜像拷贝
BACKUP AS COPY
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY
B. 代理拷贝:只适用于media管理器,不适用磁盘备份
BACKUP DEVICE TYPE sbt PROXY DATAFILE 3;
BACKUP DEVICE TYPE sbt PROXY ONLY DATABASE;
BACKUP DEVICE TYPE sbt PROXY ONLY ARCHIVELOG ALL;
C. 备份存储:磁盘、磁带
删除已经备份的归档日志(备份后删除归档日志)
DELETE INPUT
备份归档日志时的故障迁移
D. 多路复用备份集
当创建备份集,您可以多路传输文件。在这种情况下,RMAN从磁盘同时读取多个文件,然后写他们的数据块到相同的备份集 (镜像拷贝image copy则从不多路复用) 。例如,RMAN可以同时读取两个datafiles,合并这些datafiles的数据块到一个单一的备份片中。
决定多路复用的算法如下:
1.每个备份集中的文件数(每个备份集默认包括4个数据文件或16个归档日志;)
2.每个channel读文件数(多路复用等级是由备份集中的文件数决定)
3.每个channel同时读文件数(通常为8)
E. 手动配置并行备份
BACKUP
(DATAFILE 1,2,3 CHANNEL ORA_DISK_1)
(DATAFILECOPY '/tmp/system01.dbf', '/tmp/tools01.dbf' CHANNEL ORA_DISK_2)
(ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 102 THREAD 1 CHANNEL ORA_DISK_3);
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server1)";
ALLOCATE CHANNEL c2 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server2)";
ALLOCATE CHANNEL c3 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server3)";
BACKUP (DATAFILE 1,2,3 CHANNEL c1)
(DATAFILECOPY '/tmp/system01.dbf', '/tmp/tools01.dbf' CHANNEL c2)
(ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 102 THREAD 1 CHANNEL c3);
}
3. RMAN备份的多拷贝
A. 双重备份集
方法有三:
1.CONFIGURE... BACKUP COPIES
2. Use SET BACKUP COPIES in a RUN block
3. BACKUP DEVICE TYPE DISK COPIES 3 DATAFILE 7 FORMAT '/tmp/%U','?/oradata/%U','?/%U';
B. 备份备份集(BACKUP BACKUPSET)
特别适用以下2种情况:
一是磁盘、磁带中都需要保存备份
二是为释放磁盘空间,将备份集转移到磁带上
# makes backup sets on disk
BACKUP DEVICE TYPE DISK AS BACKUPSET DATABASE PLUS ARCHIVELOG;
BACKUP DEVICE TYPE sbt BACKUPSET ALL; # copies backup sets on disk to tape
BACKUP COPIES 2 DEVICE TYPE sbt BACKUPSET ALL;
BACKUP DEVICE TYPE sbt BACKUPSET COMPLETED BEFORE 'SYSDATE-7' DELETE INPUT;
BACKUP BACKUPSET 872;
C. 备份镜像拷贝
BACKUP AS COPY COPY OF DATABASE
BACKUP AS BACKUPSET COPY OF TABLESPACE tablespace_name
BACKUP AS BACKUPSET COPY OF DATAFILE datafile
4. RMAN备份选项:naming,sizing,speed
A. 备份片的文件名
RMAN自定文件名:
BACKUP TABLESPACE users;
指定文件名格式:
BACKUP TABLESPACE users FORMAT = '/tmp/users_%u%p%c';
B. 镜像拷贝文件名
RMAN可以通过FORMAT 或DB_FILE_NAME_CONVERT指定镜像拷贝文件名;
FORMAT:默认格式为%U
|
Type of File |
Meaning of %U |
|
Datafile |
data-D-%d_id-%I_TS-%N_FNO-%f_%u |
|
Archived log |
arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u |
|
Control file |
cf-D_%d-id-%I_%u |
DB_FILE_NAME_CONVERT:
Users前缀的文件转换成users_ts 为前缀的文件:
BACKUP AS COPY TABLESPACE users DB_FILE_NAME_CONVERT = ('/maindisk/oradata/users' , '/backups/users_ts');
C. 用Tag唯一标示RMAN备份
不指定tag,rman会给每个备份一个默认tag名,格式:TAGYYYYMMDDTHHMMSS
BACKUP COPIES 1 DATAFILE 7 TAG foo;
BACKUP AS COPY TAG users_tools TABLESPACE users, tools;
BACKUP AS COPY COPY OF DATABASE FROM TAG=full_cold_copy TAG=new_full_cold_copy;
BACKUP AS BACKUPSET TAG for_audit COPY OF TABLESPACE users FROM TAG monday_users TABLESPACE SYSTEM FROM TAG monday_system;
标签(tag)可以不是唯一的;
D. 备份片尺寸
备份中如果不指定备份片的尺寸,默认将所有备份内容装载到一个备份片中;有时候由于文件系统或media管理器的限制,需要指定size;通常在CONFIGURE CHANNEL or ALLOCATE CHANNEL中指定maxpiecesize选项;
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE = 2G;
BACKUP AS BACKUPSET DATAFILE 1;
E. 备份集的大小与数量
a) 由backupSpec子句指定input文件数
b) 通道数量由allocate指定
c) 每个备份集的默认文件数为:数据文件4个,归档日志16;
d) 单个通道同步读文件数默认为8
e) MAXSETSIZE参数指定备份集的大小
f) RMAN会自动平均分配每个通道的工作量(通道负载均衡)
F. MAXSETSIZE参数:设置备份集的最大值,间接限制备份集的文件数,并当备份集超过最大值后,RMAN会强制创建新的备份集;如果单个数据文件大于MAXSETSIZE值,则备份失败,所以请确保MAXSETSIZE大于单备份文件;
BACKUP DATABASE MAXSETSIZE = 10M;
G. 备份的IO读写速率控制
默认情况下,rman会利用所有可用IO带宽进行磁盘读写;如果你需要限制IO读写资源的消耗,可以在ALLOCATE CHANNEL 或 CONFIGURE CHANNEL命令中指定rate选项;例如
CONFIGURE DEVICE TYPE sbt PARALLELISM 2;
CONFIGURE DEFAULT DEVICE TYPE TO sbt;
CONFIGURE CHANNEL DEVICE TYPE sbt RATE 1M;
5. RMAN备份类型
l 全备份:所有数据文件的对应数据块的备份
l 增量备份:分0级备份、1级备份;0级备份就是全备份,只是在RMAN资料库中被记录为增量备份;1级备份是指在0级备份的基础上,对所有改变的数据块的备份(0级备份就是1级备份的父备份);
l 热备份:数据库处于online,读写状态的备份
l 冷备份:数据库处于mounted状态时,对数据库任何部分的备份;
l 一致性备份:正常关闭数据库后的备份;此时数据文件中的检查点SCN与控制文件中的头信息一致;一致性备份不需要recovery就能restore还原,但之后必须执行OPEN RESETLOGS
l 非一致性备份:数据库online,read/write中,或意外、强制关闭下的备份;
A. 增量备份
增量备份只备份自上次备份以来发生改变的数据块;通过增量备份可以备份数据文件,表空间和全库;在恢复时,RMAN会检测还原的文件是否需要增量备份恢复;在恢复时,RMAN会尽量选择增量备份恢复,而不是选择归档日志恢复,因为增量备份恢复速度更快(增量备份是块级恢复,而归档日志是记录级恢复);
在恢复时,可以在还原非增量备份的镜像拷贝文件后,利用其他增量备份进行恢复;
增量备份方便快速的日常备份;它使用较少的带宽,在磁带IO带宽限制备份性能时提供更好地性能;利用增量备份恢复数据库时不会记录redo日志,类似直接路径加载;最后,增量备份还支持noaruchivelog数据库备份,并且其全库备份文件大小要小于数据库文件(当然, 需要一个干净的数据库关闭);
推荐增量备份策略:增量备份镜像文件到磁盘,然后将这些镜像文件备份成备份集(backup as backupset )到磁带上;
增量备份原理:数据文件中的每个数据块都包含一个SCN(system change number),这个SCN代表着数据块最近一次修改序号;增量备份时,RMAN会读每个input数据文件中数据块的SCN(如果启用数据块更改跟踪,则RMAN不会读没有改变的数据块),然后与父亲增量备份中checkpoint SCN比较,如果数据块中SCN大于或等于父亲增量备份中checkpoint SCN,则备份该数据块;
因此,增量备份能恢复所有变化的数据块,即使是在某对象创建中使用了nologging选项的操作;这一机制的推论:利用增量备份的恢复可以防止由于使用nologging选项的操作而丢失数据;
0级备份:类全备份
1级备份:分差异备份、累积备份
差异备份:是在0级或1级备份基础上的增量备份;
累积备份:是在0级基础上的增量备份;
Level 0 级是各增量备份的基础,那level 1 与level 2有什么不同呢?
分两种情况,incremental different的和cumulitive的,前者备份跟自己同级或比自己级别低的,后者只备份比自己级别低的
前者:level1备份上一次level1或level0以来的变化,level2备份上一次level2或level1或level0以来的变化
后者:level1备份上一次level0以来的变化,level2备份上一次level1或level0以来的变化
10G文档中已经没有level 2备份了,更没有level 3以上的备份;但是在RMAN命令中可以使用
Rman>backup incremental level 2 cumulative format='d:\backup$d_%s.dbf' tablespace users;
Rman>backup incremental level 2 format='d:\backup$d_%s.dbf' tablespace users;
Figure:Differential Incremental Backups
Figure :Cumulative Incremental Backups
B. 计划增量备份策略
一般数据块累积更新20%以上要做一全备份或0级增量备份;
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;
Control file 与spfile 自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
RESTORE CONTROLFILE FROM AUTOBACKUP;
自动备份on时,备份包含数据文件,则cf、spfile与备份集分开;
自动备份off时,备份包含数据文件,则cf、spfile与备份集在一起;
什么时候自动备份cf:
A. RMAN执行backup时
B. RUN块中,最后命令是backup时
C. RUN块中,backup命令后面再没有backup命令时
D. 数据库结构改变时;如,新增表空间,表空间或数据文件状态改变,重命名文件,新增redolog等等
6. 备份的保留策略
Obsolete与expired的区别:简而言之就是obsolete不需要的,expired是没有找到的;
The term obsolete does not mean the same as expired. A backup is obsolete when REPORT OBSOLETE or DELETE OBSOLETE determines, based on the user-defined retention policy, that it is not needed for recovery. A backup is considered expired only when RMAN performs a crosscheck and cannot find the file. In short, obsolete means "not needed," whereas expired means "not found."
保留策略:redundancy (冗余)、recovery window(恢复窗口)
如果不指定保留策略,则默认REDUNDANCY 1
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW
CONFIGURE RETENTION POLICY TO REDUNDANCY
不设置保留策略:则RMAN认为所有的备份都是需要的;
CONFIGURE RETENTION POLICY TO NONE;
A. Recovery window(恢复窗口)
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
B. redundancy (冗余):默认冗余为1;
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
不设置保留策略:则RMAN认为所有的备份都是需要的;
CONFIGURE RETENTION POLICY TO NONE;
C. 批量删除obsolete备份
REPORT OBSOLETE
DELETE OBSOLETE
D. 保留策略外的免除备份(特别保留备份)
KEEP UNTIL TIME... LOGS/NOLOGS
# Creates a backup and exempts it from retention policy until last day of 2007
BACKUP DATABASE KEEP UNTIL TIME "TO_DATE('31-DEC-2007' 'dd-mon-yyyy')" NOLOGS;
# Specifies that backupset 2 is no longer exempt from the retention policy
CHANGE BACKUPSET 2 NOKEEP;
# Creates a backup that is indefinitely exempt from the retention policy
BACKUP TABLESPACE users KEEP FOREVER NOLOGS;
7. 优化备份OPTIMIZATION ON:同一个文件如果已经备份则backup会跳过;
同一文件是指:
Datafile :相同的dbid,checkpoint SCN,creation SCN, RESETLOGS SCN 、 time as a datafile already in a backup
Archived redo log:相同的 thread、sequence number、RESETLOGS SCN 、time.
Backup set:相同的backup set recid and stamp.
RMAN> CONFIGURE BACKUP OPTIMIZATION OFF/ON;
BACKUP DEVICE TYPE sbt DATABASE PLUS ARCHIVELOG;
BACKUP DEVICE TYPE sbt BACKUPSET ALL;
BACKUP DEVICE TYPE sbt BACKUPSET ALL FORCE;
RMAN> CONFIGURE BACKUP OPTIMIZATION OFF/ON;
8. 可重新启动的备份(restartable backups)
使用可重启动备份特性,RMAN可以备份一个指定时间以来的所有没有备份的文件;
BACKUP DATABASE NOT BACKED UP SINCE TIME 'SYSDATE-1';
#该命令将备份一天内所有没有备份的数据库文件;如果不指定SINCE TIME则备份所有从没有备份的文件
9. 管理备份窗口和性能:BACKUP…DURATION
Backup window 是指备份活动必须在一个时间段内完成的时间区间;
例如:BACKUP DURATION 4:00 TABLESPACE users;
#该命令在4个小时内完成users表空间的备份;
如果在指定的Backup window内没有完成备份,备份命令将被强制中断;已经完成的备份集被保留,并能够用于还原与恢复;未完成的备份集则被丢弃;
A. partial选项
DURATION,超出备份窗口时,通常会report 一个错误(如果是run block则停止后面的执行);当partial后,则不会报错,而是显示未备份完的文件信息;而如果是在run block 中则继续执行后面的命令;
BACKUP DURATION 4:00 PARTIAL TABLESPACE users FILESPERSET 1;
FILESPERSET选项, RMAN puts each file into its own backupset;如果timeout,则只有当前正在备份的文件丢失;
B. 用MINIMIZE TIME、MINIMIZE LOAD管理备份性能
#最短时间内完成备份
BACKUP DURATION 4:00 PARTIAL MINIMIZE TIME DATABASE FILESPERSET 1;
#最小负载,最小影响系统完成
BACKUP DURATION 4:00 PARTIAL MINIMIZE LOAD DATABASE FILESPERSET 1;
10. RMAN对备份错误的反应
l I/O错误
l 坏块(corrupt blocks)
A. 处理RMAN备份中的I/O错误:NOT BACKED UP SINCE
B. 处理RMAN备份中数据文件坏块:MAXCORRUPT
如果备份中,坏块已经被识别,则备份包含坏块在内的数据;如果坏块先前没有被识别出来,则RMAN默认会stop备份;
#SET MAXCORRUPT命令只在run block中使用;
设置MAXCORRUPT后,RMAN备份中遇到先前未被检测出来的坏块时,则被忽略;允许忽略的坏块数由MAXCORRUPT决定;
如果备份中没有超过MAXCORRUPT数,备份顺利完成,并且记录这些坏块头信息到control file 中;同时也可以通过V$DATABASE_BLOCK_CORRUPTION视图查询坏块情况
11. 对备份进行一致性审核与测试
A. 测试备份与还原的有效性:BACKUP VALIDATE、RESTORE VILIDATE
不创建输出文件测试备份有效性;用这种方法,可以check所有数据文件问题;按如下步骤,则可以检测所有类型的可能的corrupt:
a) 初始化参数,DB_BLOCK_CHECKSUM=TRUE;
b) RMAN命令中,不要指定MAXCORRUPT、NOCHECKSUM选项,但是要指定CHECK LOGICAL选项;
B. 检测物理坏块:BACKUP…VALIDATE
C. 检测逻辑坏块(CHECK LOGICAL)
D. 在打开backups时,检测断裂块(fractured blocks)
E. 用RMAN确认备份
利用BACKUP…VALIDATE命令check数据文件的物理或逻辑坏块,或者是确认所有数据文件在正确的位置上;
下面的例子展示了对整个数据库和归档日志文件的物理或逻辑坏块审核;
BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
Validate选项不能与MAXCORRUPT 、PROXY 参数一起使用;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16976507/viewspace-2131737/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16976507/viewspace-2131737/
本文详细介绍了Oracle RMAN(Recovery Manager)的各种备份与恢复技术,包括通道配置、备份类型、并行备份、备份片尺寸控制等核心概念。此外,还深入探讨了增量备份策略、备份保留策略、备份验证及优化策略等内容。
585

被折叠的 条评论
为什么被折叠?



