oracle11gRAC环境使用RMAN备份方案

转摘:http://blog.itpub.net/29819001/viewspace-1320977/

[[email protected] ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Thu Oct 16 18:20:57 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
connected to target database: zx (DBID=2731354802)

RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name zx are:
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 BACKUP TYPE TO BACKUPSET; # 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 ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128‘; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC‘ AS OF RELEASE ‘DEFAULT‘ OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_zx1.f‘; # default

show all

开始设置备份策略
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/controlfile/%F‘;

修改后的
RMAN> show all;

RMAN configuration parameters for database with db_unique_name zx are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/backup/rman/controlfile/%F‘;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # 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 ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128‘; # default
CONFIGURE COMPRESSION ALGORITHM ‘BASIC‘ AS OF RELEASE ‘DEFAULT‘ OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_zx1.f‘; # default

show all

开启块跟踪
[[email protected] ~]$ sqlplus / as sysdba
SQL> alter database enable block change tracking using file ‘+RCY1‘ ;
查看
SQL> col filename for a50
SQL> select * from v$block_change_tracking;
STATUS     FILENAME                                         BYTES
---------- -------------------------------------------------- ----------
ENABLED    +RCY1/zx/changetracking/ctf.298.861133721        11599872

*****************************************************************************
增量备份
只备份从上次备份发生变化的块。
1)增量备份首先做全备:
0,1,2,3,4,5
2)增量备份的好处是加快备份时间。
3)oracle增量备份有两种:1.差异增量备份 2.累计增量备份
4)0级备份就是全被,做其他级别的备份前必须有0级,否则系统会做0级备份。
5)差异增量备份:backup incremental level 0 format
        只要等于或小于自己的级别,前面的备份就可以作为备份的起点。
日  一  二  三  四  五  六  日
0   2   2   1   2   2    2   0
全  一  一  三  一  一  一  全
周一周二只备份一天就行了,但周三需要把周一二三的都备一遍,因为它级别比前面的备份低,周四就只备一天就行了,周日又要做全备了。
比如周三早晨挂了,需要周日周一周二才能恢复到周三早晨,但如果周四早晨就只需要周日,周三就能恢复。周六挂需要周日,周三,周四,周五四个备份集。
6)累计增量备份:backup incremental level 0 cumulative format
只看备份级别比自己低的。
日  一  二  三  四  五  六  日
0   2   2   1   2   2   2   0
全  一  二  三  一  二  三  全
周日全备,周一备份一天的,周二备份2天的。周三备份周一二三的。
周四只备份一天的,周五备份两天的,周六备份3天的。周日全备。
假如周三恢复,需要0级别和一个到周二 的备份就行了。恢复更快。
周六挂需要周日,周三,周五三个备份集。
*************************************************************************
zx数据库使用差异增量备份
日  一  二  三  四  五  六  日
0   2   2   1   2   2   2   0
全  一  一  三  一  一  一  全
周日全备,周一周二只备份一天就行了,但周三需要把周一二三的都备一遍,因为它级别比前面的备份低,周四周五周六就只备一天就行了,周日又要做全备了。
编辑备份脚本  
脚本存放位置/home/oracle/scripts/rman/bin/    
日志存放位置/home/oracle/scripts/rman/log/
备份存放位置+rcy1/backup/hrman_bak/

  • 热备0级脚本

[[email protected] bin]$ cat hrman0.sh

#!/bin/bash
export ORACLE_SID=zx1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin
rman target / <<eof< span="">
run{
sql‘alter system switch logfile‘;
allocate channel c1 type disk;
allocate channel c2 type disk;
crosscheck archivelog all;
backup as compressed backupset incremental level 0 format ‘+rcy1/backup/hrman_bak/%d_%T_%U_0.bak‘ database plus archivelog;
delete noprompt obsolete;
}
quit;
EOF

hrman0.sh

  • 热备1级脚本

[[email protected] bin]$ cat hrman1.sh

#!/bin/bash
export ORACLE_SID=zx1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin
rman target / <<eof< span="">
run{
sql‘alter system switch logfile‘;
allocate channel c1 type disk;
allocate channel c2 type disk;
crosscheck archivelog all;
backup as compressed backupset incremental level 1 format ‘+rcy1/backup/hrman_bak/%d_%T_%U_1.bak‘ database plus archivelog;
delete noprompt obsolete;
}
quit;
EOF

