FAQ
[A4] Online Backup 및 Time Based Recovery 방법
분류 백업/복구 등록일 2013-07-09 조회수 5020
kobul 2005-05-23 124


[A4] Online Backup 및 Time Based Recovery 방법
+++++++++++++++++++++++++++++++++++++++


요약
++++
Altibase 4는 Archivelog mode로 DB가 운영중인 경우, Online Backup 및 Recovery가
가능하다. (Archivelog Mode가 아니면 Online Backup 불가능). 이를 이용하여,
Online Backup 및 Time Based Recovery(특정 과거 시점으로의 복구)가 가능한데, 여
기서는 그 방법을 기술한다.


Onlie Backup
+++++++
1. Online Backup은 반드시 Archivelog Mode로 DB가 운영중일 경우에만 가능하며,
Archivelog Mode로 운영하는 방법은 다음 두가지가 있다.
가. DB 생성시 Archivelog Mode로 생성하는 방법
1) sysdba로 접속하여

kobul@rp5470:$ is -sysdba
-----------------------------------------------------------------
Altibase Client Query utility.
Release Version 4.3.2.5
Copyright 2000, ALTIBASE Corporation or its subsidiaries.
All Rights Reserved.
-----------------------------------------------------------------
ISQL_CONNECTION = UNIX, SERVER = 127.0.0.1, PORT_NO = 20575
[Conneted to idle instance]

2) process단계로 startup한 후
iSQL> startup process
Trying Connect to Altibase.. Connected with Altibase.
TRANSITION TO PHASE : PROCESS
Command execute success.

3) archivelog mode로 DB를 생성한다.
iSQL> create database mydb initsize=10m archivelog mode;

나. DB Noarchivelog Mode로 생성한 후, Archivelog mode로 변경하는 방법
1) 가.의 1)과 동일
2) 가.의 2)와 동일
3) noarchivelog mode로 DB를 생성한다.
iSQL> create database mydb initsize=10m noarchivelog mode;
4) Control 단계로 startup 한 후
iSQL> startup control
Trying connect to database server.. Connected with database server.
TRANSITION TO PHASE : CONTROL
Command execute success.
5) Archivelog mode로 변경한다.
iSQL> alter database archivelog;

2. Archivelog Mode로 운영중이 DB에 대하여, 아래의 UI(User Interface)로
Online Backup을 받을 수 있다.
가. 전체를 Online Backup하는 경우
iSQL> alter database backup database to '/backup';
나. 특정 테이블스페이스를 Online Backup하는 경우
iSQL> alter database backup tablespace SYS_TBS_DATA to '/backup';
다. 메모리 tablespace인 SYS_TBS_MEMORY는 시스템 카탈로그 정보가 들어있는
중요한 테이블스페이스이기 때문에, 테이블스페이스 백업(나.)이 아니라,
전체 백업(가.)을 하여야만, 백업이 이루어진다.



Time Based Recovery
+++++++
1. Archivelog Mode로 운영중이며, 원하는 복구 시점 이전에 전체 DB에 대한
Online Backup(또는 Cold Backup)을 1회 이상 수행하였다는 전제가 필요하다.
2. 특정 테이블스페이스의 데이터 파일이 손실되었으며, 특정 시점으로 복구하여야
할 필요성이 발생했다고 가정한다.
3. 조치 내용은 아래와 같다.
가. Altibase 서버를 내린다.
나. 백업 받은 DB의 모든 데이터 파일을 복사한다.
다. 메모리 테이블스페이스의 ping pong Version을 복사하여 생성한다.
예컨대, 백업받은 화일이 mydb-1-0, mydb-1-1이면,
%cp mydb-1-0 $ALTIBASE_HOME/dbs/mydb-0-0
%cp mydb-1-1 $ALTIBASE_HOME/dbs/mydb-0-1
라. loganchor파일들을 모두 복사한다.
마. sysdba로 접속하여 control단계로 startup 한다.
%is -sysdba
iSQL> startup control;
바. 필요한 경우, Online Logfile을 복사한다.
Online Logfile의 복사 필요 여부는 v$archive의 OLDEST_ACTIVE_LOGFILE을
조회하여 확인한다.

v$archive의 OLDEST_ACTIVE_LOGFILE이 $ALTIBASE_HOME/logs에서 가장 작은
logfile의 번호보다 작다면 logfile을 복사해야 된다. 예컨대,
v$archive의 OLDEST_ACTIVE_LOGFILE이 10이고, $ALTIBASE_HOME/logs에서
가장 작은 logfile의 번호가 20이라면 (즉, $ALTIBASE_HOME/logs 디렉토리에
logfile이 logfile20, logfile21, logfile22, .... , logfile100까지
있었다면, logfile20이 가장 번호가 작은 logfile이 되며, 그 가장 작은
logfile 번호는 20이다. ), $ALTIBASE_HOME/arch_logs에서
$ALTIBASE_HOME/logs디렉토리에 복사해야 할 logfile은 logfile10부터
logfile19까지 모두 10개의 logfile을 복사하여야 한다.

v$archive의 OLDEST_ACTIVE_LOGFILE이 $ALTIBASE_HOME/logs에서 가장 작은
logfile의 번호보다 크거나 같다면, 복사할 필요가 없다.
사. temp001.dbf를 생성한다.
(Online Backup시 backup 대상이 아니며, 복구시 빈통만 만들어 주면 된다.)
iSQL> alter database create datafile '$ALTIBASE_HOME/dbs/temp001.dbf';
아. Time Based Recovery를 수행한다.
iSQL> alter database recover database until time '2005-05-23:12:12:12';
(위 UI중 until이후의 구문을 빼면 현재 시점까지 Recovery가 된다. )
자. resetlog를 하여, 해당 시점 이후의 log를 무효화한다.
iSQL> alter database mydb meta resetlogs;
차. startup한다.
iSQL> startup

목록