제6장 백업과 복구

내용 목차

6.1. Tibero 구성 파일
6.2. 백업
6.2.1. 백업 종류
6.2.2. 백업 실행
6.3. 복구
6.3.1. 부트 모드별 복구
6.3.2. 파손 복구
6.3.3. 미디어 복구
6.3.4. 온라인 미디어 복구
6.4. 백업 및 복구 사례
6.4.1. NOARCHIVELOG 모드
6.4.2. ARCHIVELOG 모드
6.5. 복구 관리자
6.5.1. 복구 관리자 기능
6.5.2. 복구 관리자 정보 파일
6.5.3. 복구 관리자 옵션
6.5.4. 복구 관리자를 이용한 백업 및 복구 예제

Tibero는 시스템의 예상치 못한 오류 등으로 인해 데이터베이스가 비정상적으로 종료하거나 시스템에 물리적인 손상을 입은 상황을 대처하려고 다양한 백업과 복구 방법을 제공한다.

본 장에서는 이러한 백업과 복구 방법을 설명한다.

6.1. Tibero 구성 파일

Tibero의 파일은 컨트롤 파일(Control file), 데이터 파일(Data file), 임시 파일(Temp file), 로그 파일(Log file)로 구성된다.

각 파일의 특징과 역할은 다음과 같다.

  • 컨트롤 파일(Control file)

    컨트롤 파일은 Tibero를 구성하는 모든 파일의 위치와 데이터베이스의 이름 등 데이터베이스의 구조를 저장하는 파일이다. 특히, Tibero가 사용하는 데이터 파일, 로그 파일 등의 상태 정보가 기록된다. 컨트롤 파일은 Tibero를 기동할 때 복구가 필요한지를 판단하는 데 사용된다.

    컨트롤 파일은 데이터베이스의 복구에 매우 중요한 파일이므로 다른 물리적 파티션에 여러 개 지정하기를 권장한다. 여러 개를 유지하면 한 파티션에 장애가 발생하여 컨트롤 파일을 사용하지 못하더라도 다른 컨트롤 파일을 이용하여 복구할 수 있다.

    컨트롤 파일은 현재의 데이터베이스를 구성하는 파일에 관한 정보를 담고 있으므로 반드시 최신으로 유지해야 한다. 컨트롤 파일의 백업은 현재의 컨트롤 파일 자체를 백업하는 방식으로 이루어지지 않고, 컨트롤 파일을 생성하는 CREATE CONTROLFILE 문을 백업해 두었다가 복구가 필요한 경우 백업해 놓은 컨트롤 파일 생성문을 사용하여 컨트롤 파일을 다시 생성하는 방식으로 이루어진다.

    최신의 컨트롤 파일을 유지하기 위해서는 데이터베이스에 파일을 추가하거나 변경하는 등 구조상 변화가 있을 때마다 컨트롤 파일의 생성문을 백업해야 한다. 컨트롤 파일 자체를 백업해 두었다가 사용하는 것은 NOARCHIVELOG 모드에서처럼 데이터베이스 전체를 백업하는 경우에만 사용할 수 있다.

  • 데이터 파일(Data file)

    데이터 파일은 사용자의 데이터를 저장하는 파일로써 로그 파일과 함께 데이터베이스를 구성하는 가장 중요한 파일이다.

    Permanent 테이블 스페이스와 Undo 테이블 스페이스에서 정의한 파일로 테이블, 인덱스 등의 데이터베이스 객체를 저장한다. 테이블 스페이스는 한 개 이상의 데이터 파일로 이루어지며, 한 데이터 파일은 하나의 테이블 스페이스에 속한다.

    데이터 파일은 사용자의 데이터가 물리적으로 저장되는 공간이므로 반드시 백업해야 한다.

  • 임시 파일(Temp file)

    임시 파일은 데이터베이스가 메모리에서 처리할 수 없는 방대한 양의 데이터를 다루는 경우 임시로 사용하기 위한 공간이다.

    Tibero는 사용자의 질의를 처리하기 위해 정렬 등의 연산을 수행할 때와 임시 테이블(Temporary Table)의 데이터를 저장할 때 데이터 파일을 사용한다. 데이터 파일은 임시 테이블 스페이스(Temporary Tablespace)에서만 정의할 수 있고, 임시 테이블 스페이스는 하나 이상의 데이터 파일을 가질 수 있다.

    임시 파일은 데이터베이스를 구성하는 데이터가 물리적으로 저장되지는 않고 운영 중에 임시로 사용되는 영역이므로 백업할 필요가 없다.

  • 로그 파일(Log file)

    로그 파일은 로그를 저장하는 파일이다. 데이터 파일에 기록되는 내용을 시간 순으로 기록하는 파일로써 데이터베이스를 복구할 때 사용한다.

    로그 파일은 운영 중에 순환적으로 재사용되는 온라인 로그 파일과 재사용된 온라인 로그 파일을 보관하는 아카이브 로그 파일로 나뉜다.

    ARCHIVELOG 모드로 운영 중일 때만 아카이브 로그 파일이 만들어진다. NOARCHIVELOG 모드에서는 온라인 로그 파일만 사용한다. NOARCHIVELOG 모드에서는 재사용되어 없어진 로그 파일이 있을 수 있으므로 복구할 때 많은 제약이 따른다.

    로그 파일은 데이터베이스 복구할 때 복원된 데이터 파일을 최신 상태로 복구하기 위해, 데이터베이스가 어떻게 변경되어 왔는지에 대한 모든 정보를 기록한다. 따라서 데이터 파일과 함께 반드시 백업을 해야 한다.

6.2. 백업

백업은 여러 가지 유형의 장애로부터 데이터베이스를 보호하는 것을 뜻한다. 즉, 시스템 장애가 발생했을 때 복구를 하거나 시스템 작동을 유지하기 위한 절차 또는 기법이다.

Tibero는 데이터베이스를 백업하는 방법을 크게 두 가지로 나누어 수행할 수 있다.

  • 논리적 백업

    논리적 백업이란 테이블, 인덱스, 시퀀스와 같은 데이터베이스의 논리적 단위를 백업하는 것을 뜻한다. Tibero에서는 이를 위해 tbExporttbImport 유틸리티를 제공하고 있다. tbExporttbImport에 대한 자세한 내용은 "Tibero 유틸리티 안내서"를 참고한다.

  • 물리적 백업

    물리적 백업이란 데이터베이스를 구성하는 물리적인 파일을 백업하는 것이며 운영체제에서 파일 복사 명령(COPY)으로 백업하는 것을 뜻한다. 물리적 백업이 필요한 파일에는 데이터 파일과 아카이브 로그 파일이 있다.

    온라인 로그 파일은 NOARCHIVELOG 모드에서 데이터베이스 전체를 백업하여 복구할 경우에만 의미가 있다.

    주의

    데이터베이스가 운영 중일 때 운영체제의 파일 복사 명령을 사용하는 것은 안전하지 않으므로 주의한다.

6.2.1. 백업 종류

본 절에서는 백업의 종류를 설명한다.

다음은 Tibero가 제공하는 백업의 종류이다.

  • 모드별 백업

    데이터베이스를 ARCHIVELOG 모드로 운영할 때와 그렇지 않았을 때 사용할 수 있는 백업 방법이 다르다.

    모드설명
    ARCHIVELOG 모드

    온라인 백업(Online Backup) 또는 Hot Backup이라 한다.

    데이터베이스가 운영 중일 때 백업할 수 있다. 백업이 가능한 파일은 컨트롤 파일의 생성문과 데이터 파일, 아카이브 로그 파일 등이 있다.

    복구는 백업 된 아카이브 로그 파일의 시점에 따라 데이터 파일의 백업 시점 전으로 복구할 수 있다.

    NOARCHIVELOG 모드

    오프라인 백업(Offline Backup) 또는 Cold Backup이라 한다.

    기본적으로 데이터베이스는 NOARCHIVELOG 모드이다.

    데이터베이스를 구성하는 전체 파일은 반드시 Tibero가 정상적으로 종료된 상태에서 백업한다. 백업 때문에 서비스가 중지되면 안 된다. 복구는 데이터베이스를 백업받은 시점으로부터 복구할 수 있다.

  • Consistent 백업

    Tibero를 정상적으로 종료한 상태에서 백업하는 방법이다. 실행 예는 절 6.2.2. “Consistent 백업”을 참고한다.

  • Inconsistent 백업

    Tibero의 데이터베이스가 운영 중일 때 백업하거나 정상적으로 종료 되지 않은 상태에서 백업하는 방법이다. NOARCHIVELOG 모드에서는 이 방법을 권장하지 않는다. 실행 예는 절 6.2.2. “Inconsistent 백업”을 참고한다.

6.2.2. 백업 실행

본 절에서는 Tibero가 제공하는 논리적 및 물리적인 백업 방법에 따라 백업을 실행하는 예를 설명한다.

컨트롤 파일의 경우에는 항상 논리적인 백업만이 가능하기 때문에 컨트롤 파일을 생성하는 생성문을 백업하는 방법만을 설명한다.

데이터 파일이나 로그 파일의 경우에는 데이터베이스 상태에 따라서 백업 받는 방법이 다르므로 이를 각각 데이터베이스가 운영 중인 경우(Inconsistent 백업)와 그렇지 않은 경우(Consistent 백업)로 나누어서 설명한다.

컨트롤 파일 백업

컨트롤 파일은 물리적인 백업을 지원하지 않는다. Tibero에서는 컨트롤 파일의 논리적인 백업만을 지원한다. 데이터베이스의 구조에 변화가 일어난 경우에는 컨트롤 파일의 생성문을 백업하는 것이 좋다.

