以前在博客里面介绍了RMAN备份脚本一列分享,通过RMAN备份到本地路径,然后通过FTP将备份文件上传到FTP服务器。 下面简单介绍另外一例RMAN备份解决方案,下面是我简单画的一个图(很少画图,感觉有点粗制滥造)。

首先将数据库备份到本地服务器的一个目录下(目录是按日期格式生成,本地备份保留周期视存储情况而定.一般一天即可)。

然后将备份文件通过Symantec Backup Exec 2012 Agent 将本地备份上传到磁带设备(容灾备份,磁带备份保留90天)。

最后清理本地备份路径下的备份。

如上所示,只有三个步骤,整体思路非常简单,下面介绍一下实施的具体脚本

首先介绍一下备份脚本backup_db_xxxx.sh (注意xxx为数据库实例名称,脚本里面很多xxx需要根据具体场景进行替换,例如实例名称、邮件地址等)

   1: #********************************************************************************

   2: #  FileName     :               backup_db_xxxx.sh 

   3: #********************************************************************************

   4: #  Author       :               Tommy

   5: #  CreateDate   :               2012-07-18

   6: #  Description  :               this script is backup the oracle database by rman

   7: #********************************************************************************

   8: #   Parameters  :                         参数说明

   9: #********************************************************************************

  10: #                                    此脚本无参数,直接调用即可

  11: #********************************************************************************

  12: #      Modified Date    Modified User     Version            Modified Reason

  13: #********************************************************************************

  14: #      2014-04-26         Kerry           V1.0.1       脚本部分地方、调整脚本格式

  15: # 

  16: #********************************************************************************

  17:  

  18:  

  19:  

  20: #REM - USER DEFINED VARIABLES -

  21: export DATESTAMP=`date '+%F'`

  22:  

  23: #REM - Oracle specific settings: -

  24: . /home/oracle/.bash_profile

  25: export CATALOG=NOCATALOG

  26:  

  27: #REM - Specify the Logfiles -

  28: export BACKUP_FULL_LOG=/u04/backup/backuplogs/rman_backup_db_xxx_$DATESTAMP.log

  29:  

  30: #REM - BACKUP SECTION -

  31: echo $BACKUP_FULL_LOG

  32: rman target / $CATALOG cmdfile=/u04/backup/scripts/backup_db_xxx.rcv log=$BACKUP_FULL_LOG

  33:  

  34: EMAILTMP=/u04/backup/backuplogs/rman_backup_db_xxx_$DATESTAMP.TMP

  35:  

  36: ######################## config email parameters ##########################

  37: echo 'Content-Type: text/html' > $EMAILTMP

  38: echo 'To: xxx@xxx.com, xxx@xxx.com,xxx@xxx.com' >> $EMAILTMP

  39: echo 'Subject : Backup Status - xxxx(RMAN hot backup)' >> $EMAILTMP

  40: echo '<pre style="font-family: courier; font-size: 9pt">' >> $EMAILTMP

  41: ###########################################################################

  42:  

  43: echo "=======================================================" >> $EMAILTMP

  44: echo "================ Daily Backup for xxxx ================" >> $EMAILTMP

  45: echo "=======================================================" >> $EMAILTMP

  46: echo " " >> $EMAILTMP 

  47:  

  48: cat $BACKUP_FULL_LOG >> $EMAILTMP 2>&1

  49: echo " " >> $EMAILTMP 

  50: echo "================ End of Rman Backup ==================" >> $EMAILTMP

  51: echo "======================================================" >> $EMAILTMP

  52:  

  53: /usr/sbin/sendmail -t -f "BackupAdmin" < $EMAILTMP

  54: rm $EMAILTMP

 
