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
~                                                                                                                                                                          

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM