1. 程式人生 > >基於Windows作業系統的oracle資料庫定時自動備份

基於Windows作業系統的oracle資料庫定時自動備份

一:建立備份dmp檔案及日誌路徑

dmp檔案路徑:C:\db_bak\files

日誌路徑:C:\db_bak\logs


二:建立自動備份批處理檔案

   2.1 建立記事本text檔案


複製以下內容到記事本中

@echo off
echo ================================================ 
echo  Windows環境下Oracle資料庫的自動備份指令碼
echo  1. 使用當前日期命名備份檔案。
echo  2. 自動刪除30天前的備份。
echo ================================================
::以“YYYYMMDD”格式取出當前時間。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%
set CURTIME=%time:~0,2%
REM 小時數如果小於10,則在前面補0
if "%CURTIME%"==" 0" set CURTIME=00
if "%CURTIME%"==" 1" set CURTIME=01
if "%CURTIME%"==" 2" set CURTIME=02
if "%CURTIME%"==" 3" set CURTIME=03
if "%CURTIME%"==" 4" set CURTIME=04
if "%CURTIME%"==" 5" set CURTIME=05
if "%CURTIME%"==" 6" set CURTIME=06
if "%CURTIME%"==" 7" set CURTIME=07
if "%CURTIME%"==" 8" set CURTIME=08
if "%CURTIME%"==" 9" set CURTIME=09
set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%
 
::設定資料庫使用者名稱、密碼和要備份的資料庫。


set USER=BSQAM1
set PASSWORD=BSQAM1
set DATABASE=orcl


::建立備份目錄。
if not exist "C:\db_bak\files\%BACKUPDATE% "     mkdir C:\db_bak\files\%BACKUPDATE%
if not exist "C:\db_bak\logs\%BACKUPDATE% "      mkdir C:\db_bak\logs\%BACKUPDATE%
set DATADIR=C:\db_bak\files\%BACKUPDATE%
set LOGDIR=C:\db_bak\logs

\%BACKUPDATE%
exp %USER%/%PASSWORD%@%DATABASE%  file=%DATADIR%\%USER%_%BACKUPDATE%%CURTIME%.dmp log=%LOGDIR%\log_%BACKUPDATE%%CURTIME%.log
::刪除30天前的備份。可以修改刪除日期
forfiles /p "%DATADIR%" /s /m *.* /d -30 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.* /d -30 /c "cmd /c del @path"
exit

2.2 把text檔案字尾改為bat格式形成批處理檔案


三 建立定時任務 

 3.1 建立基本任務


3.2 進行相關設定

  建立基本任務》》觸發器》》操作》》完成

如圖進行相關設定即可 最後點選完成






完成後檢視任務:


到此為止資料庫定時自動備份完成 

注意:可以修改任務開始時間進行相關測試