Windows 오라클 Hot backup 자동 백업, 삭제 배치파일 만들기
 
 
작성자: 강명호 (myungho@empal.com   www.mhkang.info)
작성일: 2007년 2월 22
 
 
2 Win오라클 Hot backup 자동 백업,삭제 
 
Windows 환경에서 오라클 백업 솔루션 없이 오라클을 사용하시거나
RMAN을 사용하는 것이 부담스러운 분들을 위해서 만들어봤습니다.
부족하지만 여러분께 도움이 되길 바랍니다.
그리고 써보시고 문제점이나 불편한점, 좋은점 있으시면 리플달아주세요~
 
 
파일 설명
hot1.bat - %BACKUP_PATH%\1 디렉토리의 파일이 삭제되고 hotbackup1.sql이 수행된다.
hot2.bat - %BACKUP_PATH%\2 디렉토리의 파일이 삭제되고 hotbackup2.sql이 수행된다.
hot3.bat - %BACKUP_PATH%\3 디렉토리의 파일이 삭제되고 hotbackup3.sql이 수행된다.
 
hotbackup1,2,3.sql - hot backup 수행
 
 
장점
배치파일이 수행될 때 백업될 디렉토리의 파일이 먼저 삭제되고 백업이 이루어지기 때문에 더 이상 Disk가 꽉 차는 현상(Disk Full)을 막을 수 있다.
hot1.bat, hot2.bat, hot3.bat를 수행할 경우 항상 3벌의 Backup Set을 보유한다.
(hot1.bat, hot2.bat만 수행할 경우 2벌의 Backup Set을 보유한다.)
 
 
단점? 고려사항?
Database files Size가 클 경우 로컬 디스크에 3벌의 백업을 보유할 수 없기 때문에 hot1.bat, hot2.bat 만 수행하던지 hot1.bat 만 수행하도록 한다.
혹은 hot1.bat 만 수행하고 충분한 Disk 공간이 있는 원격지로 FTP 전송한다.
 
 
 
 
1. 배치파일 만들기
시작 --> 실행 --> notepad  실행하여 각각 배치파일의 내용을 붙여넣기 한 다음 설정된 파일 이름으로 변경한다.
(
저장경로 E:\BACKUP\HOT\)
* BACKUP_PATH Hot Backup 받을 공간이 충분한 영역으로 설정하세요
 
hot1.bat
set oracle_sid=ORCL
SET BACKUP_PATH=E:\BACKUP\HOT
for %%i in (%BACKUP_PATH%\1\*) do DEL %%i%
D:\oracle\ora90\bin\sqlplus /nolog @E:\BACKUP\HOT\hotbackup1.sql
 
 
hot2.bat
set oracle_sid=ORCL
SET BACKUP_PATH=E:\BACKUP\HOT
for %%i in (%BACKUP_PATH%\2\*) do DEL %%i%
D:\oracle\ora90\bin\sqlplus /nolog @E:\BACKUP\HOT\hotbackup2.sql
 
hot3.bat
set oracle_sid=ORCL
SET BACKUP_PATH=E:\BACKUP\HOT
for %%i in (%BACKUP_PATH%\3\*) do DEL %%i%
D:\oracle\ora90\bin\sqlplus /nolog @E:\BACKUP\HOT\hotbackup3.sql
 
 
 
2. Hot backup sql문 만들기
* Tablespace, Datafile 경로는 여러분의 환경에 맞게 수정하세요
tablespace, datafile명은 http://blog.empas.com/myungho/5577095  참조하세요
 
