您的位置:首页 > 运维架构 > Linux

centos下通过RMAN配置自动增量备份

2012-03-09 11:04 363 查看
centos下通过RMAN配置自动增量备份

系统: centos 5.5

数据库: oracle 11gR2

1.备份策略

周日执行 0 级的 incremental 备份

周一执行 2 级的 incremental 备份

周二执行 2 级的 incremental 备份

周三执行 1 级的 incremental 备份

周四执行 2 级的 incremental 备份

周五执行 2 级的 incremental 备份

周六执行 2 级的 incremental 备份

2.生成三个 rman 调用的备份脚本(0 级,1 级,2 级)

先创建需要的目录

mkdir –p /u01/backup/ 存放备份脚本的目录

mkdir /u01/backup/ 存放备份的目录

0级脚本:

[root@rac1 backup]# more backup_lv0.sql

run {

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental level 0 database

include current controlfile format '/u01/backup/backup_%T_%s_%p.lv0'

plus archivelog delete all input format '/u01/backup/backup_%T_%s_%p.arc';

release channel c1;

release channel c2;

}

1级脚本:

[root@rac1 backup]# more backup_lv1.sql

run {

allocate channel c1 type disk;

backup incremental level 1 database include current controlfile

format '/u01/backup/backup_%T_%s_%p.lv1';

release channel c1;

}

2级脚本:

[root@rac1 backup]# more backup_lv2.sql

run {

allocate channel c1 type disk;

backup incremental level 2 database include current controlfile

format '/u01/backup/backup_%T_%s_%p.lv2';

release channel c1;

}

3.创建自动备份的shell程序

[root@rac1 backup]# more backup.sh

#!/bin/bash

#edit: daniel

#date:2012-03-08

#auto backup database

#load Environment variables

source /home/oracle/.bash_profile

myweek=`date +%a`

mydate=`date +%Y%m%d`

mydir=/u01/backup

#Sunday

if [ "$myweek" == "Sun" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv0.sql

fi

#Monday

if [ "$myweek" == "Mon" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv2.sql

fi

#Tuesday

if [ "$myweek" == "Tue" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv2.sql

fi

#Wednesday

if [ "$myweek" == "Wed" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv1.sql

fi

#Thursday

if [ "$myweek" == "Thu" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv2.sql

fi

#Friday

if [ "$myweek" == "Fri" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv2.sql

fi

#Saturday

if [ "$myweek" == "Sat" ]; then

rman target / msglog=${mydir}/backup_${mydate}.log cmdfile=${mydir}/backup_lv2.sql

fi

4.用cron创建定时执行任务,默认情况下,cron为开机自动启动的

执行 crontab –e 添加以下语句:

00 01 * * * sh /u01/backup/backup.sh

保存退出

(00 表示分钟 01 表示小时 后面三个*表示日期和星期,因为这里每天都要执行,所以用*

表示,整条语句表示每天的 1:00 开始执行备份脚本)

[oracle@rac1 ~]$ /sbin/chkconfig --list

NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off

acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off

anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off

atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off

avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off

avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

bluetooth 0:off 1:off 2:on 3:on 4:on 5:on 6:off

capi 0:off 1:off 2:off 3:off 4:off 5:off 6:off

conman 0:off 1:off 2:off 3:off 4:off 5:off 6:off

cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off

crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off

看crond是否自动启动

备注:

权限如下:

[root@rac1 backup]# ll

total 4932644

-rw-r----- 1 oracle asmadmin 162209792 Mar 9 01:00 backup_20120309_14_1.lv2

-rw-r----- 1 oracle asmadmin 18874368 Mar 9 01:00 backup_20120309_15_1.lv2

-rw-r--r-- 1 oracle oinstall 2154 Mar 9 01:00 backup_20120309.log

-rw-r--r-- 1 oracle oinstall 294 Mar 2 10:52 backup_lv0.sql

-rw-r--r-- 1 oracle oinstall 165 Mar 2 15:15 backup_lv1.sql

-rw-r--r-- 1 oracle oinstall 165 Mar 5 16:26 backup_lv2.sql

-rwxr-xr-x 1 oracle oinstall 1135 Mar 8 15:23 backup.sh

看系统发给oracle 用户的mail

[root@rac1 backup]# cd /var/mail

[root@rac1 mail]# ls

oracle root rpc

[root@rac1 mail]# more oracle

From oracle@localhost.localdomain Fri Mar 9 01:00:27 2012

Return-Path: <oracle@localhost.localdomain>

Received: from localhost.localdomain (rac1 [127.0.0.1])

by localhost.localdomain (8.13.8/8.13.8) with ESMTP id q28H0R1X000410

for <oracle@localhost.localdomain>; Fri, 9 Mar 2012 01:00:27 +0800

Received: (from oracle@localhost)

by localhost.localdomain (8.13.8/8.13.8/Submit) id q28H04uF000380;

Fri, 9 Mar 2012 01:00:04 +0800

Date: Fri, 9 Mar 2012 01:00:04 +0800

Message-Id: <201203081700.q28H04uF000380@localhost.localdomain>

From: root@localhost.localdomain (Cron Daemon)

To: oracle@localhost.localdomain

Subject: Cron <oracle@rac1> sh /u01/backup/backup.sh

Content-Type: text/plain; charset=UTF-8

Auto-Submitted: auto-generated

X-Cron-Env: <SHELL=/bin/sh>

X-Cron-Env: <HOME=/home/oracle>

X-Cron-Env: <PATH=/usr/bin:/bin>

X-Cron-Env: <LOGNAME=oracle>

X-Cron-Env: <USER=oracle>

RMAN> 2> 3> 4> 5> 6> 7>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: