linux中執行定時任務對oracle備份(crontab命令)


執行定時任務對oracle表數據備份:

1、創建sh腳本

[oracle@localhost ~]$ vi bak.sh

2、添加腳本內容

#!/bin/bash
#:本腳本自動備份7天的數據庫,每次備份完成后,刪除7天之前的數據。
#加載oracle的相關參數
#如果oracle參數不明確,請使用命令查看
# su - oracle 
# echo $ORACLE_HOME
export ORACLE_BASE=/opt
export ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
#oracle字符集
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#獲取當前時間,格式:20150210
DATE=$(date +%Y%m%d)
#獲取7天之前的時間,格式:20150203
DATE_RM=$(date -d "7 days ago" +%Y%m%d)
#設置備份目錄,
export DIR=/home/test02/backup
echo $DIR
#創建日期目錄
mkdir $DIR/$DATE
#開始備份,此處采用exp方式導出,根據實際情況可選用expdb數據方式導出
echo 'Oracle backup...'
exp simba_ism/iflytek@ORCL  file=$DIR/$DATE'/simbaism_'$DATE'.dmp' log=$DIR/$DATE'/simbaism_log_'$DATE'.log'
exp cs_prod/quickdone@ORCL  file=$DIR/$DATE'/csprod_'$DATE'.dmp' log=$DIR/$DATE'/csprod_log_'$DATE'.log'
echo 'Oracle backup successfully.'
echo 'remove...'
rm -rf $DIR/$DATE_RM
echo 'remove successsfully.'

3、賦權:

[oracle@localhost ~]$ chmod 777 ./bak.sh

4、添加定時任務:

[oracle@localhost ~]$ crontab -e

#每天一點半執行一次
30 1 * * * /home/backup/bak.sh

5、查看任務:

[oracle@localhost ~]$ crontab -l

 

關於linux在shell中獲取系統時間:

獲得當天的日期 date +%Y%m%d      輸出: 20110728

可以使用date的 -d參數 獲取今天之前或者往后的日期

獲取明天的日期 date -d next-day +%Y%m%d

獲取前幾天的日期 date -d "7 days ago" +%Y%m%d

獲取昨天的日期 date -d last-day +%Y%m%d

 

crontab 前面5個*參數的意義:

0~59 表示分 
1~23 表示小時 
1~31 表示日 
1~12 表示月份 
0~6 表示星期(其中0表示星期日)

例子:

#每天早上6點10分
10    6     *     *     *     date
#每兩個小時
0     */2   *     *     *     date
#晚上11點到早上8點之間每兩個小時,早上8點
0     23-7/2,8      *     *     *     date
#每個月的4號和每個禮拜一到禮拜三的早上11點
0     11    4     *     1-3  date
#1月1日早上4點
0     4     1     1       *  date

 


免責聲明!

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



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