Site icon DBA의 정석

ORACLE RMAN 의 개요

 

 

 

 

개요
Recovery Manager는 DBA가 강력한 운영체제 독립 스크립트 언어로 백업, 복원, 그리고 복구 프로세스를 관리하는데 도움을 주는 오라클 유틸리티입니다. Recovery Manager의 기능은 명령 라인 인터페이스와 Oracle Enterprise Manager Backup Manager(GUI)를 통해서도 사용할 수 있습니다.

Note: RMAN이 접속하려는 대상 데이터베이스는 마운트되거나 열려져야만 하며 복구 카탈로그(Recovery Catalog)가 사용되면 카탈로그 데이터베이스가 열려져야만 합니다.

Recovery Process 시작 단계

 단계번호   설명

1

Recovery Manager 사용자 프로세스가 시작됩니다.

2

RMAN이 대상 데이터베이스에 접속하는 서버 프로세스 둘을 생성합니다.

3

디스크나 테이프에 쓰기 위해 추가 서버 프로세스가 생성됩니다.

4

복구 카탈로그 데이터베이스에의 접속은 선택 사항입니다.

5

그래픽 사용자 인터페이스(GUI)를 사용하는 것은 선택 사항입니다.


Recovery Manager

Recovery Manager는 모든 백업, 복원, 그리고 복구 작업을 컨트롤 파일에 기록합니다. 백업은 물리적으로 디스크나 테이프에 저장됩니다. RMAN은 PL/SQL 인터페이스를 통해 백업, 복원, 그리고 복구 작업을 수행하기 위해 대상 데이터베이스에 접속하는 서버 프로세스를 (채널을 할당하여) 생성함으로써 오라클 서버와 상호 작용합니다.

MML(Media Management Layer)
테이프에 쓰기를 하려면 추가 매체 관리 소프트웨어가 필요합니다. 업체가 어떤 플랫폼을 지원하는지를 알아야 합니다. 추가 저장 시스템의 수는 계속 증가하고 있습니다.

RMAN에 대한 오해
RMAN은 오라클 서버에 의해 제공되는 도구입니다. 하지만 다음과 같이 오해하는 실수를 저지르지는 마십시오:

: 복구 카탈로그(Recovery Catalog)가 사용되면 핵심적인 정보는 컨트롤 파일과 별개의 데이터베이스 모두에 저장됩니다.

 

 

 

Recovery Manager 기능
RMAN은 Server Manager를 사용해서는 가능하지 않은 여러 기능을 제공합니다:

 

 

Recovery Manager 기능(계속)

 

 

Recovery Manager 구성 요소
RMAN은 DBA 도구이며 다음과 같은 여러 부분으로 구성되어 있습니다:

 

 

Recovery Manager 패키지
catproc.sql 스크립트가 실행될 때 패키지 두개가 생성됩니다. 이들 패키지를 생성하는 스크립트는 $ORACLE_HOME/rdbms/admin 디렉토리에 위치합니다.

DMBS_RCVCAT과 DBMS_RCVMAN 패키지
이들은 dbmsrman.sql과 prvtmns.plb 파일에 의해 생성됩니다. DBMS_RCVCAT은 복구 카탈로그(Recovery Catalog) 내의 정보를 관리하기 위해 Recovery Manager에 의해 사용되며 DBMS_RCVMAN은 컨트롤 파일이나 복구 카탈로그(Recovery Catalog)를 질의합니다.

DBMS_BACKUP_RESTORE 패키지
이것은 dbmsbkrs.sql과 prvtbkrs.plb 파일에 의해 생성되며 데이터파일과 아카이브 로그 백업을 생성하고, 복원하고, 복구하기 위해 오라클과 운영 체제간의 상호 작용하는 데에 사용됩니다. 운영 체제가 패키지로부터 일단 정보를 받으면 데이터는 디스크와 같은 저장 장치 상에 저장됩니다.

 

 

고려해야 할 사항
Recovery Manager를 사용하기 전에 다음을 고려해 보십시오:

 

 

Recovery Manager Line Mode
Recovery Manager는 자체 명령 언어를 가진 명령 라인 인터프리터(CLI, Command Line Interpreter)로서 작동합니다. CLI는 SVRMGR과 같은 독립형(standalone) 애플리케이션입니다. CLI는 특유의 자체 명령 언어를 번역하며 대화식 모드와 일괄 처리 모드를 모두 가지고 있습니다. 양쪽 모드에서 모든 명령이 완벽히 지원됩니다.

