临时收到一个任务,就是在生产环境上定时备份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. CentOS 7 64位 安装 PostgreSQL 9.2整理

    centos版本 LSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux ...

  2. 2 CDuiString的bug

    重温了一下 Effective C++,发现这就是条款24所指出的问题,看来读书百遍不如写代码一遍啊 在Notify处理消息时会有很多if语句,我通常喜欢把常量放在双等号前面,变量放在后面,比如:   ...

  3. express, mocha, supertest,istanbul

    引子 有群友问到Express怎么做 单元测试/覆盖率测试,这是上篇所遗漏的,特此补上 Express Web测试 做 Express Web 测试首先要面对的问题是在哪端进行测试: 客户端的请求响应 ...

  4. pip与apt-get

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI( ...

  5. 使用数组初始化list

    ArrayList<String> names = new ArrayList<String>(Arrays.asList("Delete","I ...

  6. Django HttpRequest对象详解

    WSGIRequest对象 Django在接收到http请求之后,会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,并且作为视图函数第一个参数传给视图函数.也就是我们经常看到 ...

  7. CSS:列表样式(设置列表项的标志图案/位置)

    通过CSS 列表属性能够放置.改变列表项标志.或者将图像作为列表项标志. 代码整理自w3school:http://www.w3school.com.cn 效果图: watermark/2/text/ ...

  8. Keras网络层之常用层Core

    常用层 常用层对应于core模块,core内部定义了一系列常用的网络层,包括全连接.激活层等 Dense层 keras.layers.core.Dense(units, activation=None ...

  9. vue自定义全局和局部指令

    一.介绍 1.除了核心功能默认内置的指令 (v-model 和 v-show),Vue 也允许注册自定义指令. 2.自定义指令的分类       1.全局指令 2.局部指令 3.自定义全局指令格式 V ...

  10. C# 委托及匿名函数

    一. 为什么使用委托,代码如下:(注释掉的是没用委托之前的使用方式,没有注释的是使用了委托的) public delegate string DelProStr(string name); class ...