說明:

 

Oracle資料庫伺服器

 

作業系統:CentOS

 

IP:192.168.0.198

 

埠:1521

 

SID:orcl

 

Oracle資料庫版本:Oracle11gR2

 

具體操作:

 

1、root使用者登錄伺服器

 

mkdir -p /backup/oracledata #新建Oracle資料庫備份目錄

 

chown -R oracle:oinstall /backup/oracledata -R#設置目錄許可權為oinstall使用者組的oracle使用者(使用者oracle與使用者組oinstall是在安裝Oracle資料庫時設置的)

 

2、新建Oracle資料庫備份腳本

 

vi /backup/oracledata/ordatabak.sh #新建檔,輸入以下代碼

 

#!/bin/sh

 

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

 

#以上代碼為Oracle資料庫運行帳號oracle的系統內容變數設置,必須添加,否則crontab任務計畫不能執行。

 

# oracle使用者的系統內容變數路徑:/home/oracle/.bash_profile

 

date=`date +%Y_%m_%d` #獲取系統當前日期時間

 

days=7 #設置刪除7天之前的備份檔案

 

orsid=`192.168.0.198:1521/orcl` #Oracle資料庫伺服器IP、埠、SID

 

orowner=JUSTIN #備份此使用者下面的資料

 

bakuser=JUSTIN #用此使用者來執行備份,必須要有備份操作的許可權

 

bakpass=JUSTIN #執行備註的使用者密碼

 

bakdir=/backup/oracledata #備份檔案路徑,需要提前創建好

 

bakdata=$orowner"_"$date.dmp#備份資料庫名稱

 

baklog=$orowner"_"$date.log#備份執行時候生成的日誌檔案名稱

 

ordatabak=$orowner"_"$date.tar.gz#最後保存的Oracle資料庫備份檔案

 

cd $bakdir#進入備份目錄

 

mkdir -p $orowner#按需要備份的Oracle使用者創建目錄

 

cd $orowner#進入目錄

 

exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog#執行備份

 

tar -zcvf $ordatabak $bakdata $baklog #壓縮備份檔案和日誌檔

 

find $bakdir/$orowner -type f -name "*.log" -exec rm {} \;#刪除備份檔案

 

find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \;#刪除日誌檔

 

find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #刪除7天前的備份(注意:{} \中間有空格)

 

:wq#保存退出

 

chmod +x /backup/oracledata/ordatabak.sh #添加腳本執行許可權

 

3、vi /etc/crontab #編輯系統任務計畫,添加以下代碼到最後一行

 

30 2 * * * oracle /backup/oracledata/ordatabak.sh #每天淩晨2點30分,以oracle使用者執行ordatabak.sh備份檔案

 

:wq!#保存退出

 

service crond restart#重啟crond

 

每天淩晨2點30分,會自動備份資料庫到/backup/oracledata/JUSTIN目錄中,保存為.tar.gz壓縮檔,並且刪除7天前的備份,即只保留最近7天的資料。

 

備註:以上所有的代碼都是在英文半形狀態下輸入。

 

至此,Linux下自動備份Oracle資料庫並刪除指定天數前的備份教程完成。
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()