다음은 컨트롤 파일의 생성문을 tibero5/backup 디렉터리에 있는 ctrlfile1.sql 파일에 백업하는 예이다.

[예 6.1] 컨트롤 파일의 백업

SQL> alter database backup controlfile to trace as
       '/tibero5/backup/ctrlfile1.sql' reuse NORESETLOGS;

Altered.

생성된 ctrlfile1.sql 파일은 다음과 같은 내용을 포함한다.

[예 6.2] 백업된 컨트롤 파일의 생성문

CREATE CONTROLFILE REUSE DATABASE "t4db"
 LOGFILE
 GROUP 0 (
 '/disk1/log001.log',
 '/disk2/log002.log'
 ) SIZE 1M,
 GROUP 1 (
 '/disk1/log003.log',
 '/disk2/log004.log'
 ) SIZE 1M,
 GROUP 2 (
 '/disk1/log005.log',
 '/disk2/log006.log'
 ) SIZE 1M
 NORESETLOGS
 DATAFILE
 '/disk1/system001.dtf',
 '/disk1/undo001.dtf'
 NOARCHIVELOG
 MAXLOGFILES 255
 MAXLOGMEMBERS 8
 MAXDATAFILES 100
 CHARACTER SET MSWIN949
 NATIONAL CHARACTER SET UTF16
 ; 

RESETLOGS는 컨트롤 파일의 생성문에 지정한 대로 만들어진다. 이 생성문은 트레이스 파일을 생성한 후 RESETLOGS를 필요로 할 경우에 사용하며, RESETLOGS가 필요하지 않은 경우는 NORESETLOGS로 수정하여 컨트롤 파일을 생성할 때 적용할 수 있다.

참고

컨트롤 파일의 생성문에는 임시 파일을 생성하는 내용이 없다. 컨트롤 파일을 생성한 후 Tibero를 기동하면 임시 파일은 존재하지 않는다.

컨트롤 파일을 새로 생성한 경우 반드시 임시 파일을 추가해야 임시 파일을 이용한 기능을 사용할 수 있다.

생성된 컨트롤 파일은 $TB_SID.tip 파일에 경로를 설정한다.

[예 6.3] 컨트롤 파일의 경로 설정

CONTROL_FILES=$TB_HOME/database/$TB_SID/

다음과 같이 MOUNT나 OPEN 상태에서 컨트롤 파일의 목록을 조회하려면 동적 뷰 V$CONTROLFILE를 조회한다.

[예 6.4] 컨트롤 파일의 조회

SQL> SELECT NAME FROM V$CONTROLFILE;

NAME
------------------------------------------------------------
/disk1/c1.ctl
/disk2/c2.ctl

2 selected.


참고

컨트롤 파일을 다시 생성하기 위해서는 $TB_SID.tip 파일에 설정된 컨트롤 파일의 위치를 [예 6.4]의 질의 결과와 동일하게 설정한 후 CREATE CONTROLFILE 문을 실행해야 한다.

Consistent 백업

본 절에서는 Tibero가 정상적으로 종료한 후에 백업하는 방법을 설명한다.

Consistent 백업을 실행 하기에 앞서 백업할 컨트롤 파일, 데이터 파일, 로그 파일을 조회한다.

다음은 MOUNT나 OPEN 상태에서 동적 뷰 V$DATAFILE를 통해 데이터 파일을 조회하는 방법이다. 여기서 MOUNT는 Tibero의 인스턴스가 시작된 상태이며, OPEN은 컨트롤 파일에 정의한 모든 파일이 오픈된 상태를 의미한다.

[예 6.5] 데이터 파일의 조회

SQL> SELECT NAME FROM V$DATAFILE;

NAME
------------------------------------------------------------
/disk1/system001.dtf
/disk2/undo001.dtf
/disk3/user001.dtf

3 selected.

다음은 온라인 로그 파일을 MOUNT나 OPEN 상태에서 조회하는 방법이다.

[예 6.6] 온라인 로그 파일의 조회

SQL> SELECT MEMBER FROM V$LOGFILE;

MEMBER
------------------------------------------------------------
/disk1/log001.log
/disk2/log002.log
/disk2/log003.log
/disk3/log004.log
/disk3/log005.log
/disk1/log006.log

6 selected.

온라인 로그 파일은 ARCHIVELOG 모드가 아닌 경우에는 백업하지 않는 것이 좋다. ARCHIVELOG 모드에서는 온라인 로그 파일이 아카이브되기 때문에 아카이브된 파일을 백업하면 안 된다. 참고로 아카이브된 파일은 LOG_ARCHIVE_DEST 초기화 파라미터에 설정된 위치에 저장된다.

데이터베이스는 다음과 같이 NORMAL 모드로 종료하는 것이 좋다.

SQL> tbdown NORMAL;
Tibero instance was terminated.

데이터베이스가 정상적으로 종료되면 운영체제별로 제공하는 파일 복사 명령을 사용하여 백업한다.

Inconsistent 백업

본 절에서는 Tibero가 운영 중일 때 백업하는 방법을 설명한다.

데이터베이스가 운영 중이면 운영체제의 명령어를 사용해 데이터 파일을 복사하는 것은 안전하지 않다. 이러면 다음과 같은 문장을 실행하여 Tibero에 백업의 시작과 종료를 통보해야 한다.

alter tablespace {tablespace name} begin backup
...
alter tablespace {tablespace name} end backup

begin backup과 end backup 문장 사이에는 해당 테이블 스페이스의 변경 사항에 대한 로그가 늘어나기 때문에 데이터베이스에 부담이 가중되게 된다. begin backup을 시작한 이후에는 신속하게 백업을 완료하고 end backup 상태로 복귀시켜야 한다.

Inconsistent 백업의 전체 과정은 다음과 같다.

  1. 먼저 백업할 테이블 스페이스를 선정한다.

    [예 6.7] Inconsistent 백업 - 테이블 스페이스의 선정

    SQL> select name,type from v$tablespace;
    
    NAME                           TYPE
    ------------------------------ ----
    SYSTEM                         DATA
    UNDO                           UNDO
    USER                           DATA
    TEMP                           TEMP
    
    3 selected.

  2. 백업할 테이블 스페이스에 속한 데이터 파일을 조회한 후 begin backup, end backup 명령어를 사용하여 백업을 수행한다. 예를 들어 USER 테이블 스페이스를 백업할 경우를 가정하고 수행한다.

    [예 6.8] Inconsistent 백업 - begin backup, end backup 명령어의 사용

    SQL> select f.name
         from v$tablespace t join v$datafile f on t.ts# = f.ts#
         where t.name = 'USER';
    
    NAME
    ------------------------------------------------------------
    /disk3/user001.dtf
    
    1 selected
    
    SQL> alter tablespace SYSTEM begin backup;
    
    Altered.
    
    SQL> !cp /disk3/user001.dtf /backup/
    SQL> alter tablespace  SYSTEM end backup;
    
    Altered.

6.3. 복구

Tibero를 운영하다 보면 예상치 못한 장애로 인해 정상적인 데이터베이스 운영이 어려운 상황이 발생할 수 있다. 복구는 장애가 발생하는 경우 복원하는 일련의 과정이다.

복구를 하려면 백업된 데이터베이스가 있어야 한다. Tibero는 데이터베이스에서 일어나는 모든 변화를 로그 파일에 기록한다. 따라서 백업 이후에 데이터베이스에 일어난 모든 변화에 대해서는 로그를 적용하면 복구할 수 있다. 로그 파일에는 커밋되지 않은 트랜잭션이 수정한 데이터도 포함되어 있다. 복구할 때 아카이브 로그 파일과 로그 파일 모두 사용할 수 있다.

복구 과정은 다음과 같이 두 가지 경우로 수행할 수 있다.

  • 데이터 파일에 기록되지 않는 변화를 로그를 사용하여 적용하는 과정

    데이터 파일에 모든 로그의 변화를 기록하는 과정을 통해서 데이터베이스는 안정된 상태가 된다. 즉, 데이터베이스 운영상의 특정 시점까지 모든 작업이 반영되고 그 이후의 변화는 발생하지 않아야 한다.

    데이터베이스에 정상적인 복구가 이루어져 안정된 상태가 되어야만 기동할 수 있다.

  • 커밋되지 않는 데이터로 복구하는 과정

    데이터베이스를 종료할 때 커밋하지 않은 트랜잭션이 수정한 내용으로 복구하는 과정이다.

6.3.1. 부트 모드별 복구

Tibero는 부트 모드별로 발생되는 작업을 복구 측면에서 보면 다음과 같다.

  • NOMOUNT 모드

    NOMOUNT 모드로는 언제나 복구할 수 있다. 이 모드에서는 데이터베이스와 컨트롤 파일을 생성할 수 있다. MOUNT 모드로 동작하기 위해서는 컨트롤 파일이 있어야 한다. 컨트롤 파일이 없거나 컨트롤 파일에 장애가 발생한 경우에는 NOMOUNT 모드로 동작하며 컨트롤 파일을 생성하면 MOUNT 모드로 동작할 수 있다.

  • MOUNT 모드

    MOUNT 모드에서는 데이터 파일, 온라인 로그 파일, 컨트롤 파일 사이의 상태를 검사하여 Tibero를 기동할 준비를 한다. 세 파일이 모두 최신 상태이면 OPEN 모드로 동작할 수 있다. 파일에 물리적인 장애가 발생하였거나, 복원된 파일이라면 미디어 복구가 필요하며 MOUNT 모드로 동작한다. MOUNT 모드에서는 제한된 뷰의 조회가 가능하고 미디어 복구를 수행할 수 있다.

  • OPEN 모드

    Tibero의 데이터 파일, 온라인 로그 파일, 컨트롤 파일이 일관성을 유지할 때에만 OPEN 모드로 동작할 수 있다. OPEN 모드에서 Tibero는 세 파일을 열고 정상으로 동작한다. 일반 사용자는 데이터베이스를 이용할 수 있다.

    오프라인 상태인 테이블 스페이스에 사용자가 접근하려면 우선 해당 테이블 스페이스를 온라인 상태로 전환해야 한다. 이때 다른 파일들과 일관성을 유지하기 위해 해당 테이블 스페이스에 온라인 미디어 복구를 수행해야 한다.

