DAS 에 대한 블로그 글에 Windows 작업 스케줄러에서 DB2 자동화 방법에 대한 문의가 있었다. 최근 Windows 용 DB2를 설치했던 고객사에서도 관련하여 문의가 왔었다. 인터넷에서 관련 자료 검색이 잘 안되었나 하는 생각이 들기도 하여 블로그에 남겨 본다.

Windows XP에서 작업 스케줄러를 설정하는 것과 Windows 7 혹은 Vista 혹은 2008 Server에서 설정하는 방법이 약간 다르다.

DB2 관련 작업을 자동화하기 위해 개인적으로 2개의 파일을 만들어서 설정을 했다.

### XP  및 Windows 2003 서버의 경우 ####

1. cmd 파일 (파일명 예:  backup.cmd)

db2cmd /w /c /i db2 -tf backup.sql >> bak.txt

작업 스케줄러에서  backup.cmd 파일을 등록해서 실행시키면 된다.

실행여부는 bak.txt 로그 파일을 통해 수행 여부를 확인하면 된다.

 

2. db2 파일 (파일명 예: backup.db2)

    파일 확장자는 임의적이다.

!db2 "connect to sample" ;

!db2 "quiesce db immediate force connections" ;

!db2 "terminate" ;

!db2 "backup db sample to 'C:\'" ;

!db2 "connect to sample" ;

!db2 "unquiesce db" ;

!db2 "terminate" ;

위 명령어는 Offline Backup을 받기 위해서 DB에 접속된 연결을 강제 제거하여 DB를 비활성화(offline)시킨 후 백업을 수행하도록 쓰여졌다. (! 는 OS 레벨에서 수행되도록 하기 위한 DB2 환경에서의 escape 문자이다)

 

### Vista 이상  및 Windows 2008 서버의 경우 ####

작업 스케줄러 등록 방식이 바뀌었다.

시작 > 관리도구 > 작업 스케줄러 > 작업만들기 (창의 오른쪽 패널의 “작업”에 “작업 만들기” 선택)

* 동작 Tab  > 새로만들기

   - 프로그램/스크립트

“C:\Program Files (x86)\IBM\SQLLIB\BIN\db2cmd.exe

   - 인수 추가

db2 –tvf listdb1.db2

listdb1.db2 Script
!db2 "list db directory" >> db2list1.txt ;

   - 시작 위치   : listdb1.db2 위치

+ Recent posts