先做試驗(yàn)環(huán)境的介紹,再講解具體步驟。本博客的第一篇文章,以后會盡量做得更好,寫得不好得地方請多多包涵,歡迎提出各種建議,例如文章內(nèi)容選擇、操作步驟的詳細(xì)程度等等。
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計、做網(wǎng)站、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)豐寧,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
環(huán)境:
操作系統(tǒng):CentOS
IP地址:192.168.1.2
端口:1521
SID:orcl
Oracle版本:Oracle11g
具體步驟:
(1)root登錄Oracle數(shù)據(jù)庫服務(wù)器
#新建備份目錄
mkdir /home/bak/orcl_data
#設(shè)置目錄權(quán)限,該用戶和組是安裝Oracle時設(shè)置的
chown -R oracle:oracle /home/bak/orcl_data
(2)創(chuàng)建備份腳本
#新建文件并輸入代碼,保存。腳本保存位置根據(jù)個人習(xí)慣。
vim /usr/local/scripts/oracle_bak.sh
#!/bin/sh
#添加Oracle運(yùn)行用戶oracle的系統(tǒng)環(huán)境變量,以便Crontab計劃任務(wù)的執(zhí)行
#oracle用戶的系統(tǒng)環(huán)境變量路徑為/home/oracle/.bash_profile
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#獲取日期和時間
date=`date +%Y_%m_%d`
#設(shè)置刪除15天前的備份
days=15
#Oracle服務(wù)器IP、端口、SID
orsid=`192.168.1.2:1521/orcl`
#備份此用戶的數(shù)據(jù)
orowner=osgnu
#執(zhí)行備份的用戶,必須有備份權(quán)限
bak_user=osgnu
#執(zhí)行備份的用戶的密碼
bak_pass=osgnu
#備份的路徑,提前創(chuàng)建好
bak_dir=/home/bak/orcl_data
#備份數(shù)據(jù)庫名稱
bak_data=$orowner"_"$date.dmp
#備份生成的日志文件的名稱
bak_log=$orowner"_"$date.log
#保存的Oracle數(shù)據(jù)庫備份文件
ordatatar=$orowner"_"$date.tar.gz
#進(jìn)入備份目錄
cd $bak_dir
#按需要備份的Oracle用戶來創(chuàng)建相應(yīng)目錄
mkdir -p $orowner
#進(jìn)入目錄
cd $orowner
#執(zhí)行備份
exp $bak_user/$bak_pass@$orsid grants=y owner=$orowner file=$bak_dir/$orowner/$bak_data log=$bak_dir/$orowner/$bak_log
#壓縮
tar -zcvf $ordatatar $bak_data $bak_log
#刪除備份文件
find $bak_dir/$orowner -type f -name "*.dmp" -exec rm {} \;
#刪除日志文件
find $bak_dir/$orowner -type f -name "*.log" -exec rm {} \;
#刪除15天前的備份
find $bak_dir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm {} \;
#保存退出
:wq!
#添加執(zhí)行權(quán)限
chmod +x /usr/local/scripts/oracle_bak.sh
(3)編輯計劃任務(wù)
crontab -e或vim /etc/crontab然后添加以下內(nèi)容
#每天凌晨1點(diǎn)30分以oracle用戶的身份執(zhí)行備份腳本
30 1 * * * oracle /usr/local/scripts/oracle_bak.sh
#保存退出
:wq!
#重啟crond
service crond restart
自動備份oracle并刪除指定天數(shù)前的備份已完成。
www.osgnu.com 溫馨提醒:BruceZ原創(chuàng)內(nèi)容 版權(quán)所有,轉(zhuǎn)載請注明出處以及原文鏈接。
本文鏈接:www.osgnu.com/shell/1.html
轉(zhuǎn)載請注明來源:OSGNU >>Linux自動備份Oracle并刪除指定天數(shù)前的備份
當(dāng)前文章:Linux自動備份Oracle并刪除指定天數(shù)前的備份
網(wǎng)站地址:http://jinyejixie.com/article40/gpeeeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、App開發(fā)、面包屑導(dǎo)航、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)