1. 程式人生 > 資料庫 >Oracle資料庫自動備份指令碼分享(超實用)

Oracle資料庫自動備份指令碼分享(超實用)

前言

眾所周知資料是應用的核心部分,程式壞了換臺機器重新發布就可以,但資料一旦丟失,造成的損失將不可挽回,程式釋出到生產後,資料的備份便顯得尤為重要,由於不一定所有的服務均有資金完成高階的備份如RAC和DG,在我們只有一臺資料庫伺服器的,暫時採取最簡單的備份策略,export出dmp進行儲存。

一、備份指令碼

1、初始化變數,記錄開始日誌

#變數 
sysname=填寫自己的系統名稱 
syspath=/home/oracle/databak/$sysname 
v_date=$(date '+%Y%m%d%H%M%S') 
#日誌目錄 
logfile=${syspath}/backup.${v_date}.log 
#列印開始時間 
echo backup_time>>${logfile} 
date '+%Y-%m-%d %H:%M:%S' >> ${logfile} 
echo "backup jcd">>${logfile} 
echo "start_time">>${logfile} 
date '+%Y-%m-%d %H:%M:%S' >> ${logfile} 

2、進入oracle目錄,設定oracle的引數

#進入oracle目錄,設定oracle變數 
cd /home/11g/app/oracle/product/11.2.0 
export ORACLE_HOME=/home/11g/app/oracle/product/11.2.0/db_1 
export PATH=$PATH:/home/11g/app/oracle/product/11.2.0/db_1/bin 
export ORACLE_SID=SID名稱 

3、匯出資料

echo $syspath 
v_date=$(date '+%Y%m%d%H%M%S') 
filename=$syspath/jcd${v_date}.dmp 
#匯出命令 
exp username/password file=${filename} compress=n >> ${logfile} 
echo "end_time">>${logfile} 
date '+%Y-%m-%d %H:%M:%S'>>${logfile} 

4、壓縮dump包

gzip ${filename} 

5、使用scp,將壓縮後的包傳遞到備份伺服器,注意備份伺服器上目錄需要預先建立

scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/備份目錄 

二、設定指令碼執行時間

我們設定規則為每天凌晨2點執行一次,採用crontab來進行處理

執行crontab -e,設定如下規則:

0 2 * * * sh /home/oracle/db.sh 

大家可以參照上面去寫一個適合自己生產資料庫的一個指令碼,定期備份。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對我們的支援。