Backup Manager
Recovery Manager는 OEM(Oracle Enterprise Manager)의 한 구성 요소인 Backup manager에 통합되어 있으며, 그래픽 사용자 인터페이스를 사용하여 명령 라인 유틸리티에서 사용 가능한 모든 기능을 제공합니다.

Note: RMAN은 보통 명령 라인 인터페이스를 말합니다.

 

 

Backup Manager 개요
Backup Manager는 Recovery Manager에 의한 정보를 생성, 유지, 액세스하기 위한 직관적 사용자 인터페이스를 제공하며, RMAN 명령 라인 인터페이스에 추가하여 사용할 수 있습니다. Backup Manager를 사용하려면 OEM(Oracle Enterprise Manager)이 먼저 설치되어 있어야 합니다. Backup Manager는 OEM 데이터베이스 관리 도구 세트의 부분입니다.

Backup Manager 특성
Backup Manager는 RMAN에 추가로 다음 특성을 제공합니다:

프로세스
Backup Manager는 Windows NT가 돌아가고 있는 윈도우 클라이언트 PC에 상주하며 대상 데이터베이스가 들어 있는 서버 상의 Recovery Manager와의 인터페이스를 생성해 줍니다. 데이터베이스에의 접속은 Recovery Manager를 사용하기 시작할 때 서버 프로세스를 이용하여 설정됩니다.

 

복구 카탈로그(Recovery Catalog)
복구 카탈로그(Recovery Catalog)는 선택 사항입니다. 필요한 경우 자신의 스키마(sys나 system이 아닌)에 만들어지고 DBA에 의해 백업되어져야 합니다. 일련의 테이블, 또는 저장소로 구성되며 오라클 데이터베이스에 위치하고 Recovery Manager에 의해 유지되며 백업, 복원, 그리고 복구 작업에 대한 장기간의 정보를 저장하고 있습니다. 복구 카탈로그(Recovery Catalog)는 데이터나 아카이브의 실제 백업을 저장하지는 않습니다. 이들은 디스크나 테이프에 파일로 저장되어 집니다.

 

 

복구 카탈로그(Recovery Catalog) 내용
복구 카탈로그(Recovery Catalog)는 다음 정보를 담고 있습니다:

 

 

 

복구 카탈로그(Recovery Catalog)는 다음과 같은 때에 유리합니다.
복구 카탈로그(Recovery Catalog)는 사용하면 Recovery Manager에 추가 기능을 제공합니다. 복구 카탈로그(Recovery Catalog)는 다음과 같은 상황 하에서 이점을 제공할 것입니다:

 

 

복구 카탈로그(Recovery Catalog)는 다음과 같은 때에 그리 유용하지 않을 수 있습니다.
RMAN과 함께 복구 카탈로그(Recovery Catalog)를 사용할 것을 추천하기는 하지만 복구 카탈로그(Recovery Catalog)가 항상 필수적인 것은 아닙니다. 다음과 같은 상황일 때에는 복구 카탈로그(Recovery Catalog)를 사용하지 않을 수 있습니다:

Note: 복구 카탈로그(Recovery Catalog)가 사용되지 않으면 다음을 확인해야 합니다:

 

 

복구 카탈로그(Recovery Catalog) 관리
대상 데이터베이스가 복구 카탈로그(Recovery Catalog)를 직접 액세스하지는 않습니다. 백업, 아카이브된 로그, 그리고 대상 데이터베이스의 구조에 대한 정보는 Recovery Manager에 의해서만 복구 카탈로그(Recovery Catalog)에 위치됩니다.

저장 고려 사항
복구를 용이하게 하고 속도를 향상시키고, 동시에 데이터 손실 위험을 감소시키려면 다음 지침 사항을 따르십시오:

 

 

복구 카탈로그(Recovery Catalog) 데이터베이스의 크기 결정
복구 카탈로그(Recovery Catalog)를 위해 별도의 데이터베이스를 생성하려면 위의 지침 사항을 사용하여 각 테이블스페이스에 필요한 공간을 결정하십시오. 위의 수치는 일년 당 대상 데이터베이스 하나를 기준으로 한 것입니다.

 

 

복구 카탈로그 생성 방법

