临时收到一个任务,就是在生产环境上定时备份oracle的数据。空闲时间搞了一下,真是一波三折,过程有点小郁闷,结果哈哈。现在进行总结一下

  (1)新建一个shell脚本test.sh

      #!/bin/bash
    currentTime=`date +%Y%m%d`     /app/admin/product/11.2.0/dbhome_1/bin/exp 用户名/密码@数据库地址 file=/app/admin/admin/bpmtest/back-     updata/${currentTime}.dmp

  (2)chmod 744 test.sh

  (3)使用linux的crontab命令定时备份

    crontab -e 进入vim编辑模式 插入     15 14 * * * /app/admin/admin/bpmtest/back-updata/test.sh (每天14时15分定时备份)

    可以使用 crontab -l 查看当前用户定时的任务

  (4)错误信息排查并解决:

    后面发现定时任务不执行,一开始以为脚本写错了,不过在linux下直接使用./test.sh发现正常执行。

    于是,查看了cron日志,vim /var/log/cron发现报错了:(admin) MAIL (mailed 77 bytes of output but got status 0x004b#012)

    百度查了一下,好象crontab执行错误的话是以邮件通知的。

    更改了执行的脚本test.sh,将错误信息输入到文件中,如下:

    #!/bin/bash

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

    /app/admin/product/11.2.0/dbhome_1/bin/exp 用户名/密码@数据库地址 file=/app/admin/admin/bpmtest/back-

    updata/${currentTime}.dmp >/app/admin/admin/bpmtest/back-updata/${currentTime}.txt 2>&1

    执行后查看错误文件,发现报错信息:Message 206 not found; No message file for product=RDBMS, facility=EXP: Release 11.2.0.1.0

    后面百度了一下,需要引入oracle的环境变量,重新修改test.sh如下:

 #!/bin/bash
    export ORACLE_HOME=/app/admin/product/11.2.0/dbhome_1     export ORACLE_SID=bpmtest      currentTime=`date +%Y%m%d`     /app/admin/product/11.2.0/dbhome_1/bin/exp 用户名/密码@数据库地址 file=/app/admin/admin/bpmtest/back-     updata/${currentTime}.dmp >/app/admin/admin/bpmtest/back-updata/${currentTime}.txt 2>&1

    后来又要定时删除备份的数据,服务器只保留最近7天的数据备份。发现在shell中linux命令不执行,后来查了一下,需要导入PATH环境变量,且执行命令需要写全路径。代码如下:

#!/bin/bash
export ORACLE_HOME=/app/admin/product/11.2.0/dbhome_1
export ORACLE_SID=bpmprd
export PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/admin/bin:/sbin:/usr/sbin:/app/admin/product/11.2.0/dbhome_1/bin
currentTime=`date +%Y%m%d`
/usr/bin/find /app/admin/admin/back-updata/ -mtime +5 -name "*.dmp" -exec rm -rf {} \;
/app/admin/product/11.2.0/dbhome_1/bin/exp bas5/bas5@10.100.2.74/bpmprd file=/app/admin/admin/back-updata/${currentTime}.dmp > /app/admin/admin/back-updata/dmp.log 2>&1
~

Linux平台下Oracle定时备份数据的更多相关文章

  1. Linux定时备份数据到百度云盘

    导读:如今的百度云盘免费容量都是2T了,即使把电脑上所有的东东都放上去,也还有大把的剩余空间.对于站长来说,是完全可以充分利用这些硬盘空间的,现在我们就用百度云盘来备份Linux服务器上的数据. 一直 ...

  2. Linux平台下Lotus Domino服务器部署案例

    Linux平台下Lotus Domino服务器部署案例 几年前我写了篇<RHAS2.1下安装中文LotusDominoR6.5图解>这篇文档被多个大型网站转载,曾帮助过很多公司系统管理员部 ...

  3. ORACLE定时备份方案

    ORACLE定时备份方案 采用ORACLE的EXP工具,实现ORACLE的备份:采用LINUX的服务crond实现定时功能. 1 编辑SH,实现备份功能 #vi oracle_backup.sh,输入 ...

  4. Linux平台下:块设备、裸设备、ASMlib、Udev相关关系

    对磁盘设备(裸分区)的访问方式分为两种:1.字符方式访问(裸设备):2.块方式访问 Solaris平台 : 在Solaris平台下,系统同时提供对磁盘设备的字符.块方式访问.每个磁盘有两个设备文件名: ...

  5. oracle定时备份与删除N天前备份文件

    oracle定时备份数据库,以及删除7天前备份的数据. 1.创建存放备份目录: mkdir /home/oracle/data_backup mkdir /home/oracle/log_backup ...

  6. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  7. 在linux平台下,设置core dump文件属性(位置,大小,文件名等)

    在linux平台下,设置core dump文件生成的方法: 1) 在终端中输入ulimit -c 如果结果为0,说明当程序崩溃时,系统并不能生成core dump. 2) 使用ulimit -c un ...

  8. Linux tar命令高级用法——备份数据

    Linux tar命令高级用法——备份数据 2015-12-31 Linux学习 Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件 ...

  9. Windows平台下Oracle实例启动过程中日志输出

    Windows平台下Oracle实例启动过程中日志输出记录. 路径:D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_orcl.log 输出内 ...

