Oracle在Windows和Linux下定時備份與刪除

一. 實現的功能

    1.每天定時備份oracle數據庫

    2.定時清理7天前的備份文件

二. Linux系統的實現方式

     相關: shell crontab expdp

     準備:ssh連接工具,用戶名密碼,oracle安裝路徑,Oracle數據庫的用戶名密碼

# 第一步: 登錄後,切換到oracle用戶 
$ su - oracle

# 第二步:新建sh腳本, 將腳本複製過來,保存
$ vim oracle_backup.sh

# 第三步:設置執行權限
$ chmod 777 oracle_backup.sh

# 第四步: 測試腳本是否可用
$ sh oracle_backup.sh

# 第五步: 添加Linux定時任務
$ crontab -e
## vim 編輯定時任務
## 表示每天凌晨1點執行sh腳本,並把日誌輸出到指定目錄
0 1 * * * /home/oracle/oracle_backup.sh > /tmp/expdp.log 2>&1

# step4: 查看定時任務
$ crontab -l

 

   oracle_backup.sh的腳本:

# Oracle的根目錄
ORACLE_BASE=/oracle; export ORACLE_BASE
# Oracle的安裝目錄
ORACLE_HOME=$ORACLE_BASE/自己的具體路徑; export ORACLE_HOME
# Oracle的環境變量
PATH=$ORACLE_HOME/bin:usr/local/bin:$PATH:/usr/sbin; export PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib; export CLASSPATH
# 設置需要備份到的目錄
backup_dir=$ORACLE_HOME/rdbms/log
DMP_FILE=oracle_backup_$(date +%Y%m%d).dmp
LOG_FILE=oracle_backup_$(date +%Y%m%d%H%M).log
# start expdp
echo 'start expdp'
# 輸入oracle的用戶名和密碼 @後是實例空間
expdp oracle用戶名/oracle密碼@orcl schemas=oracle用戶 dumpfile=$DMP_FILE logfile=$LOG_FILE;
# 設置刪除7天前的文件
cd $backup_dir
find $backup_dir -mtime +7 -name "oracle_backup_*" -exec rm -f {} \;

三. Windows系統的實現方式

    1.新建一個文本文件,以.bat結尾,複製以下內容:

    

@echo off
set backupfile=gjpt_backup_%date:~0,4%-%date:~5,2%-%date:~8,2%
set logfile=gjpt_backup_%date:~0,4%-%date:~5,2%-%date:~8,2%
expdp oracle用戶名/oracle密碼@127.0.0.1/orcl dumpfile=%backupfile%.dmp logfile=%logfile%.log
# 刪除超過7天的備份文件
forfiles /p "備份文件的路徑,比如:D:\oracle安裝路徑\admin\orcl\dpdump" /s /m *.dmp /d -7 /c "cmd /c del @file"

    2.設置執行計劃

   打開控制面板--->管理工具

 

 

根據自己的需求一直下一步

選擇你創建的.bat腳本,創建即可 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章