원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어

Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어

+++++++++++++++++++++++++++++++++++++++++++++++++++++++


환경 :
백업디렉토리  d:\backup
백업내용 : 오라클 환경에 정의되어있는 데이터파일,리두로그파일,컨트롤파일의 위치를 검색하여
해당 디렉토리로 복사하는 자동스크립트를 만든다.




set heading off;


spool d:\backup\coldbackup.txt;

select 'host copy ' || name || ' d:\backup' from v$datafile;
select 'host copy ' || member || ' d:\backup' from v$logfile;
select 'host copy ' || name || ' d:\backup' from v$controlfile;

spool off;
set heading on;

shutdown immediate;

start d:\backup\coldbackup.txt;

host del /q d:\backup\coldbackup.txt;

startup;

exit;




위의 스크립트를 텍스트파일  coldbackup.sql 이름으로 저장한다.

실행하려면

sql> start d:\backup\coldbackup.sql

하면 된다.



자동화하려면 다음과 같은 내용의 텍스트파일을 만든다.

sqlplus "/ as sysdba" @ d:\backup\coldbackup.sql


그 다음 위 파일을 윈도우 작업스케줄러(예약된작업)에 등록해주면 된다.




----------------- 추가내용 ---------------------

백업디렉토리를  본인이 지정한 디렉토리로 복사하고 싶은경우.

다음과 같은 배치파일 coldbackup.bat 파일을 만들어서 실행시킨다.


set /P TARGET=input backup dir :
cd %TARGET%
sqlplus "/ as sysdba" @ d:\backup\coldbackup.sql





d:\backup\coldbackup.sql  파일의 내용은 다음과 같이 해준다.


set heading off;

host mkdir d:\backup\%DATE%


spool d:\backup\coldbackup.txt;

select 'host copy ' || name || ' %TARGET%' from v$datafile;
select 'host copy ' || member || ' %TARGET%' from v$logfile;
select 'host copy ' || name || ' %TARGET%' from v$controlfile;

spool off;
set heading on;

shutdown immediate;

start d:\backup\coldbackup.txt;

host del /q d:\backup\coldbackup.txt;

startup;

exit;
서버에 요청 중입니다. 잠시만 기다려 주십시오...