1. 程式人生 > >oracle資料庫定時備份、定時刪除

oracle資料庫定時備份、定時刪除

一、原理:寫一個數據庫備份、刪除指令碼,加入到windows任務計劃裡,每天定時執行即可;

二、步驟

1、oracle資料庫定時備份、刪除指令碼,如圖:

@echo off   
echo ================================================   
echo  Windows環境下Oracle資料庫的自動備份指令碼  
echo  1. 使用當前日期命名備份檔案。  
echo  2. 自動刪除7天前的備份。  
echo ================================================  
::以“YYYYMMDD”格式取出當前時間。  
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%  
::設定使用者名稱、密碼和要備份的資料庫。  
set USERA=dwzszf
set PASSWORD=dwzszf
set SID=orcl
::建立備份目錄。  
if not exist "C:\oraclebackup\data"       mkdir C:\oraclebackup\data  
if not exist "C:\oraclebackup\log"        mkdir C:\oraclebackup\log  
set DATADIR=C:\oraclebackup\data  
set LOGDIR=C:\oraclebackup\log  
exp %USERA%/%PASSWORD%@%SID%  file=%DATADIR%\%BACKUPDATE%.dmp 
::刪除7天前的備份。  
forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path"  
forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path"  
exit  

指令碼說明:

@:表示執行指令碼時,@行之後的內容不顯示;
echo off:表示此行和之後的內容不顯示;
echo:表示執行指令碼時,此行的內容執行指令碼顯示出來;
:::註釋,類似於sql語句的--;
%date:~0,4%%date:~5,2%%date:~8,2% :WINDOWS的時間格式是2017/09/07,所以意思就是從左往右數第0個之後,取4位,即2017;從左往右數第5個之後,取2位,即09,從左往右數第8個之後,取2位,即07,最終備份檔名就是20170907.dmp;

2、window新增定時任務

這個就不說了!