hrman1.sh

  • 热备2级脚本

[[email protected] bin]$ cat hrman2.sh

#!/bin/bash
export ORACLE_SID=zx1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin
rman target / <<eof< span="">
run{
sql‘alter system switch logfile‘;
allocate channel c1 type disk;
allocate channel c2 type disk;
crosscheck archivelog all;
backup as compressed backupset incremental level 2 format ‘+rcy1/backup/hrman_bak/%d_%T_%U_2.bak‘ database plus archivelog;
delete noprompt obsolete;
}
quit;
EOF

hrman.2sh

设置权限
[[email protected] bin]$ chmod -R 777 hrman0.sh
[[email protected] bin]$ chmod -R 777 hrman1.sh
[[email protected] bin]$ chmod -R 777 hrman2.sh
[[email protected] bin]$ ll
total 12
-rwxrwxrwx 1 oracle oinstall 468 Oct 21 17:03 hrman0.sh
-rwxrwxrwx 1 oracle oinstall 468 Oct 21 17:05 hrman1.sh
-rwxrwxrwx 1 oracle oinstall 468 Oct 21 17:06 hrman2.sh
配置作业
一个crontab文件中包含有六个字段: 
分钟 0-59 
小时 0-23 
月中的第几天 1-31 
月份 1 - 12 
星期几 0 - 6, with 0 = Sunday

配置
[[email protected] ~]$ crontab -e
查看
[[email protected] ~]$ crontab -l
0 2 * * 0 sh /home/oracle/scripts/rman/bin/hrman0.sh  >> /home/oracle/scripts/rman/log/backup0.log 2>&1  
0 2 * * 3 sh /home/oracle/scripts/rman/bin/hrman1.sh  >>  /home/oracle/scripts/rman/log/backup1.log 2>&1 
0 2 * * 1,2,4,5,6 sh /home/oracle/scripts/rman/bin/hrman2.sh  >>  /home/oracle/scripts/rman/log/backup2.log 2>&1
日志变大可清空
[[email protected] ~]$ cat /dev/null > /home/oracle/scripts/rman/log/backup0.log 
[[email protected] ~]$ cat /dev/null > /home/oracle/scripts/rman/log/backup1.log 
[[email protected] ~]$ cat /dev/null > /home/oracle/scripts/rman/log/backup2.log
[[email protected] ~]$ ll /home/oracle/scripts/rman/log
total 432
-rwxrwxrwx    1 oracle   dba               0 Jul 15 16:12 backup0.log
-rwxrwxrwx    1 oracle   dba               0 Jul 15 16:12 backup1.log
-rwxrwxrwx    1 oracle   dba               0 Jul 15 16:12 backup2.log

在rman增量备份中,有差异增量和累积增量的概念

    1、概念

    差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式
    累积增量:是备份上级备份以来所有变化的块

    因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块。所以会减少备份时间,但需要更多的恢复时间.在oracle 9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化,从而大大提升备份效率。但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。10g还支持增量合并,增量备份可支持7级增量。

    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个二级备份+当天的归档文件。                                     

增量备份说明

时间: 2024-11-06 07:56:50

oracle11gRAC环境使用RMAN备份方案的相关文章

生产环境提升rman备份速度----启动块跟踪

[环境] AIX(5300-08).oracle10g(10.2.0.1.0-64bit) [目标] 由于生产环境数据量较大,欲加快rman备份的速度 [方法] 启动块跟踪 [操作] SQL> alter database enable block changetracking using file '/home/oracle/block.trc'; Database altered. SQL> select filename fromv$block_change_tracking; FILE

配置RMAN备份环境

关于配置RMAN备份环境你可以给每个目标数据库设置一些固定的配置,这些配置控制着RMAN多个方面的行为.例如,你可配置备份的保存策略.默认的备份目录.默认的备份设备类型等.你可以用show命令来查看配置及用configure来修改RMAN的配置. 1.查看和清除RMAN配置参数show命令可以查看RMAN当前的配置情况,以及这些参数当前是否设置了默认值.SHOW ALL; --查看说有的配置情况 你也可以通过SHOW命令加指定的配置参数的名字来查看它的值.例:SHOW RETENTION POL

