oracle定时备份SHELL,linux中shell定時任務執行oracle備份

linux中shell定時任務執行oracle備份。

1編寫shell腳本

#!/bin/bash

#:本腳本自動備份7天的數據庫,每次備份完成后,刪除7天之前的數據。編寫腳本是否可以執行,請自行測試

#加載oracle的相關參數

#如果oracle參數不明確,請使用命令查看

# su - oracle

# echo $ORACLE_HOME

export ORACLE_BASE=/home/oracle/app

export ORACLE_HOME=/home/oracle/app/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=/dbbackup

echo $DIR

#創建日期目錄

mkdir $DIR/$DATE

#開始備份,此處采用exp方式導出,根據實際情況可選用expdb數據方式導出

echo 'Oracle backup...'

exp username/password@ORCL  file=$DIR/$DATE'/sbkfw_'$DATE'.dmp' log=$DIR/$DATE'/sbkfw_log_'$DATE'.log'

echo 'Oracle backup successfully.'

echo 'remove...'

rm -rf $DIR/$DATE_RM

echo 'remove successsfully.'

PS:關於是否進行壓縮,請自行更改,因為備份出的數據庫文件大於4G又不想分開壓縮,所有本帖沒有壓縮備份文件。

2給腳本付給可執行權限

chmod 777 dbbackup.sh

3設置linux定時任務

#每天1:30執行腳本

crontab -e 進入vi模式,添加定時任務

30 1 * * * /dbback/dbbackup.sh

Ps:這里有個參數需要說明。如果腳本里邊不想帶oracle的環境變量可以這么寫

30 1 * * * su - oracle -c /dbback/dbbackup.sh

4關於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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值