使用RMAN>show all;
可以显示出RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; #
default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; #
default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘C:ORACLE..SNCFTEST.ORA’;
#default
1.configure retention policy to redundancy
1: 是用来决定那些备份不再需要了,它一共有三种可选项,分别是
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;
CONFIGURE RETENTION POLICY TO NONE;
第一种recover
window是保持所有足够的备份,可以将数据库系统恢复到最近七天内的任意时刻。任何超过最近七天的数据库备份将被标记为obsolete。
第二种redundancy
是为了保持可以恢复的最新的5份数据库备份,任何超过最新5份的备份都将被标记为redundancy。它的默认值是1份。
第三种不需要保持策略,clear将恢复回默认的保持策略。
一般最安全的方法是采用第二种保持策略。
2.CONFIGURE BACKUP OPTIMIZATION OFF
默认值为关闭,如果打开,rman将对备份的数据文件及归档等文件进行一种优化的算法。
3.Configure default device type to disk:
是指定所有I/O操作的设备类型是硬盘或者磁带,默认值是硬盘
磁带的设置是CONFIGURE DEFAULT DEVICE TYPE TO SBT;
4.CONFIGURE CONTROLFILE AUTOBACKUP OFF
强制数据库在备份文件或者执行改变数据库结构的命令之后将控制文件自动备份,默认值为关闭。这样可以避免控制文件和catalog丢失后,控制文件仍然可以恢复。
5.CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'%F'
是配置控制文件的备份路径和备份格式
6.CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
是配置数据库设备类型的并行度。
7.CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO
1;
是配置数据库的每次备份的copy数量,oracle的每一次备份都可以有多份完全相同的拷贝。
8.CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO
1
是设置数据库的归档日志的存放设备类型
9.CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLE…
SNCFTEST.ORA'
是配置控制文件的快照文件的存放路径和文件名,这个快照文件是在备份期间产生的,用于控制文件的读一致性。
10.CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
'C:...%d_DB_%u_%s_%p';
是配置备份文件的备份路径和备份格式
CONFIGURE CHANNEL DISK CLEAR; 用于清除上面的信道配置
CONFIGURE EXCLUDE FOR TABLESPACE < tablespace> [CLEAR];
此命令用于将指定的表空间不备份到备份集中, 此命令对只读表空间是非常有用的。
--------------
1.将备份文件存储到指定路径,如 e:\backupb
configure channel device type
disk format 'e:\backupb\%d_db_%u';
后面的%d_db_%u是存储格式
2.我们也可以单独指定control file 存储在另一个路径:如 e:\backupcontrol
configure controlfile autobackup format for device type disk to
'e:\backupcontrol\%F';
后面的%F是存储格式
================
RMAN中常用configure命令2007-06-21 15:37
1 显示当前的配置信息
===========================
1.01 RMAN> show all;
1.02 查询RMAN设置中非默认值:
SQL>
select name,value from v$rman_configure;
2. 常用的configure选项
===========================
2.01 保存策略 (retention policy)
configure retention policy to
recovery window of 3 days;
configure retention policy to
redundancy 3;
configure retention policy
clear;
2.02 备份优化 backup optimization
configure backup optimization
on;
configure backup optimization
off;
configure backup optimization
clear;
2.03 默认设备 default device type
configure default device type
to disk;
configure default device type
to stb;
configure default device type
clear;
2.04 控制文件 controlfile
configure controlfile
autobackup on;
configure controlfile
autobackup format for device type disk to
'/cfs01/backup/conf/conf_%F';
configure controlfile
autobackup clear;
configrue controlfile
autobackup format for device type disk clear;
configrue snapshot controlfile
name to '/cfs01/backup/snapcf/scontrofile.snp';
configrue snapshot controlfile
name clear;
2.05 并行数(通道数) device type disk|stb pallelism n;
configure device type disk|stb
parallelism 2;
configure device type disk|stb
clear;
configure channel device type disk format
'e/:rmanback_%U';
configure channel device type disk maxpiecesize 100m
configure channel device type
disk rate 1200K
configure channel 1 device type disk format
'e/:rmanback_%U';
configure channel 2 device type disk format
'e/:rmanback_%U';
configure channel 1 device type disk maxpiecesize 100m
2.06 生成备份副本 datafile|archivelog backup copies
configure datafile backup
copies for device type disk|stb to 3;
configure archivelog backup
copies for device type disk|stb to 3;
configure datafile|archivelog
backup copies for device type disk|stb clear
BACKUP DEVICE TYPE DISK
DATABASE
FORMAT
'/disk1/backup/%U', '/disk2/backup/%U', '/disk3/backup/%U';
2.07 排除选项 exclude
configure exclude for
tablespace 'users';
configrue exclude clear;
2.08 备份集大小 maxsetsize
configure maxsetsize to
1G|1000M|1000000K|unlimited;
configure maxsetsize
clear;
2.09 其它选项 auxiliary
CONFIGURE AUXNAME FOR DATAFILE
1 TO '/oracle/auxfiles/aux_1.f';
CONFIGURE AUXNAME FOR DATAFILE
2 TO '/oracle/auxfiles/aux_2.f';
CONFIGURE AUXNAME FOR DATAFILE
3 TO '/oracle/auxfiles/aux_3.f';
CONFIGURE AUXNAME FOR DATAFILE
4 TO '/oracle/auxfiles/aux_4.f';
-
CONFIGURE AUXNAME FOR DATAFILE
1 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE
2 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE
3 CLEAR;
CONFIGURE AUXNAME FOR DATAFILE
4 CLEAR; ---------------------------
Rman的format格式中的%
%c 备份片的拷贝数 %d 数据库名称 %D 位于该月中的第几天 (DD) %M 位于该年中的第几月 (MM) %F
一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为
日期,QQ是一个1-256的序列 %n 数据库名称,向右填补到最大八个字符 %u 一个八个字符的名称代表备份集与创建时间 %p 该备份集中的备份片号,从1开始到创建的文件数
%U 一个唯一的文件名,代表%u_%p_%c %s 备份集的号 %t 备份集时间戳 %T 年月日格式(YYYYMMDD)
在rman增量备份中,有差异增量和累积增量的概念
1、概念
差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式
累积增量:是备份上级备份以来所有变化的块
因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块。所以会减少备份时间,但需要更多的恢复时间.在oracle
9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化,从而大大提升备份效率。但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。10g还支持增量合并,增量备份可支持7级增量。
增量备份的level1是从上次0或者1至今的变化,而level2是从上传备份至今的增量,0,1,2都可以
累积备份的level1是从上次0至今的累积变化,而level2是从上传0或者1至今的累积增量,包括期间2都可以
差异增量备份图示
积累增量备份图示
2、备份策略及恢复
以rman多级增量备份来作为备份策略例子:
增量备份都需要一个0级备份来作为基础,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以。
备份策略:
eg:我们对一星期做如下备份策略,那么差异增量只需要使用星期天的0级,星期三的一级,星期四、五的二级就可以恢复,累积增量则需要星期天的0级、星期三的1级,星期五的二级即可进行恢复。以上是一个星期的备份策略,如果做长期的备份策略则只需要把备份的时间延长即可得到新的备份策略,具体需要看自己备份及恢复能够接受的程度而顶,见最后的备份策略典型案例。
星期
差异增量
累积增量
星期天
0级
0级
星期一
2级
2级
星期二
2级
2级
星期三
1级
1级
星期四
2级
2级
星期五
2级
2级
星期六
2级
2级
星期天
0级
0级
备份命令如下:
零级备份
backup
incremental level 0 database;
一级差异增量
backup
incremental level 1 database;
一级累计增量
backup
incremental level 1 cumulative database;
备份策略典型案例:
每半年做一个数据库的全备份(包括所有的数据和只读表空间)
每一个月做一次零级备份(不包含只读表空间)
每个星期做一次一级备份
每天做一次二级备份
任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)建议备份一段时间归档日志和定期备份归档到到磁带上
全库备份脚本
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
filesperset 3 format'/u01/oradata/backup/arch%u_%s_%p'archivelog
all delete input; #备份归档可选,可以单独定期备份release
channel c1;
release
channel c2;
release
channel c3;
}
零级备份脚本
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
filesperset 3 format'/u01/oradata/backup/arch%u_%s_%p'archivelog
all delete input; #备份归档可选,可以单独定期备份release
channel c1;
release
channel c2;
release
channel c3;
}
一级备份脚本
run{
allocate
channel c1 type disk;
allocate
channel c2 type disk;
allocate
channel c3 type disk;
backup
incremental level 1 tag'db1' format'/u01/oradata/backup/db1%u_%s_%p'database
skip readonly;
sql'alter system archive log current';
backup
filesperset 3 format'/u01/oradata/backup/arch%u_%s_%p'archivelog
all delete input; #备份归档可选,可以单独定期备份release
channel c1;
release
channel c2;
release
channel c3;
}
如果按照以上备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,可以减少零级备份之间的时间间隔。在每次备份后,原则上在该备份点之前的归档日志就可以删除掉了,但是为了进一步的安全以及日后需要(如使用LOGMNR查找所需信息),建议有条件的话,归档日志保存到能够接受的时间点,可以保存在磁带等廉价存取设备上。
采用0112111增量备份策略,7天一个轮回
也就是周日0级备份,周1 2 4 5 6 采用2级增量备份,周3采用1级增量备份
配置控制文件备份路径
RMAN >
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rmanbk/ccontrolfile_%F';
数据备份目录
$ mkdir -p /u01/backup/rmanbk
首先将过期天数设为7天
RMAN> CONFIGURE
RETENTION POLICY TO RECOVERY
WINDOW OF 7
DAYS;
下面开始创建0级
1级 2级备份脚本
0级备份脚本
vim
rman_bk_level0.sh
------0级备份----------------
#! /bin/bash
export ORACLE_SID=orcl
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
/u01/app/oracle/11.2.0/dbhome_1/bin/rman
target /
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 0 database format '/u01/backup/rmanbk/level0_%d_%s_%p_%u.bkp';
sql 'alter system
archive log current';
backup archivelog all delete input format '/u01/backup/rmanbk/log_%d_%s_%p_u%.bkp';
}
crosscheck backup;
delete noprompt
obsolete;
exit;
------------------
1级备份脚本
vim
rman_bk_level1.sh
---------1级增量备份---------------
#! /bin/bash
export ORACLE_SID=orcl
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
/u01/app/oracle/11.2.0/dbhome_1/bin/rman
target /
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 1 database format '/u01/backup/rmanbk/level1_%d_%s_%p_%u.bkp';
sql 'alter system
archive log current';
backup archivelog all delete input format '/u01/backup/rmanbk/log_%d_%s_%p_u%.bkp';
}
crosscheck backup;
delete noprompt
obsolete;
exit;
2级备份脚本
vim
rman_bk_level2.sh
---------2级增量备份---------------
#! /bin/bash
export ORACLE_SID=orcl
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
/u01/app/oracle/11.2.0/dbhome_1/bin/rman
target /
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 2 database format '/u01/backup/rmanbk/level2_%d_%s_%p_%u.bkp';
sql 'alter system
archive log current';
backup archivelog all delete input format '/u01/backup/rmanbk/log_%d_%s_%p_u%.bkp';
}
crosscheck backup;
delete noprompt
obsolete;
release d1;
exit;
加入到crontab中
crontab -e
-----------
#周日0级备份
00 23 * * 0 /u01/backup_shell/rman_bk_level0.sh
#周一、二、四、五、六2级增量备份
00 23 * * 1,2,4,5,6 /u01/backup_shell/rman_bk_level2.sh
#周三1级增量备份
00 23 * * 3 /u01/backup_shell/rman_bk_level1.sh
-------------
结束!