backup_db_xxx.rcv 文件其实RMAN的命令文件(backup_db_xxxx.sh 里面调用)。如下所示
   1: run {

   2: CONFIGURE RETENTION POLICY TO REDUNDANCY 2; # default

   3: CONFIGURE BACKUP OPTIMIZATION ON;

   4: CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

   5: CONFIGURE CONTROLFILE AUTOBACKUP ON;

   6: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u04/backup/backupsets/ora_cf%F';

   7: CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

   8: CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

   9: CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

  10: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u04/backup/backupsets/ora_df%t_s%s_s%p';

  11: CONFIGURE MAXSETSIZE TO UNLIMITED; # default

  12: CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

  13: CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

  14: CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

  15: sql 'alter system archive log current';

  16: backup as compressed backupset database plus archivelog delete input;

  17: copy current controlfile to '/u04/backup/backupsets/controlfile.copy';

  18: }

  19: exit

delete_obj_xxxx.sh  文件如下所示:

   1: #*****************************************************************************************

   2: #  FileName     :               delete_obj_xxxx.sh 

   3: #*****************************************************************************************

   4: #  Author       :               Tommy

   5: #  CreateDate   :               2012-07-18

   6: #  Description  :               this script is delete the obsolete object through rman

   7: #*****************************************************************************************

   8: #   Parameters  :                                             参数说明

   9: #*****************************************************************************************

  10: #                                                                此脚本无参数,直接调用即可

  11: #*****************************************************************************************

  12: #      Modified Date    Modified User     Version            Modified Reason

  13: #*****************************************************************************************

  14: #      2014-04-26         Kerry           V1.0.1         修改脚本部分地方、调整脚本格式

  15: # 

  16: #                               

  17: #                               

  18: #*****************************************************************************************

  19:  

  20:  

  21: #REM - USER DEFINED VARIABLES -

  22: export DATESTAMP=`date '+%F'`

  23:  

  24: #REM - Oracle specific settings: -

  25: . /home/oracle/.bash_profile

  26: export CATALOG=NOCATALOG

  27:  

  28: #REM - Specified the logfiles -

  29: export BACKUP_FULL_LOG=/u04/backup/backuplogs/rman_delete_ob_xxx_$DATESTAMP.log

  30:  

  31: #REM - BACKUP SECTION -

  32: echo $BACKUP_FULL_LOG

  33: rman target / $CATALOG cmdfile=/u04/backup/scripts/delete_ob_xxx.rcv log=$BACKUP_FULL_LOG

/u04/backup/scripts/delete_ob_xxx.rcv文件为RMAN的cmdfile,如下所示

   1: run {

   2: CONFIGURE RETENTION POLICY TO REDUNDANCY 2; # default

   3: CONFIGURE BACKUP OPTIMIZATION ON;

   4: CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

   5: CONFIGURE CONTROLFILE AUTOBACKUP ON;

   6: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u04/backup/backupsets/ora_cf%F';

   7: CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

   8: CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

   9: CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

  10: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u04/backup/backupsets/ora_df%t_s%s_s%p';

  11: CONFIGURE MAXSETSIZE TO UNLIMITED; # default

  12: CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

  13: CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

  14: CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

  15: sql 'alter system archive log current';

  16: delete obsolete;

  17: }

然后再crontab作业里面配置作业

15 00 * * * /u04/backup/scripts/backup_db_xxx.sh >/dev/null 2>&1

00 08 * * * /u04/backup/scripts/delete_ob_xxx.sh >/dev/null 2>&1

也许会有人问,不是还有Symantec Backup Exec Agent 将备份文件上带吗,其实关于这个,首先需要在Linux服务器安装Symantec Backup Exec 2012 Agent,这个可以参考我博客Symantec Backup Exec 2012 Agent For Linux安装。在配置文件指定Symantec Backup Exec Server,然后只需要在服务器设定一个作业定时备份文件即可。感觉没有啥可以说的。

