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

  使用方法:

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

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

  ORACLE_DIRECTORY 可从dba_directories 里查询所得。

  BACKUP_LEVEL: 0(全备) 1 增量。

  1. #!/bin/sh
  2. ###############################################################
  3. #: This script is used to backup Oracle database with RMAN. #
  4. #: A full backup will be taken early moring on Monday . #
  5. #: I recomment that the incremental backup should be taken on #
  6. #: every day except Monday. #
  7. #: Made by Halberd(Asiainfo-PMO) , #
  8. #: Modify Records: #
  9. #: . #
  10. #: Thu May :: CST #
  11. #: halberd #
  12. # add getopts . make the scripts more flexible #
  13. ###############################################################
  14.  
  15. #: initial environment
  16.  
  17. source ~/.bash_profile
  18.  
  19. #: judge if parameters are offered
  20.  
  21. [ $# == ] && 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
  22.  
  23. #: variables setting
  24. #: attach the arguments values to their variables
  25. while getopts p:l: option
  26. do
  27. case "$option" in
  28. p)
  29. BACK_PATH="$OPTARG"
  30. ;;
  31. l)
  32. if
  33. [ "$OPTARG" == ] ;
  34. then
  35. LEVEL=
  36. elif
  37. [ "$OPTARG" == ] ;
  38. then
  39. LEVEL=
  40. else echo "Level 0 or 1 is recommended. You should better choose 0 for full backup or 1 for incremental backup"
  41. exit
  42. fi
  43. ;;
  44. \?)
  45. echo "Usage: [-p <PATH>] [-l]"
  46. echo "-p : the path in which backup files will be allocated"
  47. echo "-l : RMAN backup level"
  48. exit
  49. ;;
  50. esac
  51.  
  52. done
  53.  
  54. #: initial other basic variables
  55.  
  56. md=`date +%m%d`
  57. weekday=`date +%w`
  58.  
  59. if [ -z "$BACK_PATH" ] ;
  60. then
  61. BACK_PATH="$ORACLE_HOME"/dbs
  62. echo -e "WARNING :: The backup piecies will be stored in $ORACLE_HOME/dbs .\n "
  63. fi
  64.  
  65. if [ -z "$LEVEL" ] ;
  66. then
  67. if [ "$weekday" == ] ;
  68. then LEVEL=
  69. else LEVEL=
  70. fi
  71. fi
  72.  
  73. BACK_FORMAT="$BACK_PATH"/db"$LEVEL"'_%d_%T_%u'
  74.  
  75. echo "BACKUP_PATH: $BACK_PATH"
  76. echo "BACKUP_LEVEL:" "$LEVEL"
  77. echo "BACKUP_FORMAT: $BACK_FORMAT"
  78.  
  79. #: generate the rman commands
  80. back_comm='
  81. run{
  82. allocate channel c1 type disk;\n
  83. allocate channel c2 type disk;\n
  84. allocate channel c3 type disk;\n
  85. backup as compressed backupset incremental level '"$LEVEL"' format '\'"$BACK_FORMAT"\'' database include current controlfile plus archivelog delete input;\n
  86. release channel c1;\n
  87. release channel c2;\n
  88. release channel c3;\n
  89. }\n
  90. crosscheck archivelog all;\n
  91. delete noprompt expired archivelog all;\n
  92. report obsolete;\n
  93. delete noprompt obsolete;\n
  94. exit
  95. '
  96.  
  97. #: execute rman backup
  98. echo -e $back_comm| rman target sys/oracle log "$BACK_PATH"/rman_"$md".log
  99. exit

oracle 备份脚本的更多相关文章

  1. 5、Oracle备份(oracle备份脚本配置)

    1.1 Oracle数据库备份 1.1.1 链接Oracle介质管理库 请在数据库节点上操作. [oracle@db01/usr/openv/netbackup/bin]$ ./oracle_link ...

  2. oracle备份脚本

    利用EXP导出全库,必须用SYSTEM或者DBA用户来导出. 具体脚本实现如下 全库导出(fullbackup): #!/bin/bash bname=`date +%Y%m%d` cd /backu ...

  3. Oracle自动备份脚本(网上找到的资料)

    废话不多说了,直接给大家贴代码了,具体代码如下所示: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  4. Windows环境下Oracle数据库的自动备份脚本

    批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据 ...

  5. oracle expdp自动备份脚本

    windows: @echo off echo ================================================ echo Windows环境下Oracle数据库的自动 ...

  6. Windows:Oracle 11g 备份脚本

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  7. Oracle自动备份脚本的实现

    问题描述: Oracle自动备份脚本的实现. 错误提示1: Message file RMAN.msb not found Verify that Oracle_HOME is set properl ...

  8. Oracle数据库的自动备份脚本

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  9. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

随机推荐

  1. Eclipse安装教程 ——史上最详细安装Java &Python教程说明

    参考链接:https://blog.csdn.net/zichen_ziqi/article/details/73995755

  2. C# 判断网络是否连接

    bool isconn = true; PingReply pr; Ping ping = new Ping(); pr = ping.Send("lightyiyi.cn"); ...

  3. 椭圆曲线密码学ECC

      椭圆曲线密码学(Elliptic curve cryptography),简称ECC,是一种建立公开密钥加密的算法,也就是非对称加密.类似的还有RSA,ElGamal算法等.ECC被公认为在给定密 ...

  4. python中模块的__all__属性

    python模块中的__all__属性,可用于模块导入时限制,如:from module import *此时被导入模块若定义了__all__属性,则只有__all__内指定的属性.方法.类可被导入. ...

  5. JavaScript-client、offset、scroll、定时器

    client offset scroll client.offset.scroll系列 他们的作用主要与计算盒模型,盒子的偏移量和滚动有关 clientTop 内容区域到边框顶部的距离, 说白了, 就 ...

  6. python3+selenium入门09-键盘事件

    Keys类提供了键盘上几乎所有按键的方法.通过send_keys()方法不仅可以用来模拟键盘输入,还可以用它来模拟键盘上的按键.包括组合键,比如Ctrl+a等 需要导入Keys类 from selen ...

  7. TextArea 保存时换行符处理

    后台数据保存时就要处理“\r\n",替换成”<br />",前台(html)页面显示时再做下处理. 自己是mvc页面,用到了两个方法:Html.Raw(),以及Http ...

  8. Jquyer轮播带数字和提示文字

    效果图如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  9. 40)django-常用过滤器

    一.形式:小写 {{ name | lower }} 二.过滤器是可以嵌套的,字符串经过三个过滤器,第一个过滤器转换为小写,第二个过滤器输出首字母,第三个过滤器将首字母转换成大写 标签 {{ str| ...

  10. 洛谷P4841 城市规划 [生成函数,NTT]

    传送门 题意简述:求\(n​\)个点的简单无向连通图的数量\(\mod \;1004535809​\),\(n \leq 130000​\) 经典好题呀!这里介绍两种做法:多项式求逆.多项式求对数 先 ...