unix에서는 cron 이라는 것을 이용해서 주기적으로 데이타베이스를 원하는 시점에 shutdown 시킨 후 cold backup 을 할수 있다. 그렇다면 nt에서는 어떻게 이런 작업을 수행해 줄수 있을까. 여기서는 이렇게 주기적으로 database 를 cold backup받는 방법 에 관해서 설명하고자 한다.
데이타베이스 환경은 다음과 같이 가정한다.
ORACLE_HOME = c:\ORANT
ORACLE_SID = ORCL
데이타화일들은 c:\ORANT\DATABASE 디렉토리에 존재한다.
cold backup을 schedule하기 위해서는 windows NT의 AT scheduler utility 가 필요하며 이것의 GUI version은 windows NT의 Resource Kit에 포함되어 있다.
우선은 NT scheduler service가 동작하고 있는지 확인해야 한다.
확인 방법은 NT 제어판을 열고 Service icon을 더블클릭하여 schedule service가 동작하고 있으며 automatic인지 확인한다.
그러면 schedule 방법을 다음과 같이 정리하였다.
1. 만약 command line scheduler를 사용하고 있다면 다음과 같은 작업을 해준다.
backup.bat라는 batch file 을 만들어서 다음과 같은 내용을 입력한다.
call c:\orant\bin\svrmgr23.exe command="@c:\shutdown.sql"
copy c:\orant\database\*orcl.ora c:\backup
call c:\orant\bin\svrmgr23.exe command="@c:\startup.sql"
backup을 schedule 한다.
NT의 command prompt(Dos prompt)에서 다음과 같은 형식으로 입력한다.
AT time "C:\backup.bat"
eg. C:\> at 14:45 "c:\backup.bat"
2. SHUTDOWN.SQL SCRIPT를 다음과 같이 만들어 준다.
connect internal/password
shutdown immediate
exit
3. STARTUP.SQL SCRIPT를 다음과 같이 만들어 준다.
connect internal/password
startup pfile=C:\ORANT\DATABASE\INITORCL.ORA
exit
이상과 같이 해주면 원하는 시간에 db를 cold backup 받을수 있을 것이다.
bulletin NO. : 11351
1. 데이타베이스를 archivelog mode로 설정하기
INIT.ORA 화일에 아래의 파라메터들을 추가하여 archiver bacground process에 대한 설정을 한다.
LOG_ARCHIVE_START = TRUE
LOG_ARCHIVE_DEST = D:\....
SERVER MANAGER 또는 SQLDBA에서 다음의 명령문들을 수행하여 database를 archive log mode로 전환한다.
SVRMGR23> CONNECT INTERNAL
SVRMGR23> STARTUP MOUNT
SVRMGR23> ALTER DATABASE ARCHIVELOG;
SVRMGR23> ALTER DATABASE OPEN;
이렇게 database를 archive log mode로 전화한 후 backup을 받아둔다.
2. Oldest online log sequence number를 확인하기
SVRMGR23> archive log list
Database log mode ARCHIVELOG
Automatic archival ENABLED
Archive destination d:\...
Oldest online log sequence 59
Next log sequence to archive 61
Current log sequence 61
확인되는 oldest online log sequence number부터 archive되는 모든 archive log file들이 online backup 내용으로 보존되어져야 한다.
3. Hot backup script
tablespace들을 online backup 상태로 설정하고 OCOPY 명령이 이용하여 tablespace들에 관계된 datafile들을 hard drive에 위치하는 backup 디렉토리로 복사하여 backup하는 script를 수행한다.
<주의> tape device에 file을 복사하는 경우에는 이 OCOPY 명령이 사용되어지지 못한다.
아래의 script는 ORCL database를 online backup하는 예제로 다른 database에서 사용되어질 때에는 각 database와 directory 구조에 맞게 수정되어져야 한다.
Tablespace의 이름을 확인하기 위해서는
select * from dba_tablespaces;
Datafile들의 위치를 확인하기 위해서는
select * from v$datafile;
을 사용한다.
다음의 online backup script는 NT scheduler나 command prompt하에서 사용이 가능하다.
[file 1, d:\temp\autobackup.cmd]
svrmgr23 @d:\temp\backup.sql
[file 2, d:\temp\backup.sql]
connect system/manager
alter tablespace user_data begin backup;
host e:\orant\bin\ocopy73 e:\orant\database\usr1orcl.ora d:\tmp\usr1orcl.bck
alter tablespace user_data end backup;
alter tablespace SYSTEM begin backup;
host e:\orant\bin\ocopy73\ocopy73 e:\orant\database\SYS1orcl.ora d:\tmp\SYS1orcl.bck
alter tablespace SYSTEM end backup;
alter tablespace ROLLBACK_DATA begin backup;
host e:\orant\bin\ocopy73\ocopy73 e:\orant\database\RBS1orcl.ora d:\tmp\RBS1orcl.bck
alter tablespace ROLLBACK_DATA end backup;
alter tablespace TEMPORARY_DATA begin backup;
host e:\orant\bin\ocopy73\ocopy73 e:\orant\database\TMP1orcl.ora d:\tmp\TMP1orcl.bck
alter tablespace TEMPORARY_DATA end backup;
exit;
일정한 시간에 online backup을 수행하기 위해 NT scheduler를 이용하는 경우의 예를 보면,
NT server의 control pannel에서 Services를 선택한다.
Schedule service가 Automatic Started 상태인지 확인한다.
매일 03:00에 online backup을 수행하기 위하여 다음과 같이 AT command를 사용한다.
AT 03:00 /every:m,t,w,th,f,s,su "d:\temp\autobackup.cmd"
4. 모든 archived log file들을 NT copy 명령을 이용하여 backup한다.
이 file들은 LOG_ARCHIVE_DEST directory에 위치한다.
5. 아래의 command를 이용하여 control file을 backup한다.
SVRMGR23> ALTER DATABASE BACKUP CONTROLFILE TO 'filespec';
또는,
SVRMGR23> ALTER DATABASE BACKUP CONTROLFILE TO TRACE ;
bulletin NO. : 11349
AT명령을 이용해 NT Backup 스케줄하기
====================================
[ 요약 ]
Microsoft Windows NT Backup 프로그램은 NTFS 또는 FAT 볼륨의 데이터를 백업과
복구할 때 쓰이는 그래픽 도구이다. NT BACKUP과 AT 유틸리티를 이용해 정기적인
일괄 작업을 작성하는 방법을 설명한다.
[예제] sqlplus 를 at 으로 실행하려면
DOS> AT /interactive cmd /c "sqlplus scott/tiger@tns @c:\aa.sql"
이때 file 은 꼭 full path 를 주어야 한다.
그리고 제어판에 scheduler 가 떠있는지 확인한다.
내용
(중요) 백업을 위한 Tape장치(테이프 드라이브)는 모두 NT의 하드웨어 호환목록
(Hardware compatibility List : HCL)에서 지원되는 것이어야 한다.
1. Schedule Service가 시작되었는지 확인한다.
Windows NT 제어판/서비스/Schedule Services 확인
2. 원하는 작업에 대한 batch file을 작성한다.
문장 : ntbackup 작업 경로 [/a][/v][/r][/d "문자열"][/hc:{on | off}]
[/t ][/l "파일
이름"][/e][/tape:]
작업 - backup, eject
경로 - 백업할 하나 이상의 디렉토리 경로를 지정
/a - 테잎의 마지막 백업 세트 다음에 백업 세트를 추가하거나 붙임.
/a를 지정하지 않으면 프로그램에서는 이전 데이터를 겹쳐씀.
/a 없이 둘 이상의 드라이브를 지정하면, 프로그램에서는 테잎의 내용을
선택한 첫째 드라이브의 정보로 겹쳐쓴 다음 나머지 드라이브의 백업
세트를 추가
/v - 작업을 확인
/r - 액세스를 제한
/d "문자열" - 백업 내용에 관한 설명을 지정
/b - 로컬 레지스트리를 백업하도록 지정
/hc:on 또는 /hc:off - 하드웨어 압축을 설정 또는 해제
/t - 백업 유형을 지정. 옵션에는 아래 유형 중 하나를 선택
Normal, copy ,incremental ,differential, daily
/l "파일 이름" - 백업 로그 파일 이름을 지정
/e - 백업 로그에 예외 오류만을 포함하도록 지정
/tape: - 파일을 백업할 테잎 드라이브를 지정. n은 테잎 드라이브를 설치할
때 지정한 드라이브 번호에 해당하는 0부터 9까지의 숫자
더 자세한 내용은 Help file을 참조하시기 바랍니다.
Sample batch file
1) Local 데이터 backup하기 (atbackup.bat로 작성)
ntbackup backup c:\tmp /d "My Backup" /t incremental /L "c:\backup.log"
\tape:4
: c:\ 드라이브의 tmp디렉토리의 데이터를 backup한다.
2) Network상의 데이터 backup하기 (atbackup.bat로 작성)
net use x: \server_name\public c:
ntbackup backup x:\ c:\tmp /d "My Backup" /t incremental /L "c:\backup.log"
\tape:4
net use x: /d
: 네트웨크상의 server_name서버의 public디렉토리의 데이터와 local의 c:\tmp의 데이터를 backup한다.
3. AT명령어의 entry를 추가하기 위해 다음과 같이 한다.
C:>at 15:00 /interactive /every:M,W,F "c:\atbackup.bat"
.: 매 월요일,수요일,금요일 오후 3시에 atbackup.bat가 수행
(참고) 한글NT에서는 AT명령의 요일별 스케줄은 지원하지 않습니다.
[한국 Oracle 자료입니다.]
|