복구 카탈로그를 생성하려면 다음 단계를 수행합니다.

  1. 카탈로그 데이터베이스에 연결하여 카탈로그에 대한 테이블스페이스를 생성합니다.
    SQL > create tablespace rman_ts datafile ‘<directory>/<name>’
    2 >      size 20M default storage
    3 >      (initial 100K next 100K pctincrease 0);
     
  2. Recovery Manager 사용자를 생성합니다.
    SQL > create user rman_db1 identified by rman_db1
    2 >              default tablespace rman_ts
    3 >              temporary tablespace temp
    4 >              quota unlimited on rman_ts;
     
  3. 이 사용자에게 복구 카탈로그를 유지 관리하고 백업 및 복구 작업을 수행할 수  있는 롤과 권한을 부여합니다.
    SQL > grant recovery_catalog_owner to rman_db1;
    SQL > grant connect, resource to rman_db1;
     
  4. 테이블스페이스 및 롤백 세그먼트에 충분한 공간이 있는지 확인합니다. 카탈로그는 20MB 정도의 공간이 필요하고 롤백 세그먼트는 크기가 5MB 정도
    되어야 합니다.
  5. 운영 체제에 로그인한  RMAN 명령을 실행하여 RMAN 명령 인터프리터를 호출하고 카탈로그를 생성합니다. MSGLOG(또는 Oracle8i에서는 LOG) 옵션을 사용하면 RMAN
    메시지 및 명령을 파일로 출력할 수 있습니다.
    % rman catalog rman_db1/rman_db1@catdb msglog = catalog.log
    create catalog tablespace rman_ts;
    exit;

    참고: MSGLOG를 사용하면 출력이 파일로 직접 보내져서 RMAN 프롬프트가 표시되지 않을 수도 있습니다. 따라서 커서가
    새로운 행에 표시되면 CREATE CATALOG 명령을 입력해야 합니다. 마찬가지로 다음 새 행에 exit 명령을 입력해야 합니다. MSLOG
    목적은 카탈로그 생성 과정에서 발생할 수 있는 오류를 기록하여 수정 작업이 이루어지도록 하는 데 있습니다.

  6. RMAN에서 생성한 catalog.log 파일을 검사하여 카탈로그 생성 중에 오류가 있는지 여부를 확인합니다. 오류를 찾은 경우 카탈로그
    소유자의 모든 객체를 삭제하고 처음부터 다시 생성해야 합니다.
    catalog.log는 다음과 같이 표시될 수 있습니다.

    Recovery Manager: Release 8.1.5.0.0 – Production
    RMAN-06008: connected to recovery catalog database
    RMAN-06428: recovery catalog is not installed
    RMAN> create catalog tablespace rman_ts;
    RMAN-06431: recovery catalog created
    RMAN>
    RMAN> exit;
    Recovery Manager complete
     
  7. 대상 데이터베이스를 포함하는 서버에서 RMAN 실행 파일을 사용하여 연결합니다. SYSDBA 권한을 가진 사용자로
    대상 데이터베이스에 로그인해야 모든 백업 및 복구 작업을 수행할 수 있습니다.
    % rman target sys/oracle@db1
    Recovery Manager: Release 8.1.5.0.0 – Production
    RMAN-06005: connected to target database: DB1 (DBID=472633597)
    RMAN> connect catalog rman_db1/rman_db1@catdb
    RMAN-06008: connected to recovery catalog database
    RMAN>
     
  8. 대상 데이터베이스를 카탈로그에 등록합니다. 대상 데이터베이스를 복구 카탈로그에 등록해야 데이터베이스에 대한 정보를 저장하는 
    카탈로그를 사용할 수 있습니다. Recovery Manager는 데이터베이스에 대한 고유 식별자로 데이터베이스가 처음 생성될 때 계산되는
    내부 DBID(데이터베이스 식별자)를 사용합니다. 기존 데이터베이스를 복사한 다음 db_name을 변경하여 생성한 새 데이터베이스를
    등록하려고 시도하면 등록이 실패합니다. 복사된 데이터베이스를 백업하려면 새 복구 카탈로그 소유자를 생성한 다음 새 계정에서 카탈로그를 생성해야 합니다.

    RMAN> register database;    
    RMAN-03022: compiling command: register
    RMAN-03023: executing command: register
    RMAN-08006: database registered in recovery catalog
    RMAN-03023: executing command: full resync
    RMAN-08002: starting full resync of recovery catalog
    RMAN-08004: full resync completeRMAN>

 

 

 

