博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle Rman 备份脚本
阅读量:4550 次
发布时间:2019-06-08

本文共 3043 字,大约阅读时间需要 10 分钟。

   本文是一个shell脚本。主要用于Oracle 数据库备份。默认情况下,在周一晚上进行全备。其他时间进行累积增量备份。

  使用方法:

  假如脚本保存名为: oracle_backup.sh

  使用方法为 oracle_backup.sh -p $ORACLE_DIRECTORY -L $BACKUP_LEVEL

  ORACLE_DIRECTORY 可从dba_directories 里查询所得。

  BACKUP_LEVEL: 0(全备) 1 增量。

 

#!/bin/sh################################################################: This script is used to backup Oracle database with RMAN.   ##: A full backup will be taken early moring on Monday .       ##: I recomment that the incremental backup should be taken on ##: every day except Monday.                                   ##: Made by Halberd(Asiainfo-PMO) , 20160827                   ##: Modify Records:                                            ##: 1.                                                         ##: Thu May  4 19:42:54 CST 2017                               ##: halberd                                                    ##   add getopts . make the scripts more flexible              #################################################################: initial environmentsource ~/.bash_profile#: judge if parameters are offered[ $# == 0 ] && echo -e "Usage :: $0 -[pl]\n p --> backup path \n l --> backup level with 0(full) or 1(incremental) \n examples:: \n $0 -p /home/oracle -l 1" && exit 1#: variables setting#:             attach the arguments values to their variableswhile getopts p:l: optiondo    case "$option" in    p)            BACK_PATH="$OPTARG"        ;;  l)            if        [ "$OPTARG" == 0 ] ;        then        LEVEL=0        elif        [ "$OPTARG" == 1 ] ;        then        LEVEL=1        else        echo "Level 0 or 1 is recommended. You should better choose 0 for full backup or 1 for incremental backup"                exit 1        fi        ;;        \?)            echo "Usage:  [-p 
] [-l]" echo "-p : the path in which backup files will be allocated" echo "-l : RMAN backup level" exit 1 ;; esacdone#: initial other basic variablesmd=`date +%m%d`weekday=`date +%w`if [ -z "$BACK_PATH" ] ;then BACK_PATH="$ORACLE_HOME"/dbs echo -e "WARNING :: The backup piecies will be stored in $ORACLE_HOME/dbs .\n "fiif [ -z "$LEVEL" ] ;then if [ "$weekday" == 1 ] ; then LEVEL=0 else LEVEL=1 fifi BACK_FORMAT="$BACK_PATH"/db"$LEVEL"'_%d_%T_%u' echo "BACKUP_PATH: $BACK_PATH" echo "BACKUP_LEVEL:" "$LEVEL" echo "BACKUP_FORMAT: $BACK_FORMAT"#: generate the rman commandsback_comm='run{ allocate channel c1 type disk;\nallocate channel c2 type disk;\nallocate channel c3 type disk;\nbackup as compressed backupset incremental level '"$LEVEL"' format '\'"$BACK_FORMAT"\'' database include current controlfile plus archivelog delete input;\nrelease channel c1;\nrelease channel c2;\nrelease channel c3;\n}\ncrosscheck archivelog all;\ndelete noprompt expired archivelog all;\nreport obsolete;\ndelete noprompt obsolete;\nexit'#: execute rman backup echo -e $back_comm| rman target sys/oracle log "$BACK_PATH"/rman_"$md".logexit

 

转载于:https://www.cnblogs.com/halberd-lee/p/7807047.html

你可能感兴趣的文章
笔记31 | 归纳总结Android的点击事件
查看>>
实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析
查看>>
VBS 常用总汇 (http://blog.csdn.net/sgear/article/details/1380223)
查看>>
如何在SYSTEM权限下实现屏幕监控(转)
查看>>
spring的配置与使用
查看>>
Oracle实战笔记(第六天)之PL/SQL基础
查看>>
LeetCode OJ 337. House Robber III
查看>>
理解Array.prototype.fill和Array.from
查看>>
实验四
查看>>
javase-整数变量的交换
查看>>
使用Windows系统搭建Centos局域网YUM源
查看>>
跨平台的移动开发框架介绍
查看>>
String,StringBuffer与StringBuilder的区别
查看>>
Vim安装YouCompleteMe插件
查看>>
Java冒泡排序与二分法查找的代码随笔
查看>>
理解javascript观察者模式(订阅者与发布者)
查看>>
使用cocostudio 需要在Android.mk文件的配置
查看>>
WPF换肤之二:可拉动的窗体
查看>>
Lambda表达式
查看>>
VS2012智能感知变英文解决办法
查看>>