RAC 之 RMAN 备份

这篇主要介绍的是RAC 环境下的RMAN 备份. 关于Oracle 备份与恢复的一些理论知识参考我的Blog:       Oracle 备份 与 恢复 概述 http://blog.csdn.net/tianlesoftware/archive/2010/04/16/5490733.aspx 一.     RAC 归档的设置 1.1  相关理论知识 RAC 在运行的时候,每个实例都会产生归档日志,所有实例的归档日志集中在一起,才能完整地代表数据库的操作历史,此外,只有进行介质恢复(Media

RAC RMAN备份

这篇主要介绍的是RAC 环境下的RMAN 备份. 关于Oracle 备份与恢复的一些理论知识参考我的Blog:       Oracle 备份 与 恢复 概述 http://blog.csdn.net/tianlesoftware/archive/2010/04/16/5490733.aspx 一.     RAC 归档的设置 1.1  相关理论知识 RAC 在运行的时候,每个实例都会产生归档日志,所有实例的归档日志集中在一起,才能完整地代表数据库的操作历史,此外,只有进行介质恢复(Media

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性 作者:赵全文  网名:guestart 我们生产环境的Oracle数据库都做了RMAN备份,是采用了一周的RMAN备份保留策略:除了使用RMAN备份以外,我们还使用了爱数(Eisoo)备份软件来进行备份,可以说是做到了有备无患.可是,如果有一天,Oracle数据库由于主机层面硬件原因或是数据库层面的原因不能对外提供高可用服务的时候,假设数据丢了一大部分,我们只有用RMAN备份来进行恢复,再如果发现,RMAN备份失效了,那就往地缝里

Oracle 11g R2 RAC RMAN备份脚本示例

一.将RAC切换成归档模式 1. 修改数据库的归档模式,通常在安装RAC的时候都会配置归档并且使用闪回区,已经配置过归档下面的方式可以略过. SQL> alter system set cluster_database=false scope=spfile sid='*'; 2. 关闭所有实例(两边都要shutdown) SQL> shutdown immediate 或直接关闭所有实例   $ srvctl stop database -d orcl 3. 在任意一个实例上将数据库启动到mo

rman备份工具简介

RMAN工具简介: 备份的文件: 数据文件 归档日志 控制文件(当前控制文件) spfile 自动管理备份相关元数据 文件名称 完成备份的scn 以数据块为单位,只备份使用过的数据块(物理层面判断是否使用) 备份时查询块状态,备份瞬间有修改块 等待块使用完成再备份 因此不会出现块分离 对备份出来的文件进行压缩 自身压缩+支持压缩参数 加参数压缩 5:1 自动检测数据块是否损坏 块损坏,不对其备份 支持增量备份 使用rman前提条件: 正确的环境变量 正确的实例名 sys用户操作(推荐) 监听不支

搭建ORACLE DataGuard(使用RMAN备份)

搭建ORACLE DataGuard(使用RMAN备份) 操作系统:windows 2008 数据库:11.1.0.6 一.信息收集 1.配置信息收集 说明  主机名   IP地址      db_name   sid   DB_UNIQUE_NAME  Service_name 主库   dg1  192.168.0.11     orcl    orcl    orcldg1       orcldg1 备库   dg2  192.168.0.22     orcl    orcl    o

公司备份方案

随着科技的变化,人们对网络的依赖性越来越强,网站也逐渐成为企业与内部和外界进行信息的交流和共享的重要平台.当网站成为企业的商用工具后,数据的规模也越来越大,无论是内.外部数据均呈几何级增长,相关的数据便成了企业网站最重要的资产,数据的丢失或毁坏可能会给企业带来不可估量的损失.然而,病毒入侵.硬件故障.软件崩溃等难以预测的意外问题或者是误操作等人为因素都时刻威胁着企业网站数据的安全,因而如何保证网站数据的完整性和安全性便成了每个企业都必需考虑的问题. 一.企业网站为什么要数据备份 防止数据丢失的第