前言
眾所周知數(shù)據(jù)是應(yīng)用的核心部分,程序壞了換臺機(jī)器重新發(fā)布就可以,但數(shù)據(jù)一旦丟失,造成的損失將不可挽回,程序發(fā)布到生產(chǎn)后,數(shù)據(jù)的備份便顯得尤為重要,由于不一定所有的服務(wù)均有資金完成高級的備份如RAC和DG,在我們只有一臺數(shù)據(jù)庫服務(wù)器的,暫時(shí)采取最簡單的備份策略,export出dmp進(jìn)行保存。
一、備份腳本
1、初始化變量,記錄開始日志
#變量
sysname=填寫自己的系統(tǒng)名稱
syspath=/home/oracle/databak/$sysname
v_date=$(date '+%Y%m%d%H%M%S')
#日志目錄
logfile=${syspath}/backup.${v_date}.log
#打印開始時(shí)間
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、進(jìn)入oracle目錄,設(shè)置oracle的參數(shù)
#進(jìn)入oracle目錄,設(shè)置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、導(dǎo)出數(shù)據(jù)
echo $syspath
v_date=$(date '+%Y%m%d%H%M%S')
filename=$syspath/jcd${v_date}.dmp
#導(dǎo)出命令
exp username/password file=${filename} compress=n >> ${logfile}
echo "end_time">>${logfile}
date '+%Y-%m-%d %H:%M:%S'>>${logfile}
4、壓縮dump包
5、使用scp,將壓縮后的包傳遞到備份服務(wù)器,注意備份服務(wù)器上目錄需要預(yù)先創(chuàng)建
scp ${filename}.gz remot_name@remot_ip:/home/weblogic/databak/備份目錄
二、設(shè)定腳本執(zhí)行時(shí)間
我們設(shè)定規(guī)則為每天凌晨2點(diǎn)執(zhí)行一次,采用crontab來進(jìn)行處理
執(zhí)行crontab -e,設(shè)定如下規(guī)則:
0 2 * * * sh /home/oracle/db.sh
大家可以參照上面去寫一個(gè)適合自己生產(chǎn)數(shù)據(jù)庫的一個(gè)腳本,定期備份。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Oracle自動(dòng)備份及自動(dòng)備份步驟
- PowerShell 自動(dòng)備份oracle并上傳到ftp
- Linux下通過腳本自動(dòng)備份Oracle數(shù)據(jù)庫并刪除指定天數(shù)前的備份
- oracle、mysql數(shù)據(jù)庫停止與啟動(dòng)的批處理文件
- 批處理寫的 oracle 數(shù)據(jù)庫備份還原工具
- Oracle 批處理自動(dòng)備份bat腳本語句的步驟詳解