oracle rman optimization,Oracle rman备份的使用(转)

本文详细介绍了Oracle数据库的RMAN配置参数,包括保留策略、备份优化、默认设备类型、控制文件自动备份、并行度、备份副本数量等。此外,还探讨了增量备份的差异增量和累积增量策略,以及如何配置多级增量备份策略以优化备份和恢复效率。文章提供了具体的RMAN备份脚本示例,展示了如何设置不同级别的备份任务,并给出了备份策略的典型应用案例。
摘要由CSDN通过智能技术生成

使用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都可以

a4c26d1e5885305701be709a3d33442f.png

差异增量备份图示

a4c26d1e5885305701be709a3d33442f.png

积累增量备份图示

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

-------------

结束!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值