컨트롤 파일로부터 얻을 수 있는 정보
컨트롤 파일은 Recovery Manager에 의해 수행되는 백업, 복원, 그리고 복구 작업을 담고 있습니다. 정보량은 백업 빈도, 대상 데이터베이스 크기, 그리고 보유 기간에 따라 다르게 증가합니다.

컨트롤 파일 설정
CONTROL_FILE_RECORD_KEEP_TIME 파라미터는 컨트롤 파일에 저장된 RMAN 정보가 며칠이 지나면 덮어 쓰여질 것인지 지정합니다. 값이 작으면 작을수록 자주 덮어 쓰여지고 컨트롤 파일의 성장을 최소화한다는 것을 의미합니다. 복구 카탈로그(Recovery Catalog)를 사용하면 작은 값을 선택해야 합니다. 기본값은 7일입니다.

Note: 복구 카탈로그(Recovery Catalog)를 사용할 때 컨트롤 파일에 덮어 쓰여지는 것보다 더 자주 재동기가 수행되도록 하십시오.

예를 들어 1로 설정되어 있다면 Recovery Manager 정보는 하루동안 유지됩니다. 이 경우 복구 카탈로그(Recovery Catalog)를 사용한다면 재동기가 최소한 하루에 한번은 수행되도록 하십시오.

컨트롤 파일의 성장
컨트롤 파일의 크기가 CONTROL_FILE_RECORD_KEEP_TIME에 의해 지정된 시간동안 모든 정보를 저장하기에는 너무 작다면 컨트롤 파일은 크기가 점점 커집니다. 컨트롤 파일이 커지기 전에 다음과 같은 특정 단계가 수행됩니다:

  1. 컨트롤 파일 내의 빈 공간이 사용됩니다.
  2. CONTROL_FILE_RECORD_KEEP_TIME보다 오래된 엔트리가 덮어 쓰여집니다.
  3. 더 이상 사용 가능한 공간이 없을 경우, 필요하다면 컨트롤 파일이 자라납니다.

컨트롤 파일 사본
복구 카탈로그(Recovery Catalog) 사용 여부와는 상관없이 Recovery Manager는 가끔 읽기 위해 컨트롤 파일의 임시 백업을 만들어야 합니다. RMAN이 컨트롤 파일의 읽기 일관성 이미지(read-consistent image)를 봐야 할 때마다 스냅샷 컨트롤 파일이 생성됩니다. 읽기 일관성 이미지는 컨트롤 파일의 circular 하지 않은 재사용 레코드를 질의할 때 필요합니다. circular 하지 않은 재사용 레코드는 데이터 파일, 테이블스페이스, 온라인 리두 로그, 그리고 스레드 정보를 담고 있습니다.

이 파일의 위치는 설정 가능합니다:
 RMAN> set snapshot controlfile name to ‘/disk1/backup/ctl_300.snp’;
UNIX 시스템 상에서 스냅샷 컨트롤 파일의 기본 위치는:
 $ORACLE_HOME/dbs/snapcf_<dbname>.f
단: <dbname>은 데이터베이스 이름

컨트롤 파일 재생성
복구 카탈로그(Recovery Catalog)는 컨트롤 파일에 포함된 정보를 복제합니다. Recovery Manager는 카탈로그를 사용하여 손상된 컨트롤 파일을 재생성할 수 있습니다.

 

 

 

RMAN 명령 라인
RMAN을 시작하려면 다음 구문을 사용하십시오:
   rman target <qstring> [rcvcat <qstring> | cmdfile <qstring> |
msglog <qstring> | append]

   인수       설명
 TARGET Recovery Manager가 작업하게 될 데이터베이스에 대한 사용자 ID와 비밀 번호를 포함하고 있는 접속 문자열
 RCVCAT 복구 카탈로그를 포함하고 있는 데이터베이스에 대한 사용자 ID와 비밀번호를 포함하고 있는 접속 문자열
 CMDFILE RMAN에 대한 입력 명령을 포함하고 있는 파일의 이름. 이 인수가 지정되면 RMAN은 일괄 처리 모드로 작동하며, 지정되지 않으면 대화식 라인 모드로 작동합니다.
 MSGLOG RMAN이 명령과 출력 결과를 기록해 두는 파일의 이름. 지정되지 않으면 RMAN은 스크린으로 출력합니다.
 APPEND 이 파라미터는 mslog 파일이 추가 모드(append mode)로 열려지도록 합니다. 이 파라미터가 지정되지 않고 mslog 파일과 같은 이름을 가진 파일이 이미 존재하면 덮어 쓰여집니다.
 QSTRING 빈 칸과 구둣점을 포함할 수 있는 인용 문자열(quoted string).  예, “sys/change_on_install@08db” 홑 따옴표, 또는 겹 따옴표를 사용할 수 있습니다.

 

 

 