随机推荐

  1. 【BZOJ2259】[Oibh]新型计算机 最短路

    [BZOJ2259][Oibh]新型计算机 Description Tim正在摆弄着他设计的“计算机”,他认为这台计算机原理很独特,因此利用它可以解决许多难题. 但是,有一个难题他却解决不了,是这台计 ...

  2. 穿透Session 0 隔离(二)

    上一篇我们已经对Session 0 隔离有了进一步认识,如果在开发过程中确实需要服务与桌面用户进行交互,可以通过远程桌面服务的API 绕过Session 0 的隔离完成交互操作. 对于简单的交互,服务 ...

  3. delphi -----(去掉窗口最大化,最小化、关闭),主窗口,和子窗口之间的设置

    一.去掉窗口最大化,最小化.关闭 borderIcons:biSystemMenu:false borderStyle:bsSizeable 二.主子窗口 主main: //调用子窗体procedur ...

  4. Spoken English Practice(appetite,ache,meds,change, stop)Look like you got your appetite back, that's a good sign.

    绿色:连读:                  红色:略读:               蓝色:浊化:               橙色:弱读     下划线_为浊化 口语蜕变(2017/6/27) ...

  5. <2014 04 16> 上班实习第一天

    找了家开发3D printer的创业公司实习,做(嵌入式)软件工程师.今天第一天. 1.熟悉了基于SLA技术的3D打印机的主要关键问题,机械结构. 控制系统是基于PC-Clinet和一个树莓派ARM/ ...

  6. (4.7)sql server2008 中的merge

    简介 Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:”根 ...

  7. Go 结构体和map等数据结构转json字符串

    Go语言中使用json包中的 Marshal() 函数将数据结构转成json字符串,源代码: func Marshal(v interface{}) ([]byte, error) { e := ne ...

  8. Java io流详解二

    原文地址https://www.cnblogs.com/xll1025/p/6418766.html 一.IO流概述 概述: IO流简单来说就是Input和Output流,IO流主要是用来处理设备之间 ...

  9. mysql忽略一些错误代码

    模拟的故障,在从库中新建一个库,然后主库新建一个与从库相同名字的库,然后进入下面的show Mysql从库复制故障解决 当show slave status:报错 slave_io_running:y ...

  10. 广州亿能自动化测试沙龙 - 自动化测试管理平台设计 [ 沙龙PPT免费下载 ]

    广州亿能自动化测试沙龙 - 自动化测试管理平台设计 [ 沙龙PPT免费下载 ] http://automationqa.com/forum.php?mod=viewthread&tid=244 ...