zoukankan      html  css  js  c++  java
  • Linux平台下Oracle定时备份数据

      临时收到一个任务,就是在生产环境上定时备份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
    ~                                                                                                                                                                          
  • 相关阅读:
    「考试总结」2020-12-01 入冬
    「考试总结」2020-11-30 低智
    2020-11-29 自闭瞎写
    「晚测反思」2020-11-26 点亮
    「晚测反思」2020-11-28 复盘
    「刷题笔记」二分图匹配
    「刷题笔记」AC自动机
    「刷题笔记」哈希,kmp,trie
    「刷题笔记」数学I
    「刷题笔记」DP优化-斜率优化
  • 原文地址:https://www.cnblogs.com/gdpuzxs/p/6861467.html
Copyright © 2011-2022 走看看