Oracle RAMN 备份解决方案一例的更多相关文章

  1. Oracle RMAN 备份一例

    Oracle RMAN备份一例: Solaris 10 + Oracle 11.2.0.3 Shell:csh,安装有bash,脚本调用bash 备份策略:周日0级备份,周一~周六1级备份,每6小时备 ...

  2. Oracle Ora 错误解决方案合集

    注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...

  3. oracle 数据库备份、还原、和使用心得(表丢失、视图丢失的解决办法)

    一.oracle数据备份:exp 关键字     说明(默认值)                  关键字      说明(默认值) --------------------------------- ...

  4. Oracle 数据库备份和恢复配置

    可能的失败及其解决方法 失败类型 我们坑你遇到的失败或错误分为两大类:物理和逻辑.物理错误一般是硬件错误或使用数据库的应用程序中的软件错误,而逻辑错误一般在终端用户级别(数据库用户和管理员). 按从轻 ...

  5. Oracle DB备份恢复篇之丢失控制文件

    实验目的 本篇主要模拟控制文件丢失后,如何根据实际情况恢复数据库,才能使数据库尽可能不丢失数据. 实验环境 1)Linux系统环境 [oracle@DG1 ~]$ lsb_release -a LSB ...

  6. ORACLE RMAN备份及还原 RMAN能够进行增量备份:数据库,表空间,数据文件

    ORACLE RMAN备份及还原   RMAN能够进行增量备份:数据库.表空间.数据文件 仅仅有使用过的block能够被备份成backup set 表空间与数据文件相应关系:dba_data_file ...

  7. Oracle数据库备份/导出(exp/expd)、导入(imp/impd)

    ​ 常用的oracle数据库备份(导入/导出)有两种,分别是exp/imp和expd/impd,前者是Orace早期版本带有的导入导出工具,后者是Oracle10g后出现的,下面进行分别介绍! 1.e ...

  8. Oracle 定时备份数据库

    [操作说明] 在前面的博客中,学习了如何Oracle如何备份数据库,实际开发过程中数据库应该每隔一段时间就要备份一次,所以我们就需要一个定时执行这个代码的功能,同时备份的文件可能进行一些处理,比如压缩 ...

  9. oracle(数据备份)

    1 --oracle数据备份(三种方法) 2 --1.逻辑备份与恢复:用Oracle提供的工具,导入/导出(exp,imp),数据 3 --泵导入/导出(impdp,expdp),装入器(SQL*Lo ...

随机推荐

  1. js作用域和变量提升

    Function declarations and variable declarations are always moved (“hoisted”) invisibly to the top of ...

  2. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则

    众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...

  3. 基于python的七种经典排序算法

    参考书目:<大话数据结构> 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. ...

  4. 一个简单的inno setup模板

    一.模板代码 基本功能包括多路径安装.多语言.自定义图标. [Setup] ShowLanguageDialog=yes AppCopyright=Copyright Reserved(C) , 36 ...

  5. 在 Ubuntu 上安装 Android Studio

    在 Ubuntu 上安装 Android Studio http://www.linuxidc.com/Linux/2013-05/84812.htm 打开terminal,输入以下命令 sudo a ...

  6. Effective java笔记(四),泛型

    泛型为集合提供了编译时类型检查. 23.不要在代码中使用原生态类型 声明中具有一个或多个类型参数的类或接口统称为泛型.List<E>是一个参数化类,表示元素类型为E的列表.为了提供兼容性, ...

  7. Xamarin.Android之封装个简单的网络请求类

    一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...

  8. Android网络编程1

    最近在自学Android开发,从这篇开始作为我学习android开发的笔记,来记录学习过程中遇到的问题点和其解决的方法: Ui界面代码 <?xml version="1.0" ...

  9. WPF CheckBox 自定义样式

    WPF 自定义样式.CheckBox <Style x:Key="EmptyCheckBox" TargetType="CheckBox"> < ...

  10. ios 学习笔记之控件属性

    1.文本框 设置密码属性:Secure Text Entry 勾选; 设置文本框带清除属性: Clear Button =Is always visible;  默认是不带清除属性:Never app ...