hotbackup1.sql
connect sys/manager as SYSDBA
set echo on
spool E:\BACKUP\HOT\1\hotbackup_1.log
alter system switch logfile;
alter tablespace SYSTEM begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF E:\BACKUP\HOT\1\SYSTEM01.DBF
alter tablespace SYSTEM end backup;
alter tablespace MHKANG begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\MHKANG.DBF E:\BACKUP\HOT\1\MHKANG.DBF
alter tablespace MHKANG end backup;
alter tablespace UNDOTBS begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF E:\BACKUP\HOT\1\UNDOTBS01.DBF
alter tablespace UNDOTBS end backup;
alter tablespace USERS begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\USER01.DBF E:\BACKUP\HOT\1\USER01.DBF
alter tablespace USERS end backup;
alter database backup controlfile to trace;
alter database backup controlfile to 'E:\BACKUP\HOT\1\control1.bak' reuse;
alter system switch logfile;
spool off
exit;
 
 
hotbackup2.sql
connect sys/manager as SYSDBA
set echo on
spool E:\BACKUP\HOT\2\hotbackup_2.log
alter system switch logfile;
alter tablespace SYSTEM begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF E:\BACKUP\HOT\2\SYSTEM01.DBF
alter tablespace SYSTEM end backup;
alter tablespace MHKANG begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\MHKANG.DBF E:\BACKUP\HOT\2\MHKANG.DBF
alter tablespace MHKANG end backup;
alter tablespace UNDOTBS begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF E:\BACKUP\HOT\2\UNDOTBS01.DBF
alter tablespace UNDOTBS end backup;
alter tablespace USERS begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\USER01.DBF E:\BACKUP\HOT\2\USER01.DBF
alter tablespace USERS end backup;
alter database backup controlfile to trace;
alter database backup controlfile to 'E:\BACKUP\HOT\2\control2.bak' reuse;
alter system switch logfile;
spool off
exit;
 
 
hotbackup3.sql
connect sys/manager as SYSDBA
set echo on
spool E:\BACKUP\HOT\3\hotbackup_3.log
alter system switch logfile;
alter tablespace SYSTEM begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF E:\BACKUP\HOT\3\SYSTEM01.DBF
alter tablespace SYSTEM end backup;
alter tablespace MHKANG begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\MHKANG.DBF E:\BACKUP\HOT\3\MHKANG.DBF
alter tablespace MHKANG end backup;
alter tablespace UNDOTBS begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF E:\BACKUP\HOT\3\UNDOTBS01.DBF
alter tablespace UNDOTBS end backup;
alter tablespace USERS begin backup;
host D:\oracle\ora92\bin\ocopy.exe D:\ORACLE\ORADATA\ORCL\USER01.DBF E:\BACKUP\HOT\3\USER01.DBF
alter tablespace USERS end backup;
alter database backup controlfile to trace;
alter database backup controlfile to 'E:\BACKUP\HOT\3\control3.bak' reuse;
alter system switch logfile;
spool off
exit;
 
 
 
 
3. 작업 예약 설정하기

매주 일요일 새벽 1 Hot backup 받는 작업 예약하기
C:\> at 01:00 /every:Su D:\ORA_BACKUP\hot1.bat
 
매주 화요일 새벽 1 Hot backup 받는 작업 예약하기
C:\> at 01:00 /every:T D:\ORA_BACKUP\hot2.bat
 
매주 목요일 새벽 1 Hot backup 받는 작업 예약하기
C:\> at 01:00 /every:Th D:\ORA_BACKUP\hot3.bat
 
 
 
AT 명령 변수 설명
 /every: date ,... :
이 매개 변수를 사용하여 매주 금요일이나 매월 8일처럼
지정된 요일이나 날짜에 작업을 실행하도록 예약합니다.
하나 이상의 요일(다음 약자 사용: M,T,W,Th,F,S,Su)이나
하나 이상의 날짜(숫자 1 - 31 사용) date를 지정합니다.
쉼표를 사용하여 여러 날짜 항목을 구분해야 합니다.
이 매개 변수를 생략하면 현재 날짜에 작업이 실행되도록 예약됩니다.
2009/03/19 14:47 2009/03/19 14:47

트랙백 주소 :: http://thinkit.or.kr/database/trackback/964