6.3.2. 파손 복구

파손 복구(Crash Recovery)는 Tibero를 운영하는 중에 정전, 시스템 이상, 강제 종료 등으로 데이터베이스가 비정상적으로 종료되었을 때 사용자의 명령 없이 자동으로 복구되는 것을 의미한다. 복구가 완료되면 Tibero가 정상적으로 동작한다.

파손 복구는 온라인 로그 파일의 내용 중 아직 데이터 파일에 반영되지 않은 부분을 기록하여 Tibero가 비정상적으로 종료되기 직전에 운영 시점의 상태로 복구하는 과정과 이러한 상태로 복구된 시점에서 커밋되지 않은 트랜잭션이 발생시킨 변화를 되돌리는 과정으로 나눌 수 있다.

파손 복구의 모든 과정은 파일의 손상이 없는 한, DBA의 도움 없이 자동으로 이루어진다.

6.3.3. 미디어 복구

Tibero를 구성하는 파일이 물리적인 손상이나 정상적으로 동작할 수 없는 경우가 발생할 수 있다. 이러한 경우 데이터베이스가 정상적으로 동작할 수 있도록 복구하는 과정이 미디어 복구(Media Recovery)이다.

미디어 복구 과정은 자동으로 이루어지지 않는다. DBA가 상황을 파악해서 필요한 과정을 지시하는 일련의 작업이 필요하다. 복구 완료시점을 오류가 발생하기 이전의 가장 최근 시점까지로 할지, 과거의 특정 시점까지로 할지 여부에 따라서 완전 복구(Complete Recovery)와 불완전 복구(Incomplete Recovery)로 구분된다.

완전 복구

온라인 로그 파일의 가장 최근 로그까지 모두 반영하는 미디어 복구이다.

불완전 복구

온라인 로그 파일의 최근까지가 아닌 그 이전의 특정 시점까지 복구하는 것을 말한다. 불완전 복구 후에는 반드시 RESETLOGS 모드로 Tibero를 기동해야 한다.

RESETLOGS는 온라인 로그 파일을 초기화하는 것이며, 현재 온라인 로그 파일로 데이터베이스를 시작하지 않을 때 사용한다.

RESETLOGS가 필요한 경우는 다음과 같다.

  • 불완전 미디어 복구를 한 경우

  • RESETLOGS로 컨트롤 파일을 생성한 경우

RESETLOGS로 시작하면 새로운 데이터베이스가 만들어진 것과 같다. RESETLOGS 이전의 데이터 파일, 로그 파일과 RESETLOGS 이후의 파일은 서로 호환되지 않는다. RESETLOGS 이전의 백업 파일이나 로그 파일을 이용하여 RESETLOGS 이후로 복구할 수 없다. 또한 RESETLOGS 이후의 파일을 RESETLOGS 이전 상태로 불완전 복구를 하는 것도 불가능하다. 따라서 RESETLOGS 모드로 기동한 경우에는 반드시 새로 백업을 하기를 권장한다.

RESETLOGS로 데이터베이스를 기동하는 방법은 다음과 같다.

[예 6.9] RESETLOGS를 이용한 데이터베이스의 기동

$ tbboot -t RESETLOGS

미디어 복구 과정은 MOUNT 모드에서만 이루어진다. 백업된 파일을 사용하여 오류가 발생한 파일을 복원하는 과정과 복원된 파일을 백업한 시점으로부터 최근 또는 특정 시점까지 반영되지 않은 변화를 로그 파일을 사용하여 복구하는 과정으로 나눌 수 있다. 단순한 복원 과정만으로는 Tibero의 정상적인 운영이 불가능하다.

미디어 복구를 위해 장애가 발생한 파일을 찾아 복구해야 한다. 이를 위해 다음과 같은 뷰를 제공한다.

  • V$LOGFILE

  • V$CONTROLFILE

  • V$LOG

  • V$RECOVER_FILE

  • V$RECOVERY_FILE_STATUS

미디어 복구는 로그 파일을 하나씩 데이터베이스에 순서대로 반영하여 진행한다. 데이터베이스는 현재 복구에 필요한 로그 파일만을 반영할 수 있다. 현재 필요한 로그 파일을 찾기 위해 시퀀스 번호가 사용된다.

시퀀스 번호는 데이터베이스가 생성된 이후로 만들어진 로그 파일의 일련 번호이며, 모든 로그 파일은 하나의 유일한 시퀀스 번호를 갖는다. 시퀀스 번호가 큰 로그 파일이 최근 로그 파일이다. 시퀀스 번호는 아카이브 로그 파일의 경우 파일 이름을 통해 알 수 있고, 온라인 로그 파일의 경우 V$LOG 뷰를 통해 알 수 있다.

6.3.4. 온라인 미디어 복구

Tibero를 운영하는 도중에 일부 데이터 파일이 물리적으로 손상되거나 정상적으로 동작할 수 없는 경우가 발생할 수 있다. 이러한 경우에 OPEN 모드에서 해당 데이터 파일이 포함된 테이블 스페이스만 미디어 복구를 수행할 수 있다. 이것이 온라인 미디어 복구(Online Media Recovery) 이다. 온라인 미디어 복구는 완전 복구만 가능하다.

6.4. 백업 및 복구 사례

본 절에서는 NOARCHIVELOG 모드와 ARCHIVELOG 모드로 나누어 백업 및 복구 사례를 설명한다.

6.4.1. NOARCHIVELOG 모드

ARCHIVELOG 모드를 사용하지 않으면 미디어 복구를 할 수 없다. 특정 데이터 파일이 손상된 경우 해당 파일의 백업으로부터 복구하는 과정만이 가능하다.

백업은 Tibero를 종료하고 나서 Tibero를 구성하는 모든 파일을 그대로 백업받으면 된다. 단, 임시 파일은 백업 대상에 포함하지 않는다. 백업된 파일을 복구하여 백업받을 당시의 Tibero의 상태로만 복구할 수 있으며, 그 이후에 발생한 작업은 모두 다시 수행해야 한다. 이 과정에서 발생할 수 있는 문제는 해당 디스크에 물리적 오류가 발생하여 처음 있던 위치로 복구할 수 없는 경우가 발생할 수 있다.

데이터 파일이나 로그 파일을 해당 위치에 복원할 수 없는 경우

데이터 파일이나 온라인 로그 파일을 해당 위치에 복원할 수 없는 경우에는 다른 위치로 복원을 한 후에 컨트롤 파일에 설정된 데이터 파일의 위치를 수정한다.

[예 6.10] 데이터 파일의 위치 수정

$ tbboot -t MOUNT
$ tbsql sys/tibero

SQL> select file#, name from v$datafile;
FILE#      NAME
---------  ----------------------------------------------------
0          /disk1/database/system001.dtf
1          /disk1/database/undo001.dtf

SQL> alter database rename file '/disk1/database/system001.dtf'
       to '/disk2/database/system001.dtf';
Altered.

SQL> tbdown
Tibero instance was terminated.

SQL> quit
$ tbboot

컨트롤 파일을 해당 위치에 복구할 수 없는 경우

컨트롤 파일이 복구되어야 하는 위치에 복구될 수 없는 경우에는 백업을 다른 곳으로 복원하면 된다. 이 경우에는 $TB_SID.tip 파일에서 변경된 컨트롤 파일의 위치를 설정하면 된다.

6.4.2. ARCHIVELOG 모드

ARCHIVELOG 모드를 사용하는 경우에는 미디어 복구를 할 수 있다. 데이터 파일과 아카이브 로그 파일을 백업하면 된다.

예를 들어 로그 파일에 장애가 발생하면 해당 로그 파일이 속한 로그 그룹의 다른 로그 파일을 복사하여 복구한다. 만약 로그 그룹에 속한 모든 로그 파일에 장애가 발생하면 현재 로그 그룹에 장애가 발생한 그룹을 제거한 후 다른 그룹을 추가하면 된다. 하지만 해당 로그 그룹이 현재 로그 그룹이면 커밋 시점까지의 내용만 복구하는 불완전한 복구를 해야 한다.

시스템 테이블 스페이스의 데이터 파일이 손상된 경우

시스템 테이블 스페이스에 속한 데이터 파일은 Tibero 운영에 필요한 구성요소이므로 반드시 복원되어야 한다. 특정 데이터 파일이 손상된 경우 해당 데이터 파일을 백업으로부터 복원하여 복구를 진행한다.

다음은 시스템 테이블 스페이스의 데이터 파일을 복구하는 예이다.

[예 6.11] 시스템 테이블 스페이스의 데이터 파일 복구

