본문 바로가기
프로그래밍 언어/쿼리문 + Oracle + MySQL

[Oracle] 오라클 export 배치 스크립트 만들어 윈도우 스케쥴러에 등록하여 자동 백업하고 삭제하는 방법

by 우림 2017. 5. 25.

개발서버 오라클 DB를 주기적으로 백업해야 해서 윈도우 배치 스크립트를 만들어 봤습니다.

그리고, 백업 배치파일을 새벽에 동작하도록 윈도우 스케줄러에 등록했습니다.


1. 오라클 DB 백업  : 매일 새벽 1시에 실행

2. 오라클 백업된 DB 삭제 : 매주 수요일 자정(밤 12시)에 실행


* oracle_export.bat (오라클 백업 스크립트)

:: ----------------------------------
:: 형식   : 윈도우 BAT 파일
:: 스케줄러에 등록하여 매일매일 오라클 DB를 백업한다.
:: ----------------------------------
@echo off

:: SET R_PATH=E:\BACKUP
SET BACKUP_PATH=D:\백업\oracle_backup\daily\1
SET ORA_BIN=C:\app\user\product\11.2.0\dbhome_1\BIN
SET USERID=system
SET USERPASS=0000
SET ORA_SID=orcl

:: 날짜를 셋팅한다.
for %%d in (%DATE%) do SET DAY=%%d

:: 백업할 폴더를 생성한다.
MD %BACKUP_PATH%\1\%DAY%

:: 백업한다.
%ORA_BIN%\EXP %USERID%/%USERPASS% file=%BACKUP_PATH%\%DAY%-full.dmp full=y log=%BACKUP_PATH%\%DAY%-full.log


* oracle_export_remove.bat (오라클 백업DB 삭제 스크립트)

:: ----------------------------------
:: 작성일 : 2017/05/25
:: 형식   : 윈도우 BAT 파일
:: 스케줄러에 등록하여 매일매일 이전의 오라클 백업파일을 삭제한다.
:: ----------------------------------

:: 백업 path
SET BACKUP_PATH=D:\백업\oracle_backup\daily

:: remove될 디렉토리를 지운다.
RD /s /q %BACKUP_PATH%\2

:: 백업된 디렉토리의 폴더명을 1에서 2로 바꾼다.
MOVE %BACKUP_PATH%\1 %BACKUP_PATH%\2


위 파일들을 만들어 적당한 위치에 저장하시고, 명령 프롬프트에서 아래 명령을 실행합니다.

요일들록은... 일,월,화,수,목,금,토 => /every:Su,M,T,W,Th,F,S 이런식으로 하네요.

C:\Windows\system32>at 01:00 /every:Su,M,T,W,Th,F,S C:\Dev\batch_script\oracle_export.bat
C:\Windows\system32>at 00:00 /every:W C:\Dev\batch_script\oracle_export_remove.bat



이제 윈도우 스케쥴러에 등록이 되었으니 백업이 잘 됬는지 다음날 출근해서 확인하면 되겠습니다^^


댓글