標籤:教程 -name can file 安裝oracle 作業系統 lan bin 帳號
說明:
Oracle資料庫伺服器
作業系統:CentOS
IP:192.168.0.198
連接埠:1521
SID:orcl
Oracle資料庫版本:Oracle11gR2
具體操作:
1、root使用者登入伺服器
mkdir -p /backup/oracledata #建立OracleDatabase Backup目錄
chown -R oracle:oinstall /backup/oracledata -R #設定目錄許可權為oinstall使用者組的oracle使用者(使用者oracle與使用者組oinstall是在安裝Oracle資料庫時設定的)
2、建立OracleDatabase Backup指令碼
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=OSYUNWEI #備份此使用者下面的資料
bakuser=OSYUNWEI #用此使用者來執行備份,必須要有備份操作的許可權
bakpass=OSYUNWEI #執行備忘的使用者密碼
bakdir=/backup/oracledata #備份檔案路徑,需要提前建立好
bakdata=$orowner"_"$date.dmp #備份資料庫名稱
baklog=$orowner"_"$date.log #備份執行時候產生的記錄檔名稱
ordatabak=$orowner"_"$date.tar.gz #最後儲存的OracleDatabase Backup檔案
cd $bakdir #進入備份目錄
mkdir -p $orowner #按需要備份的Oracle使用者建立目錄
cd $orowner #進入目錄
exp $bakuser/[email protected]$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/OSYUNWEI目錄中,儲存為.tar.gz壓縮檔,並且刪除7天前的備份,即只保留最近7天的資料。
備忘:以上所有的代碼都是在英文半形狀態下輸入。
至此,Linux下自動備份Oracle資料庫並刪除指定天數前的備份教程完成。
Linux下自動備份Oracle資料庫並刪除指定天數前的備份