SQL> col tablespace format a10
SQL> col filename format a50
SQL> select a.name tablespace, b.name filename
     from v$tablespace a join v$datafile b on (a.ts# = b.ts#);

TABLESPACE FILENAME
---------- --------------------------------------------------
SYSTEM     /disk1/database/system00.dtf
UNDO       /disk1/database/undo001.dtf
ZZ         /disk2/database/tmp001.dtf

3 selected.

SQL> tbdown
SQL> quit
$ rm -f /disk1/database/system00.dtf
$ tbboot
listener port = 8629

********************************************************
* Critical Warning : Raise svmode failed. The reason is
* TBR-1024 : Database needs media recovery: open \
failed(/disk1/database/system001.dtf)
* Current server mode is MOUNT.
********************************************************

Tibero 5 SP1 

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at MOUNT mode.

$ tbsql sys/tibero
tbSQL 5 SP1

Copyright (c) 2001-2009 TmaxData Corporation. All rights reserved.

Connected to Tibero.

SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------
0 FILE MISSING            4294965795 2006/11/14

1 selected.

SQL> !cp /backup/system00.dtf /disk1/database/system00.dtf
SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------
0 WRONG FILE CREATE       4294965795 2006/11/14

1 selected.

SQL> alter database recover automatic database;

Altered.

SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------

0 selected.

SQL> tbdown
Tibero instance was terminated.
SQL> quit
$ tbboot
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started up (NORMAL mode). 

비시스템 테이블 스페이스의 데이터 파일이 손상된 경우

비시스템 테이블 스페이스의 데이터 파일이 손상된 경우 해당 데이터 파일을 복원하여 복구하는 방법과 해당 테이블 스페이스를 제거하는 방법이 있다. 시스템 테이블 스페이스나 Undo 테이블 스페이스가 아닌 경우에는 장애가 발생한 테이블 스페이스만 없어질 뿐 Tibero 운영 자체에는 문제가 발생하지 않는다. 데이터 파일을 복구하는 방법은 [예 6.11]과 동일한 방법으로 수행하면 된다.

다음은 테이블 스페이스의 내용이 별로 중요하지 않거나 없어져도 문제가 없는 경우에 제거하는 예이다.

[예 6.12] 장애가 발생한 데이터 파일이 속한 테이블 스페이스의 제거

$ tbboot
********************************************************
* Critical Warning : Raise svmode failed. The reason is
* TBR-1024 : Database needs media recovery: open \
failed(/disk1/test1.dtf).
* Current server mode is MOUNT.
********************************************************

$ tbsql sys/tibero
SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------
2 FILE MISSING            4294965795 2006/11/14

1 selected.

SQL> alter database datafile 2 offline for drop;

Altered.

SQL> tbdown
Tibero instance was terminated.
SQL> quit
Disconnected.
$ tbboot -t resetlogs
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at NORMAL mode.

$ tbsql sys/tibero
SQL> drop tablespace test_ts including contents and datafiles;

Dropped.

SQL> select file#, name from v$datafile;

FILE#      NAME
---------- --------------------
0          /disk1/system001.dtf
1          /disk1/undo001.dtf

2 selected.

백업이 안된 데이터 파일에 장애가 발생한 경우

ALTER DATABASE CREATE DATAFILE 문을 사용하여 데이터 파일을 새로 생성한 후 복구한다.

다음은 데이터 파일을 생성하여 복구하는 예이다.

[예 6.13] 데이터 파일의 생성을 통한 복구

SQL> create tablespace z datafile '/disk1/z.dtf' size 10m;

Created.

SQL> create table z (i number) tablespace z;

Created.

SQL> insert into z values(1);

1 inserted.

SQL> commit;

Commit succeeded.

SQL> tbdown
Tibero instance was terminated.
SQL> quit
$ rm -f /disk1/z.dtf
$ tbboot
********************************************************
* Critical Warning : Raise svmode failed. The reason is
* TBR-1024 : Database needs media recovery: open \
failed(/disk1/z.dtf).
* Current server mode is MOUNT.
********************************************************

$ tbsql sys/tibero

SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------
2 FILE MISSING            4294970441 2006/11/14

1 selected.

SQL> alter database create datafile 2;

Altered.

SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------
2 WRONG FILE CREATE       4294970441 2006/11/14

1 selected.

SQL> alter database recover automatic database;

Altered.

SQL> select * from v$recover_file;

FILE# ERROR                      CHANGE# TIME
---------- ----------------------- ---------- ----------

0 selected.

SQL> tbdown

$ tbboot
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started up (NORMAL mode).

$ tbsql sys/tibero

SQL> select * from z;

I
----------
1

1 selected.

컨트롤 파일에 장애가 발생한 경우

컨트롤 파일의 경우 장애에 대비하기 위해서 여러 개의 복사본을 유지하는 미러링(mirroring) 방식을 사용한다. 미러링된 파일 중 장애가 발생하지 않은 파일이 있으면 이를 이용하여 장애가 발생한 파일에 복사하고 Tibero를 다시 기동한다. 모든 컨트롤 파일에 장애가 발생한 경우에는 CREATE CONTROLFILE 문을 사용하여 컨트롤 파일을 새로 생성해야 한다.

다음은 미러링된 파일 중에 장애가 발생하지 않은 파일을 복사하여 컨트롤 파일의 장애를 해결하는 예이다.

[예 6.14] 미러링을 사용한 컨트롤 파일의 복구

$ grep "CONTROL_FILES" $TB_HOME/config/$TB_SID.tip
CONTROL_FILES=/disk1/ctl1.ctl, /disk2/ctl2.ctl

$ tbboot
********************************************************
*   Warning: Control file open failed 
*    /disk2/ctl2.ctl
********************************************************

SQL> tbdown
Tibero instance was terminated.

$ ls /disk2/*.ctl
$ cp /disk1/ctl1.ctl /disk2/ctl2.ctl
$ ls /disk2/*.ctl
ctl2.ctl

$ tbboot
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started up (NORMAL mode).

위의 예제에서는 $TB_SID.tip 파일에 설정되어 있는 컨트롤 파일 두 개 중 ctl2.ctl 파일에 장애가 발생하여 Tibero가 시작하면서 경고가 발생했다. 하나 이상의 컨트롤 파일에 접근 가능하면 Tibero를 정상 운영할 수 있지만, 미러링된 정상적인 파일을 복사해서 나머지 손상된 컨트롤 파일을 복구하여 기동할 때 경고가 발생하지 않도록 하는 것이 좋다. 모든 컨트롤 파일에 장애가 발생하면 Tibero를 정상 시작할 수 없다.

다음은 컨트롤 파일을 생성한 후 RESETLOGS로 데이터베이스를 시작하는 예이다. 단, 컨트롤 파일을 생성할 때 임시 파일이 존재하지 않으므로 반드시 추가해야 한다.

[예 6.15] 컨트롤 파일의 생성을 통한 복구

$ tbboot -t NOMOUNT
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started up (NOMOUNT mode).

$ tbsql sys/tibero

SQL> CREATE CONTROLFILE REUSE DATABASE "t3db"
         LOGFILE
           GROUP 0 (
                     '/disk1/log001.log',
                     '/disk2/log002.log'
                   ) SIZE 1M,
           GROUP 1 (
                     '/disk1/log003.log',
                     '/disk2/log004.log'
                   ) SIZE 1M,
           GROUP 2 (
                     '/disk1/log005.log',
                     '/disk2/log006.log'
                   ) SIZE 1M
         RESETLOGS
         DATAFILE
                 '/disk1/system001.dtf',
                 '/disk1/undo001.dtf'
         NOARCHIVELOG
         MAXLOGFILES 255
         MAXLOGMEMBERS 8
         MAXDATAFILES 100
     ;
Created.

SQL> tbdown
Tibero instance was terminated.

SQL> quit
$ tbboot -t RESETLOGS
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at NORMAL mode.

$ tbsql sys/tibero

SQL> select file_id, tablespace_name from dba_temp_files;

   FILE_ID TABLESPACE_NAME
---------- ------------------------------

0 selected.

SQL> alter tablespace temp add tempfile '/disk1/temp01.dtf'
       size 10m reuse;

Altered.

SQL> select file_id, tablespace_name from dba_temp_files;

   FILE_ID TABLESPACE_NAME
---------- ------------------------------
         0 TEMP

1 selected.

로그 파일에 장애가 발생한 경우

로그 파일에 장애가 발생한 경우에는 해당 로그 파일이 속한 그룹의 다른 로그 파일을 복사하여 복원을 시도한다. 로그 그룹에 속한 모든 로그 파일이 장애가 발생한 경우에는 현재 로그 그룹이 장애가 발생한 그룹을 제거한 후 다른 그룹을 추가하면 된다. 하지만 해당 로그 그룹이 현재의 로그 그룹이라면 불완전 복구를 통해 복구해야 한다.

사용자의 실수로 테이블의 데이터가 잘못된 경우

사용자가 실수로 테이블의 데이터를 잘못 조작한 경우에는 불완전 복구를 적용한다.

다음은 급여를 10% 삭감하는 작업을 하면서 조작을 잘못하여 테이블 emp의 모든 salary의 데이터가 0이 된 상황에서 백업 파일을 복원하고 실수 직전의 시간을 지정하여 불완전 복구를 수행하는 예이다. (시간 기반 불완전 복구)

[예 6.16] 시간 기반 불완전 복구를 통한 테이블의 데이터 복원

$ tbsql sys/tibero

SQL> select * from emp;

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter          7200
         2 Smith          6400
         3 Susan          3200

3 rows selected.

SQL> update emp set salary = salary * 0.9;

3 rows updated.

SQL> commit;

Commit completed.

SQL> select * from emp;

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter          6480
         2 Smith          5760
         3 Susan          2880

3 rows selected.

SQL> !date
Wed Nov 15 13:33:28 KST 2006

SQL> update emp set salary = 0;

3 rows updated.

SQL> commit;

Commit completed.

SQL> select * from emp;                                                             

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter             0
         2 Smith             0
         3 Susan             0

3 rows selected.

SQL> Disconnected.

$ tbdown
Tibero instance was terminated.

$ cp -f back/*.dtf .
$ tbboot -t mount
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at MOUNT mode.

$ tbsql sys/tibero

SQL> alter system set NLS_DATE_FORMAT="YYYY/MM/DD HH24:MI:SS";

System altered.

SQL> alter database recover automatic database until time '2006-11-15 13:33:28';

Database altered.

SQL> Disconnected.
$ tbdown

Tibero instance was terminated.

$ tbboot -t RESETLOGS
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at NORMAL mode.

$ tbdown
Tibero instance was terminated.

$ tbboot
listener port = 8629

Tibero 5 SP1

Copyright (c) 2001-2009 TmaxData Corporation. All rights reserved.

Tibero instance started up (NORMAL mode).

$ tbsql sys/tibero

SQL> select * from emp;

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter          6480
         2 Smith          5760
         3 Susan          2880

3 rows selected.

SQL>

실수 직전의 TSN을 지정하여 복구할 수도 있다. (변경 기반 불완전 복구)

다음은 위와 동일한 상황에서 TSN을 알아내어 복구하는 방법이다.

[예 6.17] 변경 기반 불완전 복구를 통한 테이블의 데이터 복원

$ tbsql sys/tibero

SQL> select * from emp;

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter          7200
         2 Smith          6400
         3 Susan          3200

3 rows selected.

SQL> update emp set salary = salary * 0.9;

3 rows updated.

SQL> commit;

Commit completed.

SQL> select * from emp;

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter          6480
         2 Smith          5760
         3 Susan          2880

3 rows selected.

SQL> select current_tsn from v$database;

CURRENT_TSN
-----------
      14009

1 row selected.

SQL> update emp set salary = 0;

3 rows updated.

SQL> commit;

Commit completed.

SQL> select * from emp;                                                             

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter             0
         2 Smith             0
         3 Susan             0

3 rows selected.

SQL> Disconnected.

$ tbdown
Tibero instance was terminated.

$ cp -f back/*.dtf .
$ tbboot -t mount
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at MOUNT mode.

$ tbsql sys/tibero

SQL> alter database recover automatic database until change 14009;

Database altered.

SQL> Disconnected.
$ tbdown.
Tibero instance was terminated.

$ tbboot -t RESETLOGS
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at NORMAL mode.

$ tbdown
Tibero instance was terminated.

$ tbboot
listener port = 8629

Tibero 5 SP1

Copyright (c) 2001-2009 TmaxData Corporation. All rights reserved.

Tibero instance started up (NORMAL mode).

$ tbsql sys/tibero

SQL> select * from emp;

       ENO ENAME        SALARY
---------- -------- ----------
         1 Peter          6480
         2 Smith          5760
         3 Susan          2880

3 rows selected.

SQL> 

취소 기반 복구를 이용하여 로그 파일을 선택적으로 적용하려는 경우

취소 기반 복구는 데이터 파일과 사용 중인 로그 파일이나 아카이브 로그 파일 등이 손상되었을 때 원하는 로그 파일을 직접 지정하여 적용하는 복구 방법이다.

다음은 온라인 Redo 로그가 삭제된 상황에서 백업 파일에 아카이브 로그만 적용하여 복구하고 서버를 기동하는 경우이다.

[예 6.18] 취소 기반 데이터 복원

$ cp ./backup/*.dtf .
$ ls archive/
log-t0-r0-s1.arc  log-t0-r0-s2.arc  log-t0-r0-s3.arc  log-t0-r0-s4.arc
$ tbboot -t mount
Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at MOUNT mode.

$ tbsql sys/tibero

SQL> alter database recover database until cancel;

Database altered.

SQL> alter database recover logfile '/tibero/archive/log-t0-r0-s1.arc';

Database altered.

SQL> alter database recover logfile '/tibero/archive/log-t0-r0-s2.arc';

Database altered.

SQL> alter database recover logfile '/tibero/archive/log-t0-r0-s3.arc';

Database altered.

SQL> alter database recover logfile '/tibero/archive/log-t0-r0-s4.arc';

Database altered.

SQL> alter database recover cancel;

Database altered.

SQL> Disconnected.
$ tbdown.

$ tbboot -t RESETLOGS
listener port = 8629

Tibero 5 SP1

Copyright (c) 2008, 2009, 2011 TmaxData Corporation. All rights reserved.

Tibero instance started suspended at NORMAL mode.

$ tbdown
Tibero instance was terminated.

$ tbboot
listener port = 8629

Tibero 5 SP1

Copyright (c) 2001-2009 TmaxData Corporation. All rights reserved.

Tibero instance started up (NORMAL mode). 

운영 중에 일부 데이터 파일이 물리적으로 손상된 경우

운영 중에 일부 데이터 파일이 물리적으로 손상되어 해당 테이블 스페이스에 접근할 수 없는 경우 온라인 미디어 복구를 통해 복원한다.

다음은 운영 중에 삭제된 데이터 파일을 온라인 미디어 복구를 통해 복구하는 예이다.

[예 6.19] 온라인 미디어 복구를 통한 데이터 파일 복구

SQL> create tablespace z datafile '/disk1/z.tdf' size 10m;

Created.

SQL> create table z (i number) tablespace z;

Created.

SQL> insert into z values (1);

1 row inserted.

SQL> commit;

Commit succeeded.

SQL> tbdown
Tibero instance was terminated.
SQL> quit

$ cp /disk1/z.tdf /disk1/z.tdf.bak
$ tbboot
Tibero instance started up (NORMAL mode).

$tbsql sys/tibero
SQL> !rm /disk1/z.tdf
SQL> alter system checkpoint;

System altered.

SQL> select * from z;
TBR-1003: Unable to open file /disk1/z.tdf.

SQL> !cp /disk1/z.tdf.bak /disk1/z.tdf
SQL> select * from z;
TBR-1003: Unable to open file /disk1/z.tdf.   

SQL> alter tablespace z offline immediate;

Tablespace 'Z' altered.

SQL> alter database recover automatic tablespace z;

Database altered.

SQL> alter tablespace z online;

Tablespace 'Z' altered.

SQL> select * from z;

I
----------
1
     
1 row selected.


6.5. 복구 관리자

Tibero는 다양한 백업 및 복구 시나리오를 제공한다. 숙련된 데이터베이스 관리자라면 상황에 맞는 적절한 방법을 선택하고 활용할 수 있을 것이다. 하지만 너무 다양한 기능을 제공함으로써 오히려 사용자에게 혼란을 줄 수도 있다. 이러한 면을 보완하기 위하여 Tibero는 복구 관리자(이하 RMGR)를 제공한다.

6.5.1. 복구 관리자 기능

RMGR는 다양한 백업 및 복구 시나리오를 가능하게 하도록 구성되어 있다. Tibero에서 제공되는 RMGR 기능은 다음과 같다.

  • Online Full Backup

    Tibero 데이터베이스에 속한 전체 데이터 파일을 온라인 백업한다. 온라인 백업을 위해서는 데이터베이스가 ARCHIVELOG 모드이여야 한다. RMGR은 자동으로 데이터베이스의 Begin Backup 기능을 사용하여 모든 테이블 스페이스를 Hot Backup 상태로 만들고 백업을 진행한다.

    백업을 완료하면 데이터베이스의 End Backup 기능을 사용하여 모든 테이블 스페이스를 Hot Backup 상태로부터 해제한다. 백업할 데이터 파일 역시 V$DATAFILE을 조회하여 자동으로 결정해 준다.

  • Incremental/Cumulative Backup

    RMGR를 통해 온라인 백업을 받았으면 이를 이용하여 Incremental Backup과 Cumulative Backup을 할 수 있다. 즉, Incremental 및 Cumulative Backup 기능은 RMGR를 통해서만 사용할 수 있다.

    구분설명
    Incremental Backup

    Incremental Backup이란 백업을 받을 때 전체 파일을 받는 것이 아니라 이전 백업과의 차이만을 기록하는 방식으로 백업에 소모되는 디스크 공간을 획기적으로 줄일 수 있다.

    Incremental Backup을 하려면 이전에 RMGR를 통해 Online Full Backup을 받았어야 한다. 이를 이용하여 현재 데이터베이스와 백업본과의 차이를 바탕으로 백업 파일을 만든다.

    Cumulative Backup

    Cumulative Backup이란 백업을 받을 때 마지막 온라인 백업과의 차이만을 기록하는 방식으로, Incremental Backup과 마찬가지로 백업에 소모되는 디스크 공간을 효율적으로 사용할 수 있다.

    Incremental Backup과 같이 Cumulative Backup을 수행하려면 이전에 RMGR를 통해 Online Full Backup을 받았어야 한다.

  • Automatic Recovery

    RMGR로 만들어진 백업본을 이용하여 자동 복구를 진행한다. 이를 위해서는 백업을 만들 당시에 만들어진 RMGR info file이 필요하며, Online Full Backup 및 Incremental/Cumulative Backup 정보를 분석하여 자동으로 통합한 후 복구한다.

  • Tablespace/Datafile 단위 백업 및 복구

    전체 데이터베이스를 백업/복구하는 대신에 필요한 테이블 스페이스나 데이터 파일만 대상으로 백업/복구 작업을 수행할 수 있다.

  • Auxiliary Database 사용 복구

    원 데이터베이스에 복구하는 대신에 새로운 데이터베이스를 생성해 복구 작업을 수행할 수 있다. 복구를 위해 생성된 데이터베이스를 auxiliary 데이터베이스라 부른다. Tablespace/Datafile 단위 복구 및 불완전 복구도 가능하다. RMGR로 만들어진 백업본과 아카이브 로그만 사용해서 복구를 진행한다. TAC 환경은 지원하지 않는다.

  • 백업 관리 및 아카이브 로그의 백업/삭제 지원

    여러번의 온라인 백업을 수행한 후 필요없다고 생각되는 백업을 명령행에 인자로 주어지는 시각을 기준으로 삭제할 수 있다. 또한 아카이브 로그를 RMGR을 통해 백업 또는 삭제할 수 있다.

    주의

    TAC 환경에서 RMGR을 이용한 복구를 진행하기 위해서는 구성 노드 중 한 개의 노드만 떠있는 상황에서 복구를 진행하여야 한다.

6.5.2. 복구 관리자 정보 파일

RMGR로 백업을 진행하면 rmgr.inf 및 rmgr.arc.inf라는 텍스트 파일이 생기게 된다. 이 텍스트 파일에는 RMGR로 받은 백업에 대한 정보가 담겨져 있으며, Incremental Backup이나 Cumulative Backup 및 아카이브 로그를 백업할 때 백업 이력이 계속 기록된다. 혹시라도 이 파일을 분실하게 되면 Incremental 또는 Cumulative Backup으로 생성된 백업본은 복구할 수 없으니 주의한다.

6.5.3. 복구 관리자 옵션

RMGR는 셸 명령으로 실행되며 다양한 옵션을 지정하여 원하는 기능을 사용할 수 있다.

옵션설명
backupRMGR를 통해 백업을 진행한다.
recoveryRMGR로 받아놓은 백업본을 이용하여 복구를 진행한다.
archive데이터베이스의 아카이브 로그를 RMGR을 이용하여 백업한다.
delete기존의 RMGR를 이용해서 생성한 백업을 삭제한다.
-userid

데이터베이스에 접속할 사용자명과 패스워드 및 SID를 아래와 같은 형식으로 지정한다.

-userid USERID[[/PASSWD][@SID]]
-v, --verboseRMGR의 진행상황을 자세하게 출력한다.
-s, --silentRMGR의 진행상황을 최소로 출력한다.
-h, --helpRMGR의 옵션 사용법을 출력한다.
-i, --incrementalIncremental Backup을 수행한다.
-C, --cumulativeCumulative Backup을 수행한다.
-c, --compress

백업을 수행할 때 데이터를 압축해서 저장한다.

보통 Backup에 소요되는 시간은 늘어나고 생성되는 파일 크기는 줄어든다.

Incremental/Cumulative 및 Full Backup을 수행할 때 모두 적용될 수 있다.

-t, --thread

백업 및 복구 작업을 병렬적으로 수행할 스레드의 수를 지정한다.

작업 결과는 스레드의 수에 상관없이 동일하지만, 대상 파일들에 병렬적으로 접근할 수 있을 경우 백업 및 복구 속도 향상을 기대할 수 있다.

Windows 환경에서는 지원되지 않는다.

-u, --skip-unused

데이터 파일의 백업을 생성할 때 쓰이지 않은 블록은 백업에서 제외한다.

백업에 소요되는 시간은 데이터 파일 내의 점유된 블록의 개수에 따라 달라질 수 있다.

-b

RMGR info 파일의 위치를 지정한다.

RMGR info 파일은 이전에 RMGR를 통해 백업받은 디렉터리에 생성된다.

-o백업받을 디렉터리를 지정한다.
--consistent

Online 백업 중에 fractured block인 상태를 만들지 않는다.

Online 백업의 경우에는 DB가 디스크에 쓰기 작업을 하는 동안 RMGR이 백업을 수행할 수 있어서 블록을 복사하다가 정합성이 맞지 않는 상태이다. 즉, fractured된 상태로 복사가 될 수 있다. 해당 옵션은 그런 현상이 발생하지 않도록 블록의 정합성이 맞을 때까지 기다린 후 백업을 수행한다.

--untiltime

시간기반 불완전 복구를 수행한다.

옵션에서 지정한 시간까지 변경된 내용만 복구된다. 시간은 YYYYMMDDHHMMSS의 형식이다.

복구된 후에는 데이터베이스가 RESETLOGS 모드로 열리므로 지정한 시간 이후에 생긴 변화는 적용할 수 없다.

tbrmgr recovery -b /backup/rmgr.inf --untiltime 20130614165736 
--untilchange

변경 기반 불완전 복구를 수행한다.

옵션에서 지정한 TSN까지 변경된 내용만 복구된다.

tbrmgr recovery -b /backup/rmgr.inf --untilchange 16218
--untilcancel

사용자가 취소할 때까지 불완전 복구를 수행한다.

프롬프트를 통해 적용 대상인 Redo 로그를 하나씩 적용할지를 물어본 후 Redo 로그를 적용하여 복구한다.

복구된 후에는 데이터베이스가 RESETLOGS 모드로 열리므로 마지막으로 적용한 로그 파일 이후에 생긴 변화는 적용할 수 없다.

tbrmgr recovery -b /backup/rmgr.inf --untilcancel
--tablespace

복구 또는 백업할 대상 테이블 스페이스를 지정한다.

테이블 스페이스를 지정한 경우 데이터베이스의 일부만 백업/복구한다.

tbrmgr backup -o /backup/ --tablespace usr,system
--datafile

복구 또는 백업할 대상 데이터 파일의 번호를 지정한다.

데이터 파일의 번호를 지정한 경우 데이터베이스의 일부만 백업/복구한다.

tbrmgr backup -o /backup/ --datafile 3,4,7
--beforetime

지정된 시각 이전에 생성된 백업을 지운다. 이때 지워지는 백업은 전체 데이터베이스의 백업본 및 그에 기반한 Incremental 백업들이다.

전체 백업 및 그에 기반한 Incremental 백업들이 전부 지정된 시각 이전에 생성된 백업에 대해서만 삭제 작업을 수행한다.

뒤에 나오는 시간은 년, 월, 일, 시, 분, 초를 나타내는 14자리 숫자(YYYYMMDDHHmmss)이다.

tbrmgr delete -b /backup/rmgr.inf --beforetime 20140707140000
--archive-log

백업 동작을 수행할 때 현재까지 쌓인 아카이브 로그를 같이 백업한다. 아카이브 로그는 -o로 지정된 디렉터리 아래에 복사된다.

tbrmgr backup -o /backup --archive-log
--delete-original

--archive-log 옵션이 켜져있을 때 백업 동작을 수행한 후 원본 아카이브 로그들을 삭제한다.

tbrmgr backup -o /backup --archive-log --delete-original
--log-only

RMGR이 백업 삭제 동작을 수행할 때 아카이브 로그만 삭제한다. 다른 데이터 파일 및 컨트롤 파일 백업은 영향을 받지 않는다.

delete 명령에서만 동작한다.

tbrmgr delete -b /backup/rmgr.inf --beforetime 20140707140000 
--log-only
--auxiliary

RMGR이 auxiliary 데이터베이스를 생성할 디렉터리를 지정한다.

Auxiliary 데이터베이스의 SID는 원 데이터베이스의 SID에 _AUX를 붙인 값이다. 해당 SID 값으로 이미 DSN에 등록이 되어있으면 안된다.

tbrmgr recovery -b /backup/rmgr.inf --auxiliary /backup/aux
--auxiliary-ip

Auxiliary 데이터베이스의 접속 IP를 지정한다.

따로 지정하지 않으면 localhost로 지정된다.

tbrmgr recovery -b /backup/rmgr.inf --auxiliary /backup/aux 
--auxiliary-ip 192.1.1.137
--auxiliary-port

Auxiliary 데이터베이스의 접속 포트를 지정한다.

기본값은 원 데이터베이스의 포트번호에 10을 더한 값이다.

tbrmgr recovery -b /backup/rmgr.inf --auxiliary /backup/aux 
--auxiliary-ip 192.1.1.137 --auxiliary-port 40000

6.5.4. 복구 관리자를 이용한 백업 및 복구 예제

다음은 복구 관리자를 이용한 백업 및 복구 과정을 설명한다.

복구 관리자는 대부분의 과정을 자동으로 진행해 주게 되므로 처음에 실행시키고 나면 특별히 관리해야 할 과정이 없다. 실행할 때 어떤 일을 할지 지정하여 실행한 후 실행되는 과정을 볼 수 있고, RMGR info 파일을 통해 어떤 백업을 받았는지를 알 수 있다.

참고

데이터 파일이 raw device 파일인 경우에도 복구 관리자를 이용한 백업 및 복구가 가능하다.

Online Full Backup 시나리오

[예 6.20] Online Full Backup 시나리오

$ tbrmgr backup -o /u02/rmgr_backup/ -v
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - ONLINE backup
=============================================
DB connected
DBNAME: tibero
START_OFFSET: 0
archive log check succeeded
Database begin backup succeeded

RMGR info file load finished: /u02/rmgr_backup/rmgr.inf
CONTROLFILE: /home/drh/tibero/database/tibero/c1.ctl

CONTROLFILE BACKUP: /u02/rmgr_backup/c1.ctl.000.sql
Backup controlfile succeeded

RMGR - ONLINE backup target datafile list
total datafile count: 4
/home/drh/tibero/database/tibero/system001.dtf
/home/drh/tibero/database/tibero/undo001.dtf
/home/drh/tibero/database/tibero/usr001.dtf
/home/drh/tibero/database/tibero/apm_ts.dtf

Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/system001.dtf
output file : /u02/rmgr_backup/system001.dtf.000
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 6400 blocks
100.00% |=======================================>| 6400/6400 blks 0.03s
Synchronizing...
6400 blocks copied.
Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/undo001.dtf
output file : /u02/rmgr_backup/undo001.dtf.000
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 10496 blocks
100.00% |=======================================>| 10496/10496 blks 0.12s
Synchronizing...
10496 blocks copied.
Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/usr001.dtf
output file : /u02/rmgr_backup/usr001.dtf.000
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 12800 blocks
100.00% |=======================================>| 12800/12800 blks 0.08s
Synchronizing...
12800 blocks copied.
Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/apm_ts.dtf
output file : /u02/rmgr_backup/apm_ts.dtf.000
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 1280 blocks
100.00% |=======================================>| 1280/1280 blks 0.01s
Synchronizing...
1280 blocks copied.
Full backup succeeded
Database end backup succeeded
DB disconnected
RMGR backup ends


Incremental Backup 시나리오

[예 6.21] Incremental Backup 시나리오

$ tbrmgr backup -i -b /u02/rmgr_backup/rmgr.inf -o /u02/rmgr_backup/ -v
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - INCREMENTAL backup
=============================================
DB connected
DBNAME: tibero
START_OFFSET: 0
archive log check succeeded
Database begin backup succeeded

CF: /home/drh/tibero/database/tibero/c1.ctl 
BACKUP CF: /u02/rmgr_backup/c1.ctl.000.sql

RMGR info file load finished: /u02/rmgr_backup/rmgr.inf
CONTROLFILE: /home/drh/tibero/database/tibero/c1.ctl

RMGR - INCREMENTAL backup target datafile list
total datafile count: 5
/home/drh/tibero/database/tibero/system001.dtf
/home/drh/tibero/database/tibero/undo001.dtf
/home/drh/tibero/database/tibero/usr001.dtf
/home/drh/tibero/database/tibero/apm_ts.dtf
/home/drh/tibero/database/tibero/ts1.dtf

Backup file
type: incrmental backup (base /u02/rmgr_backup/system001.dtf.000)
source file : 
/home/drh/tibero/database/tibero/system001.dtf
output file : /u02/rmgr_backup/system001.dtf.001
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 6400 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:03.57
file size : 6400 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.12:48:17.55
backup bitmap : 800 bytes (1 blocks)
100.00% |=======================================>| 6400/6400 blks 0.01s
Synchronizing...
16 blocks copied.
Backup file
type: incrmental backup (base /u02/rmgr_backup/undo001.dtf.000)
source file : 
/home/drh/tibero/database/tibero/undo001.dtf
output file : /u02/rmgr_backup/undo001.dtf.001
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 10496 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:04.35
file size : 10496 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.12:48:17.64
backup bitmap : 1312 bytes (1 blocks)
100.00% |=======================================>| 10496/10496 blks 0.13s
Synchronizing...
52 blocks copied.
Backup file
type: incrmental backup (base /u02/rmgr_backup/usr001.dtf.000)
source file : 
/home/drh/tibero/database/tibero/usr001.dtf
output file : /u02/rmgr_backup/usr001.dtf.001
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 12800 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:05.05
file size : 12800 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.12:48:17.86
backup bitmap : 1600 bytes (1 blocks)
100.00% |=======================================>| 12800/12800 blks 0.06s
0 blocks copied.
Backup file
type: incrmental backup (base /u02/rmgr_backup/apm_ts.dtf.000)
source file : 
/home/drh/tibero/database/tibero/apm_ts.dtf
output file : /u02/rmgr_backup/apm_ts.dtf.001
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 1280 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:05.79
file size : 1280 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.12:48:17.92
backup bitmap : 160 bytes (1 blocks)
100.00% |=======================================>| 1280/1280 blks 0.00s
Synchronizing...
345 blocks copied.
Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/ts1.dtf
output file : /u02/rmgr_backup/ts1.dtf.000
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 384 blocks
100.00% |=======================================>| 384/384 blks 0.00s
Synchronizing...
384 blocks copied.
Incremental backup succeeded
Database end backup succeeded
DB disconnected
RMGR backup ends


Cumulative Backup 시나리오

[예 6.22] Cumulative Backup 시나리오

$ tbrmgr backup -C -b /u02/rmgr_backup/rmgr.inf -o /u02/rmgr_backup/ -v
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - CUMULATIVE INCREMENTAL backup
=============================================
DB connected
DBNAME: tibero
START_OFFSET: 0
archive log check succeeded
Database begin backup succeeded

CF: /home/drh/tibero/database/tibero/c1.ctl 
BACKUP CF: /u02/rmgr_backup/c1.ctl.000.sql

RMGR info file load finished: /u02/rmgr_backup/rmgr.inf
CONTROLFILE: /home/drh/tibero/database/tibero/c1.ctl

RMGR - CUMULATIVE INCREMENTAL backup target datafile list
total datafile count: 5
/home/drh/tibero/database/tibero/system001.dtf
/home/drh/tibero/database/tibero/undo001.dtf
/home/drh/tibero/database/tibero/usr001.dtf
/home/drh/tibero/database/tibero/apm_ts.dtf
/home/drh/tibero/database/tibero/ts1.dtf

Backup file
type: cumulative backup (base /u02/rmgr_backup/system001.dtf.000)
source file : 
/home/drh/tibero/database/tibero/system001.dtf
output file : /u02/rmgr_backup/system001.dtf.002
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 6400 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:03.57
file size : 6400 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.13:35:07.92
backup bitmap : 800 bytes (1 blocks)
100.00% |=======================================>| 6400/6400 blks 0.08s
Synchronizing...
18 blocks copied.
Backup file
type: cumulative backup (base /u02/rmgr_backup/undo001.dtf.000)
source file : 
/home/drh/tibero/database/tibero/undo001.dtf
output file : /u02/rmgr_backup/undo001.dtf.002
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 10496 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:04.35
file size : 10496 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.13:35:08.08
backup bitmap : 1312 bytes (1 blocks)
100.00% |=======================================>| 10496/10496 blks 0.22s
Synchronizing...
99 blocks copied.
Backup file
type: cumulative backup (base /u02/rmgr_backup/usr001.dtf.000)
source file : 
/home/drh/tibero/database/tibero/usr001.dtf
output file : /u02/rmgr_backup/usr001.dtf.002
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 12800 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:05.05
file size : 12800 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.13:35:08.58
backup bitmap : 1600 bytes (1 blocks)
100.00% |=======================================>| 12800/12800 blks 0.14s
Synchronizing...
370 blocks copied.
Backup file
type: cumulative backup (base /u02/rmgr_backup/apm_ts.dtf.000)
source file : 
/home/drh/tibero/database/tibero/apm_ts.dtf
output file : /u02/rmgr_backup/apm_ts.dtf.002
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 1280 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x00000000636b
backup uid : 2014-07-10.11:42:05.79
file size : 1280 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.13:35:08.83
backup bitmap : 160 bytes (1 blocks)
100.00% |=======================================>| 1280/1280 blks 0.01s
Synchronizing...
345 blocks copied.
Backup file
type: cumulative backup (base /u02/rmgr_backup/ts1.dtf.000)
source file : 
/home/drh/tibero/database/tibero/ts1.dtf
output file : /u02/rmgr_backup/ts1.dtf.001
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 384 blocks
Analyze base file
file type : DATAFILE
backup tsn : 0x000000006b59
backup uid : 2014-07-10.12:48:18.05
file size : 384 blocks
Write Backup file (BACKUP PIECE)
backup uid : 2014-07-10.13:35:08.98
backup bitmap : 48 bytes (1 blocks)
100.00% |=======================================>| 384/384 blks 0.00s
0 blocks copied.
Cumulative incremental backup succeeded
Database end backup succeeded
DB disconnected
RMGR backup ends


Tablespace/Datafile 단위 Backup 시나리오

[예 6.23] Tablespace/Datafile 단위 Backup 시나리오

$ tbrmgr backup --tablespace usr,ts1 -o /u02/rmgr_backup/ -v
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - ONLINE backup
=============================================
DB connected
DBNAME: tibero
START_OFFSET: 0
archive log check succeeded
Database begin backup succeeded

RMGR info file load finished: /u02/rmgr_backup/rmgr.inf
CONTROLFILE: /home/drh/tibero/database/tibero/c1.ctl
CONTROLFILE BACKUP: /u02/rmgr_backup/c1.ctl.003.sql
Backup controlfile succeeded

RMGR - ONLINE backup target datafile list
total datafile count: 7
/home/drh/tibero/database/tibero/system001.dtf
/home/drh/tibero/database/tibero/undo001.dtf
/home/drh/tibero/database/tibero/usr001.dtf
/home/drh/tibero/database/tibero/apm_ts.dtf
/home/drh/tibero/database/tibero/ts1.dtf
/home/drh/tibero/database/tibero/ts1_2.dtf
/home/drh/tibero/database/tibero/ts2.dtf

Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/usr001.dtf
output file : /u02/rmgr_backup/usr001.dtf.005
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 12800 blocks
100.00% |=======================================>| 12800/12800 blks 0.06s
Synchronizing...
12800 blocks copied.
Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/ts1.dtf
output file : /u02/rmgr_backup/ts1.dtf.004
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 384 blocks
100.00% |=======================================>| 384/384 blks 0.00s
Synchronizing...
384 blocks copied.
Backup file
type: full backup
source file : 
/home/drh/tibero/database/tibero/ts1_2.dtf
output file : /u02/rmgr_backup/ts1_2.dtf.001
start_offset: 0
Analyze source file
blksize : 8192 bytes
file block count : 384 blocks
100.00% |=======================================>| 384/384 blks 0.00s
Synchronizing...
384 blocks copied.
Full backup succeeded
Database end backup succeeded
DB disconnected
RMGR backup ends 


Automatic Recovery 시나리오

[예 6.24] Automatic Recovery 시나리오

$ tbrmgr recovery -b /u02/rmgr_backup/rmgr.inf -v
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================

RMGR info file load finished: /u02/rmgr_backup/rmgr.inf
=============================================
RMGR - recovery
=============================================
Tibero instance terminated (ABNORMAL mode).

RMGR RECOVERY with incremental backup

Restore base: /u02/rmgr_backup/system001.dtf.000
restore dest: 
/home/drh/tibero/database/tibero/system001.dtf
incremental backup: /u02/rmgr_backup/system001.dtf.001
cumulative backup: /u02/rmgr_backup/system001.dtf.002

Restore base: /u02/rmgr_backup/undo001.dtf.000
restore dest: 
/home/drh/tibero/database/tibero/undo001.dtf
incremental backup: /u02/rmgr_backup/undo001.dtf.001
cumulative backup: /u02/rmgr_backup/undo001.dtf.002

Restore base: /u02/rmgr_backup/usr001.dtf.005
restore dest: 
/home/drh/tibero/database/tibero/usr001.dtf

Restore base: /u02/rmgr_backup/apm_ts.dtf.000
restore dest: 
/home/drh/tibero/database/tibero/apm_ts.dtf
incremental backup: /u02/rmgr_backup/apm_ts.dtf.001
cumulative backup: /u02/rmgr_backup/apm_ts.dtf.002

Restore base: /u02/rmgr_backup/ts1.dtf.004
restore dest: 
/home/drh/tibero/database/tibero/ts1.dtf

Restore base: /u02/rmgr_backup/ts1_2.dtf.001
restore dest: 
/home/drh/tibero/database/tibero/ts1_2.dtf
base file : /u02/rmgr_backup/system001.dtf.000 (uid=2014-07-10.11:42:03.57)
output file : 
/home/drh/tibero/database/tibero/system001.dtf
backup files:
/u02/rmgr_backup/system001.dtf.002 (uid=2014-07-10.13:35:07.92, 
parent [uid=2014-07-10.11:42:03.57, tsn=0x00000000636b])
copy base file
100.00% |=======================================>| 6400/6400 blks 0.03s
merging /u02/rmgr_backup/system001.dtf.002 100.00%
1 files merged.
base file : /u02/rmgr_backup/undo001.dtf.000 (uid=2014-07-10.11:42:04.35)
output file : 
/home/drh/tibero/database/tibero/undo001.dtf
backup files:
/u02/rmgr_backup/undo001.dtf.002 (uid=2014-07-10.13:35:08.08, 
parent [uid=2014-07-10.11:42:04.35, tsn=0x00000000636b])
copy base file
100.00% |=======================================>| 10496/10496 blks 0.05s
merging /u02/rmgr_backup/undo001.dtf.002 100.00%
1 files merged.
base file : /u02/rmgr_backup/usr001.dtf.005 (uid=2014-07-10.14:08:03.44)
output file : 
/home/drh/tibero/database/tibero/usr001.dtf
backup files:
copy base file
100.00% |=======================================>| 12800/12800 blks 0.06s
0 files merged.
base file : /u02/rmgr_backup/apm_ts.dtf.000 (uid=2014-07-10.11:42:05.79)
output file : 
/home/drh/tibero/database/tibero/apm_ts.dtf
backup files:
/u02/rmgr_backup/apm_ts.dtf.002 (uid=2014-07-10.13:35:08.83, parent 
[uid=2014-07-10.11:42:05.79, tsn=0x00000000636b])
copy base file
100.00% |=======================================>| 1280/1280 blks 0.01s
merging /u02/rmgr_backup/apm_ts.dtf.002 100.00%
1 files merged.
base file : /u02/rmgr_backup/ts1.dtf.004 (uid=2014-07-10.14:08:04.21)
output file : 
/home/drh/tibero/database/tibero/ts1.dtf
backup files:
copy base file
100.00% |=======================================>| 384/384 blks 0.00s
0 files merged.
base file : /u02/rmgr_backup/ts1_2.dtf.001 (uid=2014-07-10.14:08:04.28)
output file : 
/home/drh/tibero/database/tibero/ts1_2.dtf
backup files:
copy base file
100.00% |=======================================>| 384/384 blks 0.00s
0 files merged.
Listener port = 21688

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (MOUNT mode).
DB connected
recoverSQL: ALTER DATABASE RECOVER AUTOMATIC
Database automatic recovery succeeded
DB disconnected

Tibero instance terminated (NORMAL mode).

Listener port = 21688

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).
RMGR recovery ends


Cancel based Recovery 시나리오

[예 6.25] Cancel based Recovery 시나리오

$ tbrmgr recovery -b /u02/rmgr_backup/rmgr.inf --untilcancel
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - recovery
=============================================
Tibero instance terminated (ABNORMAL mode).

100.00% |=======================================>| 6400/6400 blks 0.03s
100.00% |=======================================>| 10496/10496 blks 0.19s
100.00% |=======================================>| 12800/12800 blks 0.11s
100.00% |=======================================>| 1280/1280 blks 0.01s
100.00% |=======================================>| 768/768 blks 0.00s
Listener port = 21688

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (MOUNT mode).
DB connected

apply next logfile(THREAD #0 SEQ #3) 
/home/drh/tibero/database/tibero/archive/log-t0-r0-s3.arc: 
(yes/no/all/cancel)? yes
query: ALTER DATABASE RECOVER LOGFILE 
'/home/drh/tibero/database/tibero/archive/log-t0-r0-s3.arc'

apply next logfile(THREAD #0 SEQ #4) 
/home/drh/tibero/database/tibero/archive/log-t0-r0-s4.arc: 
(yes/no/all/cancel)? yes
query: ALTER DATABASE RECOVER LOGFILE 
'/home/drh/tibero/database/tibero/archive/log-t0-r0-s4.arc'
skip logfile(THREAD #0 SEQ #4): 
/home/drh/tibero/database/tibero/log001.log

apply next logfile(THREAD #0 SEQ #5) 
/home/drh/tibero/database/tibero/archive/log-t0-r0-s5.arc: 
(yes/no/all/cancel)? yes
query: ALTER DATABASE RECOVER LOGFILE 
'/home/drh/tibero/database/tibero/archive/log-t0-r0-s5.arc'
skip logfile(THREAD #0 SEQ #5): 
/home/drh/tibero/database/tibero/log002.log

apply next logfile(THREAD #0 SEQ #6) 
/home/drh/tibero/database/tibero/log003.log: 
(yes/no/all/cancel)? no
query: ALTER DATABASE RECOVER CANCEL
DB disconnected

Tibero instance terminated (NORMAL mode).

Listener port = 21688

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL RESETLOGS mode).
RMGR recovery ends


Tablespace/Datafile 기반 Recovery 시나리오

[예 6.26] Tablespace/Datafile 기반 Recovery 시나리오

$ tbrmgr recovery -b /u02/rmgr_backup/rmgr.inf --tablespace ts1 -v
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================

RMGR info file load finished: /u02/rmgr_backup/rmgr.inf
=============================================
RMGR - recovery
=============================================
Tibero instance terminated (ABNORMAL mode).

100.00% |=======================================>| 1792/1792 blks 0.01s
Listener port = 21688

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (MOUNT mode).
DB connected
recoverSQL: ALTER DATABASE RECOVER AUTOMATIC
Database automatic recovery succeeded
DB disconnected

Tibero instance terminated (NORMAL mode).

Listener port = 21688

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL mode).
RMGR recovery ends


Auxiliary Database 사용 Recovery 시나리오

[예 6.27] Auxiliary Database 사용 Recovery 시나리오

$ tbrmgr recovery -b /u02/rmgr_backup/rmgr.inf --auxiliary /u02/aux 
--auxiliary-ip 192.1.1.137 --auxiliary-port 40000
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - recovery
=============================================
Tibero instance terminated (ABNORMAL mode).
 100.00% |=======================================>|  12800/12800  blks 0.06s
 100.00% |=======================================>|  25600/25600  blks 0.50s
 100.00% |=======================================>|  12800/12800  blks 0.62s
 100.00% |=======================================>|   1280/1280   blks 0.00s
Listener port = 40000

Tibero 5 SP1
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NOMOUNT mode).
DB connected
Create controlfile succeeded
DB disconnected

Tibero instance terminated (NORMAL mode).              

cf create done
Listener port = 40000

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (MOUNT mode).
DB connected
recoverSQL: ALTER DATABASE RECOVER AUTOMATIC
  Resetlogs is required.
Database automatic recovery succeeded
DB disconnected

Tibero instance terminated (NORMAL mode).

Listener port = 40000

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL RESETLOGS mode).
RMGR recovery ends

Auxiliary Database 사용 Tablespace Recovery 시나리오

[예 6.28] Auxiliary Database 사용 Tablespace Recovery 시나리오

$ tbrmgr recovery -b /u02/rmgr_backup/rmgr.inf --auxiliary /u02/aux 
--auxiliary-ip 192.1.1.137 --auxiliary-port 40000
--tablespace ts1
==================================================================
= Recovery Manager(RMGR) starts =
= =
= TmaxData Corporation Copyright (c) 2008-. All rights reserved. =
==================================================================
=============================================
RMGR - recovery
=============================================
Tibero instance terminated (ABNORMAL mode).
 100.00% |=======================================>|  12800/12800  blks 0.06s
 100.00% |=======================================>|  25600/25600  blks 0.50s
 100.00% |=======================================>|   1280/1280   blks 0.00s
Listener port = 40000

Tibero 5 SP1
TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NOMOUNT mode).
DB connected
Create controlfile succeeded
DB disconnected

Tibero instance terminated (NORMAL mode).              

cf create done
Listener port = 40000

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (MOUNT mode).
DB connected
recoverSQL: ALTER DATABASE RECOVER AUTOMATIC
  Resetlogs is required.
Database automatic recovery succeeded
DB disconnected

Tibero instance terminated (NORMAL mode).

Listener port = 40000

Tibero 5 SP1

TmaxData Corporation Copyright (c) 2008-. All rights reserved.
Tibero instance started up (NORMAL RESETLOGS mode).
RMGR recovery ends