热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nocatalog下的RMAN增量备份shell脚本

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

之前整理了下catalog下全备的脚本,上次在生产库上弄了个nocatalog的脚本,结果没有在本本上保存,这次要用了,重新在整理了一下。

Linux 平台下 RMAN 全备 和 增量备份 shell 脚本

2011-02/32707.htm

在执行脚本之前,先修改几个参数值:

1. DB 参数:

修改控制文件的保存时间,从默认的7天改成14天

SQL> show parameter control

SQL> alter system set control_file_record_keep_time=14 scope=both;

2. RMAN 参数:

开启控制文件的自动备份,开启之后在数据库备份或者数据文件(比如添加数据文件)有修改的时候都会自动备份控制文件和spfile文件。

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

3. 备份策略根据自己的系统决

我这里是周日做0级备份。周四1级备份,其他2级备份。

4. 备份脚本如下:

##################################################################

##   rman_incremental_backup.sh               ##

##    created by Tianlesoftware                 ##

##        2011-1-25                         ##

##################################################################

#!/bin/ksh

export LANG=en_US

BACKUP_DATE=`date +%d`

RMAN_LOG_FILE=${0}.out

TODAY=`date`

USER=`id|cut -d "(" -f2|cut -d ")" -f1`

echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE

Oracle_HOME=/u01/app/oracle/product/10.2.0/db_1

export ORACLE_HOME

RMAN=$ORACLE_HOME/bin/rman

export RMAN

ORACLE_SID=orcl

export ORACLE_SID

ORACLE_USER=oracle

export ORACLE_USER

 

echo "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILE

echo "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE

echo "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE

echo "==========================================">>$RMAN_LOG_FILE

echo "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILE

echo "                   ">>$RMAN_LOG_FILE

chmod 666 $RMAN_LOG_FILE

 

WEEK_DAILY=`date +%a`

case  "$WEEK_DAILY" in

       "Mon")

            BAK_LEVEL=2

            ;;

       "Tue")

            BAK_LEVEL=2

            ;;

       "Wed")

            BAK_LEVEL=2

            ;;

       "Thu")

            BAK_LEVEL=1

            ;;

       "Fri")

            BAK_LEVEL=2

            ;;

       "Sat")

            BAK_LEVEL=2

            ;;

       "Sun")

            BAK_LEVEL=0

            ;;

       "*")

            BAK_LEVEL=error

esac

 

export BAK_LEVEL=$BAK_LEVEL

echo "Today is : $WEEK_DAILY  incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE

 

RUN_STR="

BAK_LEVEL=$BAK_LEVEL

export BAK_LEVEL

ORACLE_HOME=$ORACLE_HOME

export ORACLE_HOME

ORACLE_SID=$ORACLE_SID

export ORACLE_SID

$RMAN nocatalog TARGET sys/admin msglog $RMAN_LOG_FILE append <

run

{

allocate channel c1 type disk;

allocate channel c2 type disk;

backup  incremental level= $BAK_LEVEL  skip inaccessible filesperset 5 Database format='/u01/backup/orcl_lev"$BAK_LEVEL"_%U_%T'  tag='orcl_lev"$BAK_LEVEL"' ;

sql 'alter system archive log current';

backup archivelog all tag='arc_bak' format='/u01/backup/arch_%U_%T' skip inaccessible  filesperset 5 not  backed up 1 times  delete input;

backup current controlfile tag='bak_ctlfile' format='/u01/backup/ctl_file_%U_%T';

backup spfile tag='spfile' format='/u01/backup/ORCL_spfile_%U_%T';

release channel c2;

release channel c1;

}

allocate channel for maintenance device type disk;

report obsolete;

delete noprompt obsolete;

crosscheck backup;

delete noprompt expired backup;

list backup summary;

release channel;

EOF

"

 # Initiate the command string

 

if [ "$CUSER" = "root" ]

then

    echo "Root Command String: $RUN_STR" >> $RMAN_LOG_FILE    

    su - $ORACLE_USER -c "$RUN_STR" >> $RMAN_LOG_FILE

    RSTAT=$?

else

    echo "User Command String: $RUN_STR" >> $RMAN_LOG_FILE    

    /bin/sh -c "$RUN_STR" >> $RMAN_LOG_FILE

    RSTAT=$?

