超實用的Oracle數據庫自動備份腳本
作者:智能運維小講堂
數據是應用的核心部分,程序壞了換臺機器重新發布就可以,但數據一旦丟失,造成的損失將不可挽回,程序發布到生產后,數據的備份便顯得尤為重要,由于不一定所有的服務均有資金完成高級的備份如RAC和DG,在我們只有一臺數據庫服務器的,暫時采取最簡單的備份策略,export出dmp進行保存。
概述
數據是應用的核心部分,程序壞了換臺機器重新發布就可以,但數據一旦丟失,造成的損失將不可挽回,程序發布到生產后,數據的備份便顯得尤為重要,由于不一定所有的服務均有資金完成高級的備份如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
大家可以參照上面去寫一個適合自己生產數據庫的一個腳本,定期備份。
責任編輯:龐桂玉
來源:
快資訊