개요
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은 오라클 서버에 의해 제공되는 도구입니다. 하지만 다음과 같이 오해하는 실수를 저지르지는 마십시오:
- 오라클8에서 백업과 복구를 수행하는 유일한 방법이다. 필요하다면 운영 체제를 사용하여 백업, 복원, 그리고 복구 작업을 수행할 수 있습니다.
- 복구 카탈로그(Recovery Catalog)이다. 아닙니다. 가능하다면 RMAN은 카탈로그를 사용하긴 합니다. 하지만 카탈로그 그 자체인 것은 아닙니다.
- 오라클8 이전의 데이터베이스를 백업하기 위한 도구이다. 아닙니다. RMAN은 오라클8에서만 작동합니다.
- EBU(Enterprise Backup Utility)이다. 아닙니다. EBU는 RMAN과 호환되지 않으며 EBU는 오라클8 데이터베이스에서 돌아가지 않습니다.
- NT 백업 유틸리티이다. 아닙니다. NT 백업 유틸리티는 운영 체제 유틸리티이지 오라클 유틸리티가 아닙니다.
주: 복구 카탈로그(Recovery Catalog)가 사용되면 핵심적인 정보는 컨트롤 파일과 별개의 데이터베이스 모두에 저장됩니다.
- MML(Media Management Layer)란 tape drive와 같은 순차적 장치(sequential media)에 데이터 백업, 복원, 복구 작업을 하기 위하여 load, label, unload 등을 하는 유틸리티를 말합니다. Backup S/W 자체가 아니라 RMAN과 같은 Backup S/W에서 테이프 장치를 사용하고자 할 때 필요한 일종의 라이브러리로 이해하시면 되겠습니다.
- 서버프로세스(폴링), 즉 폴링 서버프로세스는 디스크상에 이루어지는 작업을 실질적으로 수행하는 CHANNEL을 생성하는 역할을 담당하는 서버프로세스이다.
채널이란 RMAN을 통해서 백업과 복구 작업을 수행하게 되면, 오라클 서버 프로세스가 관리의 대상이 되어지는(백업과 복구 작업이 수행되어지는) 데이터베이스의 물리적인 디바이스를 핸들링 할 수 있어야 하는데, 이때 사용되는 것이 채널입니다.
Recovery Manager 기능
RMAN은 Server Manager를 사용해서는 가능하지 않은 여러 기능을 제공합니다:
- 데이터베이스에 스크립트로 저장되는 자주 수행되는 작업을 저장합니다.
- 백업 시간이 반드시 데이터베이스 크기에 종속적인 것이 아니라 데이터베이스에 가해진 변경 수에 더 종속적이기 때문에 유용한 증분 블록 레벨로 백업합니다.
- 백업의 크기를 줄이기 위해 사용되지 않은 블록을 발췌합니다.
- 다음 제한은 각 백업에 대해 지정될 수 있습니다:
- 오픈 파일 수 : 동시에 열 수 있는 파일 수에 대한 OS의 제한을 극복하기 위해
- 백업 조각(backup piece)의 크기 : 백업 조각이 운영 체제나 Media Manager에 의해 허용되는 최대 파일 크기에 도달할 수 있기 때문에 - 운영 체제나 Backup Manager로부터 자동으로 실행될 수 있습니다(UNIX 상에서는"cron", NT 상에서는 "at").
Recovery Manager 기능(계속)
- 백업과 복원 도중 훼손된 블록 검출.
정보는 데이터베이스 경고 파일(alert file), 추적 파일(trace file), 그리고 컨트롤 파일에 기록되며 V$BACKUP_CORRUPTION과 V$COPY_CORRUPTION 뷰를 질의하여 알아낼 수 있습니다. - Oracle Parallel Server에서 clustered node에 걸쳐 분산 데이터베이스 백업, 복원, 복구
- 성능 향상:
- 백업, 복원, 그리고 복구의 자동 병렬화.
- 온라인 데이터베이스 백업 도중 별도의 리두가 생성되지 않습니다.
- 백업은 OLTP 작업과의 간섭을 피하기 위해 파일 당, 초당 읽기를 제한하도록 백업이 제한됩니다.
- 다중화를 사용하여 테이프 드라이브 스트리밍을 유지하는 동안 한 파일이 읽기 쓰기를 과다하게 하는 것을 막아 줍니다. - 속도와 신뢰성 향상을 위해 저장 장치(예, 디스크, 테이프)와 상호 작용하는 제 3자의 매체 관리 도구 사용
Recovery Manager 구성 요소
RMAN은 DBA 도구이며 다음과 같은 여러 부분으로 구성되어 있습니다:
- Executable(엔진)
Recovery Manager 명령을 물리적 파일에 대해 작동하는 일련의 단계로 번역합니다. - RMAN 인터페이스(SVRMGR과 유사)
DBA가 엔진에 명령을 내리기 위해 사용하는 대화식, 일괄 처리 모드 인터페이스입니다. - 대상 데이터베이스
백업, 복원, 그리고 복구할 데이터베이스입니다. - 복구 카탈로그(Recovery Catalog)
대상 데이터베이스와 관련있는 정보를 저장하고 있는 저장소입니다(대상 데이터베이스의 컨트롤 파일로부터 얻습니다). - 채널
각 채널마다 Recovery Manager는 대상 데이터베이스에 오라클 서버 프로세스를 생성하여 백업, 복원, 그리고 복구를 수행합니다.
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 Catalog)가 필요한가?
스크립트를 저장하거나 오랜 기간 동안 백업과 복원 정보를 보유하거나, 또는 특정 RMAN 기능을 사용할 필요가 있는가? - 패스워드 파일이 필요한가?
- Backup Manager 등을 사용하여 원격으로 데이터베이스 환경을 관리하고자 하는가?
- 보안을 강화하고자 하는가?
- TNS alias(예, scott/tiger@tns_alias)를 사용하여 RMAN에 접속하는가? - 파라미터 파일과 패스워드 파일을 어떻게 백업할 것인가?
Recovery Manager는 init.ora나 패스워드 파일, 또는 외부 OS 파일을 백업하지 않습니다. 이들 작업은 DBA가 수행해야만 합니다. - Recovery Manager Line mode나 Backup Manager를 사용해야만 하는가?
- Backup Manager를 사용하려면 Enterprise 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에 추가로 다음 특성을 제공합니다:
- 사용하기 쉬운 윈도우 인터페이스 제공
- 빠른 액세스를 위해 OEM 데이터베이스 관리 도구 세트에 통합
- 운영 체제와는 독립적으로 콘솔을 사용하여 작업을 보다 쉽게 생성하고 계획
프로세스
Backup Manager는 Windows NT가 돌아가고 있는 윈도우 클라이언트 PC에 상주하며 대상 데이터베이스가 들어 있는 서버 상의 Recovery Manager와의 인터페이스를 생성해 줍니다. 데이터베이스에의 접속은 Recovery Manager를 사용하기 시작할 때 서버 프로세스를 이용하여 설정됩니다.
- 본 과정은 Windows NT 4.0에서만 돌아가는 OEM V1.5를 기준으로 합니다.
복구 카탈로그(Recovery Catalog)
복구 카탈로그(Recovery Catalog)는 선택 사항입니다. 필요한 경우 자신의 스키마(sys나 system이 아닌)에 만들어지고 DBA에 의해 백업되어져야 합니다. 일련의 테이블, 또는 저장소로 구성되며 오라클 데이터베이스에 위치하고 Recovery Manager에 의해 유지되며 백업, 복원, 그리고 복구 작업에 대한 장기간의 정보를 저장하고 있습니다. 복구 카탈로그(Recovery Catalog)는 데이터나 아카이브의 실제 백업을 저장하지는 않습니다. 이들은 디스크나 테이프에 파일로 저장되어 집니다.
복구 카탈로그(Recovery Catalog) 내용
복구 카탈로그(Recovery Catalog)는 다음 정보를 담고 있습니다:
- 데이터 파일과 아카이브된 로그 백업 세트, 그리고 백업 조각
데이터 파일, 또는 아카이브된 로그의 백업은 백업 세트를 구성합니다. 백업 세트는 여러 백업 조각을 가질 수 있습니다. 카탈로그는 백업 세트의 이름과 시간 같은 정보를 저장합니다. - 데이터 파일 사본
사본은 디스크 상에 저장된 데이터 파일, 또는 아카이브된 로그의 물리적 사본입니다. 카탈로그는 데이터 파일 사본의 시간 기록(timestamp)과 이름을 기록합니다. - 아카이브된 리두 로그와 그 사본
카탈로그는 데이터베이스에 의해 생성된 아카이브된 로그의 기록과 Recovery Manager에 의해 만들어진 사본을 유지 보수합니다. - 대상 데이터베이스의 물리적 구조
카탈로그는 데이터베이스 컨트롤 파일이 제공하는 것과 유사한 정보를 담고 있습니다.
- 저장된 스크립트를 호출하는 명명된 일련의 명령
자주 실행되는 명령도 카탈로그에 저장될 수 있습니다.
복구 카탈로그(Recovery Catalog)는 다음과 같은 때에 유리합니다.
복구 카탈로그(Recovery Catalog)는 사용하면 Recovery Manager에 추가 기능을 제공합니다. 복구 카탈로그(Recovery Catalog)는 다음과 같은 상황 하에서 이점을 제공할 것입니다:
- 백업 정보를 장기간 보관해야 할 때
- 복구 카탈로그(Recovery Catalog)를 대상 데이터베이스보다는 별도의 디스크 상의 다른 데이터베이스에 저장하는 것이 가능하도록 충분한 자원이 있을 때
- 백업, 복원, 그리고 복구에 대해 저장된 스크립트가 필요할 때
- point-in-time 테이블스페이스 복구가 필요할 때
- 증분 블록 레벨 백업이 필요할 때
복구 카탈로그(Recovery Catalog)는 다음과 같은 때에 그리 유용하지 않을 수 있습니다.
RMAN과 함께 복구 카탈로그(Recovery Catalog)를 사용할 것을 추천하기는 하지만 복구 카탈로그(Recovery Catalog)가 항상 필수적인 것은 아닙니다. 다음과 같은 상황일 때에는 복구 카탈로그(Recovery Catalog)를 사용하지 않을 수 있습니다:
- 복구 카탈로그(Recovery Catalog)를 보유하고 있는 보조 데이터베이스가 비생산적인 오버헤드일 것 같은 경우
- 다음 기능이 필요하지 않은 경우:
- point-in-time 테이블스페이스 복구
- 백업, 복원, 그리고 복구 작업이 운영체제를 통해서, 또는 수동으로 수행되어 이들 작업을 자동화할 필요가 없을 경우
- 컨트롤 파일이 현행이 아닐 때의 자동 복구
Note: 복구 카탈로그(Recovery Catalog)가 사용되지 않으면 다음을 확인해야 합니다:
- 컨트롤 파일을 다중화하여 별개의 디스크에 사본을 위치시킵니다.
- 백업 파일, 날짜, 백업 조각의 이름, 그리고 모든 Recovery Manager 백업 로그의 세부 기록을 유지합니다.
- 복구 카탈로그에는 Target 데이터 베이스의 Controlfile 로 부터 정보를 가지고 와서 저장을 합니다. 복구 카탈로그를 사용하면 컨트롤파일이 문제가 생겼을때 컨트롤파일의 백업본이 아니라 복사 카타로그의 정보를 이용하여 컨트롤 파일을 복구 할 수 있습니다.
만약, 복구 카타로그를 사용하지 않는다면 일반적인 컨트롤 파일의 백업 방법, 즉 컨트롤 파일의 사본을 디스크에 저장해 놓는 방법, 이것을 이용하여 복구하셔야 한다는 의미입니다. - 컨트롤 파일이 현행이란 의미는 현재 Current 하게 사용하고 있는 컨트롤 파일을 의미 합니다. 즉 "컨트롤 파일이 현행이 아닐때의 자동복구" 의 의미는 컨트롤 파일이 손상되었을때 컨트롤 파일에 대한 예전 백업본을 이용한 자동복구를 뜻합니다.
복구 카탈로그(Recovery Catalog) 관리
대상 데이터베이스가 복구 카탈로그(Recovery Catalog)를 직접 액세스하지는 않습니다. 백업, 아카이브된 로그, 그리고 대상 데이터베이스의 구조에 대한 정보는 Recovery Manager에 의해서만 복구 카탈로그(Recovery Catalog)에 위치됩니다.
저장 고려 사항
복구를 용이하게 하고 속도를 향상시키고, 동시에 데이터 손실 위험을 감소시키려면 다음 지침 사항을 따르십시오:
- 대상 데이터베이스에 복구 카탈로그(Recovery Catalog)를 생성하지 마십시오. 별도의 디스크 상에 데이터 파일을 가진 별개의 데이터베이스를 선택하십시오.
- 백업해야 할 데이터베이스가 많다면 모든 대상 데이터베이스의 정보를 담아 둘 별도의 복구 카탈로그(Recovery Catalog) 데이터베이스 생성을 고려하십시오.
- 복구 카탈로그(Recovery Catalog)를 백업하십시오. 복구 카탈로그(Recovery Catalog)는 최상의 복원, 복구 방법을 결정하기 위해 Recovery Manager에 의해 사용됩니다.
- 복구 카탈로그(Recovery Catalog)를 대상 데이터베이스와는 다른 디스크 상의 데이터베이스에 저장하십시오.
복구 카탈로그(Recovery Catalog) 데이터베이스의 크기 결정
복구 카탈로그(Recovery Catalog)를 위해 별도의 데이터베이스를 생성하려면 위의 지침 사항을 사용하여 각 테이블스페이스에 필요한 공간을 결정하십시오. 위의 수치는 일년 당 대상 데이터베이스 하나를 기준으로 한 것입니다.
복구 카탈로그 생성 방법
복구 카탈로그를 생성하려면 다음 단계를 수행합니다.
- 카탈로그
데이터베이스에
연결하여
카탈로그에
대한
테이블스페이스를
생성합니다.
SQL > create tablespace rman_ts datafile '<directory>/<name>'
2 > size 20M default storage
3 > (initial 100K next 100K pctincrease 0);
- 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;
- 이
사용자에게
복구
카탈로그를
유지
관리하고
백업
및
복구
작업을
수행할
수
있는
롤과
권한을
부여합니다.
SQL > grant recovery_catalog_owner to rman_db1;
SQL > grant connect, resource to rman_db1;
- 테이블스페이스 및 롤백 세그먼트에 충분한 공간이 있는지 확인합니다. 카탈로그는 20MB 정도의 공간이 필요하고 롤백 세그먼트는 크기가 5MB 정도 되어야 합니다.
- 운영
체제에
로그인한
후 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의 목적은 카탈로그 생성 과정에서 발생할 수 있는 오류를 기록하여 수정 작업이 이루어지도록 하는 데 있습니다.
- 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
- 대상
데이터베이스를
포함하는
서버에서 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>
- 대상
데이터베이스를
카탈로그에
등록합니다. 대상
데이터베이스를
복구
카탈로그에
등록해야
데이터베이스에
대한
정보를
저장하는
데
카탈로그를
사용할
수
있습니다. 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 complete
RMAN>
- 복구 카탈로그에 저장되는 정보는 Target 데이터 베이스의 Controlfile 로 부터 정보를 가지고 와서 저장을 하게 되는데 이러한 작업을 Target 데이터 베이스의 Controlfile 과 복구 카탈로그를 재동기화 시킨다고 합니다.
이런 재동기화 작업은 RMAN 에서 사용할수 있는 명령 BACKUP, COPY, RESTORE 등의 명령을 수행시 항상 자동적으로 재동기화 작업이 일어나며 또한 재동기화를 수행해 달라는 RMAN 명령 "RESYNC CATALOG" 을 사용하여 재동기화를 수행할수 있습니다. - 카탈로그(recovery catalog)정보를 저장하기 위한 데이터베이스가 별도로 지정하는 것을 권장합니다.
A라는 데이터베이스의 백업에 대한 정보, 즉 카탈로그정보를 타겟인 A 데이터베이스와 함께 관리한다면 A 데이터베이스가 문제가 생겼을 때는 카탈로그 정보마저 사용할 수 없게 될 수 있습니다.
따라서 카탈로그용 정보를 저장하기 위해 타겟데이터베이스를 사용할 수 있지만 별도의 데이터베이스에 카탈로그 정보를 관리하는 것을 권장하는 것입니다.
컨트롤 파일로부터 얻을 수 있는 정보
컨트롤 파일은 Recovery Manager에 의해 수행되는 백업, 복원, 그리고 복구 작업을 담고 있습니다. 정보량은 백업 빈도, 대상 데이터베이스 크기, 그리고 보유 기간에 따라 다르게 증가합니다.
컨트롤 파일 설정
CONTROL_FILE_RECORD_KEEP_TIME 파라미터는 컨트롤 파일에 저장된 RMAN 정보가 며칠이 지나면 덮어 쓰여질 것인지 지정합니다. 값이 작으면 작을수록 자주 덮어 쓰여지고 컨트롤 파일의 성장을 최소화한다는 것을 의미합니다. 복구 카탈로그(Recovery Catalog)를 사용하면 작은 값을 선택해야 합니다. 기본값은 7일입니다.
Note: 복구 카탈로그(Recovery Catalog)를 사용할 때 컨트롤 파일에 덮어 쓰여지는 것보다 더 자주 재동기가 수행되도록 하십시오.
예를 들어 1로 설정되어 있다면 Recovery Manager 정보는 하루동안 유지됩니다. 이 경우 복구 카탈로그(Recovery Catalog)를 사용한다면 재동기가 최소한 하루에 한번은 수행되도록 하십시오.
컨트롤 파일의 성장
컨트롤 파일의 크기가 CONTROL_FILE_RECORD_KEEP_TIME에 의해 지정된 시간동안 모든 정보를 저장하기에는 너무 작다면 컨트롤 파일은 크기가 점점 커집니다. 컨트롤 파일이 커지기 전에 다음과 같은 특정 단계가 수행됩니다:
- 컨트롤 파일 내의 빈 공간이 사용됩니다.
- CONTROL_FILE_RECORD_KEEP_TIME보다 오래된 엔트리가 덮어 쓰여집니다.
- 더 이상 사용 가능한 공간이 없을 경우, 필요하다면 컨트롤 파일이 자라납니다.
컨트롤 파일 사본
복구 카탈로그(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는 카탈로그를 사용하여 손상된 컨트롤 파일을 재생성할 수 있습니다.
- 질문1)circular 하지 않은 재사용 레코드라는 것은 어떤 것을 의미하는지 궁금합니다
컨트롤 파일은 재사용가능하지 않은 부분과 재사용가능한 부분으로 구성되어 있습니다. 재사용가능하지 않은 부분은 일반적인 데이터베이스에 대한 정보를 저장하는 부분을 의미합니다. 데이터파일에 대한 정보, 테이블스페이스 ,온라인 리두로그 파일에 대한 정보등입니다. 재사용가능한 부분은 Recovery manager를 통한 Backup정보등이 저장되는 부분을 의미합니다.
RMAN 명령 라인
RMAN을 시작하려면 다음 구문을 사용하십시오:
rman target <qstring> [rcvcat <qstring> | cmdfile <qstring> |
msglog <qstring> | append]
설명 | |
TARGET | Recovery Manager가 작업하게 될 데이터베이스에 대한 사용자 ID와 비밀 번호를 포함하고 있는 접속 문자열 |
RCVCAT | 복구 카탈로그를 포함하고 있는 데이터베이스에 대한 사용자 ID와 비밀번호를 포함하고 있는 접속 문자열 |
RMAN에 대한 입력 명령을 포함하고 있는 파일의 이름. 이 인수가 지정되면 RMAN은 일괄 처리 모드로 작동하며, 지정되지 않으면 대화식 라인 모드로 작동합니다. | |
MSGLOG | RMAN이 명령과 출력 결과를 기록해 두는 파일의 이름. 지정되지 않으면 RMAN은 스크린으로 출력합니다. |
APPEND | 이 파라미터는 mslog 파일이 추가 모드(append mode)로 열려지도록 합니다. 이 파라미터가 지정되지 않고 mslog 파일과 같은 이름을 가진 파일이 이미 존재하면 덮어 쓰여집니다. |
QSTRING | 빈 칸과 구둣점을 포함할 수 있는 인용 문자열(quoted string). 예, "sys/change_on_install@08db" 홑 따옴표, 또는 겹 따옴표를 사용할 수 있습니다. |
Recovery Manager 시작
RMAN으로 접속하는 데는 세 가지 이유가 있습니다:
접속 프로세스
RMAN 접속 명령을 치면 다음 이벤트가 발생합니다:
- Recovery Manager에 대해 사용자 프로세스가 생성됩니다.
사용자 프로세스는 대상 데이터베이스에 접속한 오라클 서버 프로세스 두 개를 생성합니다:
- 하나는 기본 프로세스로 SQL 명령을 실행하고 컨트롤 파일과 리두 로그의 roll-forward를 재동기합니다.
- 다른 하나는 폴링 프로세스로 인스턴스 당 하나 씩만 있으며, RPC 완료(completion)를 찾습니다. - 서버 프로세스는 복구 카탈로그(Recovery Catalog) 데이터베이스가 복구 카탈로그(Recovery Catalog)를 읽어 들이고 갱신할 수 있도록 생성됩니다.
Recovery Manager로의 접속
복구 카탈로그(Recovery Catalog)를 사용하여 RMAN에 접속하려면 다음 단계를 따르십시오:
- 백업하고자 하는 대상 데이터베이스를 결정
- 대상 데이터베이스에 대한 복구 카탈로그(Recovery Catalog)를 포함하고 있는 데이터베이스를 결정
Note: 복구 카탈로그(Recovery Catalog)가 아직 생성되지 않았다면 "복구 카탈로그(Recovery Catalog) 생성" 섹션의 절차를 따르십시오. - 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
- 접속 문자열(예, @RCVCAT)은 tnsnames.ora 파일에 지정된 대로 적합한 TNS 별칭(alias) 이어야만 합니다.
- 복구 카탈로그(Recovery Catalog)가 아직 생성되지 않았다면 "복구 카탈로그(Recovery Catalog)생성"의 단계를 따르십시오.
- RMAN> connect target {*}
{*}에 지정할 수 있는 것은 /, NOTHING, user/pw , user.pw@service명 등입니다.
/, NOTHING(지정하지 않음) 경우는 OS인증을 통한 SYS가 접속한 경우입니다.
user/pw는 명령어를 수행하는 기계에 위치한 데이터베이스에 접속을 하는 것이고 user/pw@service명은 service명을 해석하여 접속을 하는 경우입니다.
따라서 "RMAN> connect target "는 맞는 사용법입니다.
접속 프로세스
RMAN 접속 명령을 치면 다음 이벤트가 발생합니다:
- Recovery Manager에 대해 사용자 프로세스가 생성됩니다.
- 사용자 프로세스는 오라클 서버 프로세스 두개를 생성합니다:
- 하나는 대상 데이터베이스에 접속된 기본 프로세스로 SQL 명령을 실행하고 컨트롤 파일을 재동기하고 복구 roll-forward를 합니다.
- 다른 하나는 대상 데이터베이스에 접속된 폴링 프로세스로 RPC 완료(completion)를 찾습니다(데이터베이스 당 오직 하나). - 백업과 복구 정보는 컨트롤 파일로부터 읽어 들입니다.
Recovery Manager에의 접속
복구 카탈로그(Recovery Catalog)를 사용하지 않고 RMAN에 접속하려면 다음 단계를 따르십시오:
- 백업하고자 하는 대상 데이터베이스 결정
- 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에 접속하려면 다음 단계를 따르십시오:
- OEM(Oracle Enterprise Manager) 시작
- Navigator 윈도우에서 백업하고자 하는 대상 데이터베이스를 선택하여 접속
- Tools -> Applications 메뉴에서 Oracle Backup Manager 선택
- Backup Manager - Subsystem 다이얼로그 박스가 나타나면 "Oracle8 Recovery Manager Subsystem" 선택
- 복구 카탈로그(Recovery Catalog)로 접속하려면 메뉴에서 Catalog -> Use Recovery Catalog 항목 -> Catalog 선택 -> Connect String 선택
- Recovery Catalog Login 다이얼로그 박스에서 복구 카탈로그(Recovery Catalog) 데이터베이스에 대한 사용자 이름,비밀 번호, 그리고 접속 문자열 입력
접속 프로세스
RMAN 접속 명령을 치면 다음 이벤트가 발생합니다:
- 클라이언트 PC 상의 Backup Manager에 대해 사용자 프로세스가 생성됩니다.
- 사용자 프로세스는 대상 데이터베이스에 접속되어 있는 오라클 서버 프로세스를 두 개 생성합니다(일반적인 RMAN 접속에서처럼).
- 복구 카탈로그(Recovery Catalog)가 사용되면 정보를 읽어 오고 갱신하기 위해 복구 카탈로그 (Recovery Catalog) 데이터베이스에 대해 서버 프로세스가 생성됩니다.
Note
- 온라인 백업의 경우 데이터베이스를 archivelog 모드로 놓으십시오.
- 원격 관리와 SYSDBA 권한에 필요하므로 비밀 번호가 설정되었는지 확인하십시오.
'DB - ORACLE > Oracle DB Admin ' 카테고리의 다른 글
Oracle Database 한국어 문서 목록 (0) | 2015.11.20 |
---|---|
Oracle ACS 교육 신청 (0) | 2015.11.12 |
Oracle Flashback 정리 (0) | 2015.11.04 |
ORADEBUG 사용법 - 1 (0) | 2015.10.30 |
Oracle Enqueue 의 종류별 설명 (0) | 2015.09.07 |