fi

 

# ---------------------------------------------------------------------------

# Log the completion of this script.

# ---------------------------------------------------------------------------

 

if [ "$RSTAT" = "0" ]

then

    LOGMSG="ended successfully"

else

    LOGMSG="ended in error"

fi

echo >> $RMAN_LOG_FILE

echo Script $0 >> $RMAN_LOG_FILE

echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE

echo >> $RMAN_LOG_FILE

/bin/mailx -s "RMAN Backup SID " www.test.com@www.test.com <$RMAN_LOG_FILE

exit $RSTAT

 

5. 备份脚本的log 日志:

 

connected to target database: DAVE (DBID=801102850)

using target database control file instead of recovery catalog

 

RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12>

allocated channel: c1

channel c1: sid=158 devtype=DISK

 

allocated channel: c2

channel c2: sid=147 devtype=DISK

 

Starting backup at 01-FEB-12

channel c1: starting incremental level 2 datafile backupset

channel c1: specifying datafile(s) in backupset

input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system.256.736598559

input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users.259.736598641

channel c1: starting piece 1 at 01-FEB-12

channel c2: starting incremental level 2 datafile backupset

channel c2: specifying datafile(s) in backupset

input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux.257.736598563

input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs1.258.736598599

channel c2: starting piece 1 at 01-FEB-12

channel c1: finished piece 1 at 01-FEB-12

piece handle=/u02/backup/orcl_lev2_0dn287g3_1_1_20120201 tag=ORCL_LEV2 comment=NONE

channel c1: backup set complete, elapsed time: 00:00:36

channel c2: finished piece 1 at 01-FEB-12

piece handle=/u02/backup/orcl_lev2_0en287g3_1_1_20120201 tag=ORCL_LEV2 comment=NONE

channel c2: backup set complete, elapsed time: 00:00:36

Finished backup at 01-FEB-12

 

Starting Control File and SPFILE Autobackup at 01-FEB-12

piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118951_7lmfms6s_.bkp comment=NONE

Finished Control File and SPFILE Autobackup at 01-FEB-12

 

sql statement: alter system archive log current

 

Starting backup at 01-FEB-12

current log archived

channel c1: starting archive log backupset

channel c1: specifying archive log(s) in backup set

input archive log thread=1 sequence=9 recid=9 stamp=774118956

channel c1: starting piece 1 at 01-FEB-12

channel c2: starting archive log backupset

channel c2: specifying archive log(s) in backup set

input archive log thread=1 sequence=10 recid=10 stamp=774118956

channel c2: starting piece 1 at 01-FEB-12

channel c1: finished piece 1 at 01-FEB-12

piece handle=/u02/backup/arch_0hn287hc_1_1_20120201 tag=ARC_BAK comment=NONE

channel c1: backup set complete, elapsed time: 00:00:02

channel c1: deleting archive log(s)

archive log filename=/u01/archivelog/1_9_738254360.arch recid=9 stamp=774118956

channel c2: finished piece 1 at 01-FEB-12

piece handle=/u02/backup/arch_0gn287hc_1_1_20120201 tag=ARC_BAK comment=NONE

channel c2: backup set complete, elapsed time: 00:00:03

channel c2: deleting archive log(s)

archive log filename=/u01/archivelog/1_10_738254360.arch recid=10 stamp=774118956

Finished backup at 01-FEB-12

 

Starting backup at 01-FEB-12

channel c1: starting full datafile backupset

channel c1: specifying datafile(s) in backupset

including current control file in backupset

channel c1: starting piece 1 at 01-FEB-12

channel c1: finished piece 1 at 01-FEB-12

piece handle=/u02/backup/ctl_file_0in287hg_1_1_20120201 tag=BAK_CTLFILE comment=NONE

channel c1: backup set complete, elapsed time: 00:00:02

Finished backup at 01-FEB-12

 

Starting backup at 01-FEB-12

channel c1: starting full datafile backupset

channel c1: specifying datafile(s) in backupset

including current SPFILE in backupset

channel c1: starting piece 1 at 01-FEB-12

channel c1: finished piece 1 at 01-FEB-12

