개발서버 오라클 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
이제 윈도우 스케쥴러에 등록이 되었으니 백업이 잘 됬는지 다음날 출근해서 확인하면 되겠습니다^^
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[Oracle] 날마다 시퀀스가 초기화되는 오라클 날짜 시퀀스(Sequence) 만들기 (0) | 2017.05.30 |
---|---|
[Oracle] 오라클 함수(Function)에서 DML(Insert/update/delete)문 사용하기 (0) | 2017.05.26 |
[ErWin] Subject Area(주제영역) 만들기 (0) | 2017.05.22 |
[ERWin] Reverse Engineer 기능으로 오라클(Oracle)에 연결해서 자동으로 ERD 생성하기 (2) | 2017.05.22 |
[오라클] Oracle에서 모든 테이블 목록 가져오는 쿼리 (0) | 2017.05.22 |
댓글