Recovery Manager 시작
RMAN으로 접속하는 데는 세 가지 이유가 있습니다:

접속 프로세스
RMAN 접속 명령을 치면 다음 이벤트가 발생합니다:

Recovery Manager로의 접속
복구 카탈로그(Recovery Catalog)를 사용하여 RMAN에 접속하려면 다음 단계를 따르십시오:

  1. 백업하고자 하는 대상 데이터베이스를 결정
  2. 대상 데이터베이스에 대한 복구 카탈로그(Recovery Catalog)를 포함하고 있는 데이터베이스를 결정
    Note: 복구 카탈로그(Recovery Catalog)가 아직 생성되지 않았다면 “복구 카탈로그(Recovery Catalog) 생성” 섹션의 절차를 따르십시오.

  3. RMAN으로 접속하기 위해 다음 세 가지 방법 중 하나 사용
    –  지역 RMAN 접속을 위해서는 운영 체제 프롬프트에서 다음을 입력:
    UNIX의 경우
      $ ORACLE_SID=DB00; export ORACLE_SID
    $ rman rcvcat rman/rman@RCVCAT
    RMAN> connect target

    NT의 경우
      $ SET ORACLE_SID=DB00
    $ rman80 rcvcat rman/rman@RCVCAT
    RMAN> connect target

    –  SYSDBA 권한을 가진 사용자로 RMAN에 접속하려면:
     $ rman target scott/tiger rcvcat rman/rman@RCVCAT
    –  원격으로 RMAN에 접속하려면:
       $ rman target scott/tiger@DB00 rcvcat rman/rman@RCVCAT

Note

 

 

 

접속 프로세스
RMAN 접속 명령을 치면 다음 이벤트가 발생합니다:

Recovery Manager에의 접속
복구 카탈로그(Recovery Catalog)를 사용하지 않고 RMAN에 접속하려면 다음 단계를 따르십시오:

  1. 백업하고자 하는 대상 데이터베이스 결정
  2. RMAN에 접속하는 세 가지 방법 중 하나 사용.
    지역 RMAN 접속의 경우 운영 체제 프롬프트에서 다음을 입력:
    UNIX의 경우
      $ ORACLE_SID=DB00; export ORACLE_SID
    $ rman nocatalog
    RMAN> connect target
      NT의 경우
      $ SET ORACLE_SID=DB00
    $ rman nocatalog
    RMAN> connect target
    SYSDBA 권한을 가진 사용자를 통해 RMAN으로 접속하고자 할 때:
      $ rman target scott/tiger nocatalog
    원격으로 RMAN 에 접속하고자 할 때:
     $ rman target scott/tiger@DB00 nocatalog

Backup Manager
Backup Manager를 사용하려면 백업이나 복원, 또는 복구 같은 유지를 위해 대상 데이터베이스에 접속되어 있어야 합니다.
복구 카탈로그(Recovery Catalog)를 사용하여 Backup Manager에 접속하려면 다음 단계를 따르십시오:

  1. OEM(Oracle Enterprise Manager) 시작
  2. Navigator 윈도우에서 백업하고자 하는 대상 데이터베이스를 선택하여 접속
  3. Tools -> Applications 메뉴에서 Oracle Backup Manager 선택
  4. Backup Manager – Subsystem 다이얼로그 박스가 나타나면 “Oracle8 Recovery Manager  Subsystem” 선택
  5. 복구 카탈로그(Recovery Catalog)로 접속하려면 메뉴에서 Catalog -> Use Recovery Catalog 항목 -> Catalog 선택 -> Connect String 선택
  6. Recovery Catalog Login 다이얼로그 박스에서 복구 카탈로그(Recovery Catalog) 데이터베이스에 대한 사용자 이름,비밀 번호, 그리고 접속 문자열 입력

접속 프로세스
RMAN 접속 명령을 치면 다음 이벤트가 발생합니다:

Note

 

Exit mobile version