piece handle=/u02/backup/ORCL_spfile_0jn287hi_1_1_20120201 tag=SPFILE comment=NONE

channel c1: backup set complete, elapsed time: 00:00:01

Finished backup at 01-FEB-12

 

Starting Control File and SPFILE Autobackup at 01-FEB-12

piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118963_7lmfn45l_.bkp comment=NONE

Finished Control File and SPFILE Autobackup at 01-FEB-12

 

released channel: c2

 

released channel: c1

 

RMAN> RMAN>

allocated channel: ORA_MAINT_DISK_1

channel ORA_MAINT_DISK_1: sid=158 devtype=DISK

 

RMAN> RMAN>

RMAN retention policy will be applied to the command

RMAN retention policy is set to recovery window of 7 days

no obsolete backups found

 

RMAN> RMAN>

RMAN retention policy will be applied to the command

RMAN retention policy is set to recovery window of 7 days

no obsolete backups found

 

RMAN> RMAN>

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/orcl_lev2_06n2877c_1_1_20120201 recid=1 stamp=774118636

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/orcl_lev2_05n2877c_1_1_20120201 recid=2 stamp=774118636

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118723_7lmfdojy_.bkp recid=3 stamp=774118725

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/arch_08n287ab_1_1_20120201 recid=4 stamp=774118732

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/arch_09n287ab_1_1_20120201 recid=5 stamp=774118732

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/ctl_file_0an287al_1_1_20120201 recid=6 stamp=774118742

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/ORCL_spfile_0bn287ao_1_1_20120201 recid=7 stamp=774118744

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118745_7lmffb20_.bkp recid=8 stamp=774118746

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/orcl_lev2_0dn287g3_1_1_20120201 recid=9 stamp=774118915

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/orcl_lev2_0en287g3_1_1_20120201 recid=10 stamp=774118923

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118951_7lmfms6s_.bkp recid=11 stamp=774118953

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/arch_0gn287hc_1_1_20120201 recid=12 stamp=774118957

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/arch_0hn287hc_1_1_20120201 recid=13 stamp=774118957

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/ctl_file_0in287hg_1_1_20120201 recid=14 stamp=774118961

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u02/backup/ORCL_spfile_0jn287hi_1_1_20120201 recid=15 stamp=774118962

crosschecked backup piece: found to be 'AVAILABLE'

backup piece handle=/u01/app/oracle/flash_recovery_area/DAVE/autobackup/2012_02_01/o1_mf_s_774118963_7lmfn45l_.bkp recid=16 stamp=774118964

Crosschecked 16 objects

 

 

RMAN> RMAN>

 

RMAN> RMAN>

 

List of Backups

===============

Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

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

1       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2

2       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2

3       B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T165843

4       B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK

5       B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK

6       B  F  A DISK        01-FEB-12       1       1       NO         BAK_CTLFILE

7       B  F  A DISK        01-FEB-12       1       1       NO         SPFILE

8       B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T165905

9       B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2

10      B  2  A DISK        01-FEB-12       1       1       NO         ORCL_LEV2

11      B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T170231

12      B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK

13      B  A  A DISK        01-FEB-12       1       1       NO         ARC_BAK

14      B  F  A DISK        01-FEB-12       1       1       NO         BAK_CTLFILE

15      B  F  A DISK        01-FEB-12       1       1       NO         SPFILE

16      B  F  A DISK        01-FEB-12       1       1       NO         TAG20120201T170243

 

RMAN> RMAN>

released channel: ORA_MAINT_DISK_1

 

RMAN> RMAN>

 

Recovery Manager complete.

 

Script rman_incremental_backup.sh

==== ended successfully on Wed Feb 1 17:02:50 EST 2012 ====

6. 将备份脚本添加到Crontab

[oracle@singledb u02]$ crontab -l

20 17 * * * /u02/rman_incremental_backup.sh 1>/u02/rman.log 2>&1 &

关于crontab 参考:

Linux Crontab 定时任务 命令详解

2007-09/7681.htm


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍如何通过注册表编辑器自定义和优化Windows文件右键菜单,包括删除不需要的菜单项、添加绿色版或非安装版软件以及将特定应用程序(如Sublime Text)添加到右键菜单中。 ... [详细]
author-avatar
淡漠少_341
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有