Tibero Recovery Catalog
Tibero Recovery Catalog의 구성요소와 동작 및 운영 방법을 설명합니다.
개요
Tibero Recovery Catalog는 다수의 데이터베이스들의 메타데이터(metadata)를 관리를 목적으로 제공 하는 기능입니다.
Tibero Recovery Catalog는 물리적으로 독립된 장소에 여러 데이터베이스들의 메타데이터를 보관합니다. 메타데이터를 보관하는 데이터베이스를 Catalog 데이터베이스(이하 Catalog)라고 합니다. 관리하려는 데 이터베이스를 Catalog에 등록하면 tbrmgr이 등록하려는 데이터베이스의 컨트롤 파일(Control file)을 읽어 메타데이터를 추출하고, Catalog에 이 데이터를 원격으로 보내어 저장합니다. Catalog에 최신 데이터를 업 데이트할 수 있습니다. 그 외에 RMGR 클라이언트를 이용하여 백업을 생성하거나 지우는 경우 관리자가 직접 resync 요청을 보내는 경우에도 메타데이터를 업데이트합니다.
저장하는 메타데이터는 다음과 같습니다.
데이터베이스 아이디, 데이터베이스 이름과 같은 데이터베이스의 기본 정보
테이블 스페이스, 데이터 파일, Redo 로그와 같은 데이터베이스 구조
데이터베이스의 체크포인트
데이터베이스 및 아카이브 로그 백업 Catalog를 이용하면 다음과 같은 이점을 얻을 수 있습니다.
컨트롤 파일 이외의 장소에 메타데이터를 저장할 수 있어 정보의 다원화가 가능합니다.
하나의 데이터베이스에 여러 데이터베이스의 메타데이터를 중앙화하여 관리할 수 있습니다.
컨트롤 파일에서는 언젠간 사라질 가능성이 있는 아카이브 로그, 로그 히스토리, 백업, 백업 아카이브 로그 정보들을 Catalog에서는 더 길게 보관하는 것이 가능합니다.
컨트롤 파일을 재생성하거나 백업을 이용해 복구하였을 시 유실되는 정보들을 Catalog를 이용해서 복 구하는 것이 가능합니다.
구성 요소
Tibero Recovery Catalog는 Catalog Database에 관리가 필요한 다른 데이터베이스들의 메타데이터를 보 관하는 구조를 가진다. 데이터베이스를 Catalog로 사용하기 위해서는 catalog create가 필요합니다.
Create할 때 다음을 생성합니다.
테이블 스페이스 RECOVERY_CATALOG
데이터베이스들의 메타데이터를 저장하기 위한 테이블 스페이스입니다.
시퀀스 SITE_KEY_SEQ
등록된 데이터베이스들을 구분하기 위한 고유값 SITE_KEY 생성을 위한 시퀀스입니다.
데이터 파일 recovery_catalog.dtf
메타데이터를 저장하기 위한 데이터 파일입니다. 100MB의 크기로 생성되며 autoextent 10MB가 설정되 어 있습니다. Single 데이터베이스 기준 매일 한번 백업을 진행합니다고 하였을 때 1년에 약 10MB 정도의 용 량을 사용하게 되므로 이를 참고하여 저장공간을 설정하면 됩니다.
RECOVERY_CATALOG 테이블 스페이스에는 메타데이터 저장을 위한 테이블을 가지고 있으며 RC_SITE_KEY 테이블을 제외한 나머지는 DBID_KEY, SITE_KEY, DBINC_KEY를 Primary Key로 합니다. 사용자는 각 KEY 값을 이용하여 Catalog에서 관리할 데이터베이스의 메타데이터 정보를 열람할 수 있습니다.
DBID_KEY
데이터베이스의 ID
각 데이터베이스의 DBID와 대응하며 V$DATABASE에서 확인 가능
SITE_KEY
데이터베이스의 고유 KEY 값
Primary와 Standby는 같은 DBID를 가지기에 이 둘을 구분할 수 있는 KEY 값인 SITE_KEY를 가짐
이 값은 SITE_KEY_SEQ 를 통해 생성됨
DBINC_KEY
데이터베이스의 Incarnation(RESETLOGS 부트를 한 시점 정보)
각 데이터베이스의 RESETLOGS_TSN 과 대응
DBID를 가지기에 이 둘을 구분할 수 있는 KEY 값인 SITE_KEY를 가짐
이 값은 SITE_KEY_SEQ 를 통해 생성됨
메타데이터를 저장하기 위해 생성한 테이블의 종류는 아래와 같습니다.
RC_LAST_RESYNC
등록된 데이터베이스가 Catalog에 데이터를 업데이트 할때의 정보 를 기록하는 테이블
RC_DATABASE
등록된 데이터베이스의 기본 정보를 기록하는 테이블
컨트롤 파일의 Database Entry section과 대응
RC_DB_INCARNATION
데이터베이스의 INCARNATION 정보를 기록하는 테이블
RC_SITE_KEY
데이터베이스의 DB_UNIQUE_NAME에 대응하는 고유한 열쇠값인 SITE_KEY를 기록하는 테이블
이 테이블은 Incarnation의 구분 이 필요하지 않기에 DBINC_KEY를 가지지 않음
RC_REDO_THREAD
데이터베이스의 Redo Thread에 대한 정보를 기록하는 테이블
컨트롤 파일의 Redo Thread section과 대응
RC_FLASHBACK_THREAD
데이터베이스의 Flashback Thread에 대한 정보를 기록하는 테이블
컨트롤 파일의 Flashback Thread section과 대응
RC_STANDBY_REDO_THREAD
데이터베이스의 Standby Redo Thread에 대한 정보를 기록하는 테이블
이 테이블은 스탠바이 데이터베이스에서만 업데이트가 진행이 되며, 컨트롤 파일의 Standby Redo Thread section과 대응
RC_LOGFILE
데이터베이스의 Redo 로그 파일에 대한 정보를 기록하는 테이블
컨트롤 파일의 Log File section과 대응
RC_TABLESPACE
데이터베이스의 테이블 스페이스에 대한 정보를 기록하는 테이블
컨트롤 파일의 Tablespace section과 대응
RC_DATAFILE
데이터베이스의 데이터 파일에 대한 정보를 기록하는 테이블
컨트롤 파일의 Datafile section과 대응
RC_ARCHIVED_LOG
데이터베이스의 아카이브 로그에 대한 정보를 기록하는 테이블
컨트롤 파일의 Archived logs section과 대응
RC_LOG_HISTORY
데이터베이스의 로그 스위치 기록에 대한 정보를 기록하는 테이블
컨트롤 파일의 Log History section과 대응
RC_BACKUP_SET
데이터베이스의 백업 셋에 대한 정보를 기록하는 테이블
RC_BACKUP_SET은 같은 DB_NAME을 공유하는 데이터베이스들 이 모두 공유
컨트롤 파일의 Backup Set section과 대응
RC_BACKUP_ARCHIVELOG
데이터베이스의 백업 아카이브 로그에 대한 정보를 기록하는 테이블
RC_BACKUP_ARCHIVELOG는 같은 DB_NAME을 공유하 는 데이터베이스들이 모두 공유
컨트롤 파일의 Backup Archivelog section과 대응
Tibero Recovery Catalog를 구성하는 기본적인 단계는 다음과 같습니다.
Catalog를 생성합니다. Catalog에 필요한 오브젝트들을 생성하는 단계입니다. 자세한 사항은 “Catalog Create”를 참고합니다.
관리하고자 하는 데이터베이스를 Catalog에 등록합니다. 등록을 통해 Catalog는 해당 데이터베이스의 메타데이터를 저장합니다. 자세한 사항은 “Catalog Register”를 참고합니다.
필요에 따라 Resync를 진행하여 데이터베이스의 메타데이터를 업데이트합니다. 메타데이터의 업데이트는 사용자가 RMGR 클라이언트를 통해 수동으로 진행됩니다. 자세한 사항은 “ Catalog Resync”를 참고합니다.
기능
Tibero Recovery Catalog는 RMGR 클라이언트를 이용하여 Catalog를 관리할 수 있습니다.
Catalog를 관리하기 위한 커맨드는 tbrmgr catalog이며, Catalog와 관련된 모든 기능은 이 커맨드를 통해 동작해야 합니다. tbrmgr catalog는 기존 tbrmgr과 옵션을 공유하지 않으며, catalog 옵션은 아래와 같습니다.
create
--cat-userid, RMGR_CATALOG_SID 파라미터로 지정한 데이터베이스를 Catalog로 이용하기 위해 필요한 작업을 실행
register
데이터베이스를 Catalog에 등록하는 작업을 실행
unregister
데이터베이스를 Catalog에서 등록 취소하는 작업을 실행
resync
Catalog에 등록된 메타데이터를 현재 데이터베이스의 메타데이터로 업데이트하는 작업을 실행
re-register
컨트롤 파일 재생성과 같이 기존의 컨트롤 파일이 유실된 데이터베이스를 Catalog에 다시 등록하는 작업을 실행
--userid
데이터베이스에 접속할 사용자명과 패스워드 및 SID를 아래와 같은 형식으 로 지정
--userid USERID[[/PASSWD][@SID]]
화면상에 비밀번호 노출을 원치 않을 때에는 비밀번호를 공백으로 입력한 후 비밀번호를 입력하라는 문구가 나오면 비공개로 번호를 입력할 수 있음
--userid USERID/[@SID]
OS 인증을 받은 계정으로 로그인하는 경우 Userid와 Passwd를 입력하지 않 아도 로그인 가능
--userid /
--cat-userid
Catalog에 접속할 사용자명과 패스워드 및 SID를 지정
--userid와 동일한 방식으로 지정하며 RMGR_CATALOG_SID를 지정하는 경우 SID 생략이 가능
SID와 RMGR_CATALOG_SID를 모두 지정했을 때는 --cat-userid에 지정한 SID가 적용됨
-h, --help
RMGR Catalog의 옵션 사용법을 출력
-l, --log-level
클라이언트 측 RMGR 로그(tbrmgr_trace.log)의 기록 레벨을 설정
레벨은 1부터 5까지 있으며 숫자가 커질수록 자세히 기록
기본 레벨은 4
-L
tbrmgr_trace.log의 기록될 위치를 지정
기본 경로는 $TB_HOME/client/tbrmgr_log/
--all-incarnation
Unregister 할 때 모든 incarnation의 메타데이터 정보를 같이 제거
--backup-set
백업 셋과 백업 아카이브 로그의 메타데이터에 대해서만 Resync를 진행
--archivelog
아카이브 로그의 메타데이터에 대해서만 Resync를 진행
--log-history
로그 히스토리의 메타데이터에 대해서만 Resync를 진행
참고
Tibero Recovery Catalog의 모든 기능을 사용하기 위해 클라이언트는 반드시 Catalog에 연결되어야 합니다. 따라서 tbrmgr catalog를 사용할 때는 반드시 --cat-userid를 [예1]와 같이 설정해야 합니다.
Catalog에 접속하기 위해선 tbdsn.tbr 파일에 설정이 필요합니다.
[예 1] Catalog SID 설정 및 연결
tbrmgr에서 Catalog에 접속하려면 위에서 설정한 SID를 tip 파일의 RMGR_CATALOG_SID 또는 option중의 하나인 --cat-userid를 설정해야 합니다. 두 방법 중에는 --cat-userid를 이용한 설정이 우선 적용됩니다.
Catalog Create
Create는 RMGR_CATALOG_SID나 --cat-userid로 설정된 데이터베이스를 Catalog로써 사용할 수 있도 록 필요한 작업을 실행합니다.
위와 같이 작업이 완료되면 Catalog는 메타데이터 관리에 필요한 테이블 스페이스, 데이터 파일 및 테이 블들을 생성하게 됩니다. 생성되는 것은 “구성 요소”를 참고합니다.
Catalog Register
특정 데이터베이스를 관리하기 위해선 해당 데이터베이스를 Catalog에 등록해야하며 이 과정을 Reigster(등 록)라고 합니다. 다음과 같이 등록을 진행할 수 있습니다.
RMGR 클라이언트는 데이터베이스의 메타데이터들을 컨트롤 파일에서 직접 읽어서 Catalog에 등록합니다. 등록을 완료하면 데이터베이스도 자신이 등록되었음을 컨트롤 파일에 기록합니다.
이 때 Catalog는 등록된 데이터베이스들을 DB_UNIQUE_NAME 값으로 구분합니다. DB_UNIQUE_NAME은 각 데이터베이스를 구분하기 위한 파라미터로 미설정 시 DB_NAME과 같은 값을 가지게 됩니다.
참고
만약 등록할 데이터베이스의 DB_UNIQUE_NAME이 이미 등록되어 있는 데이터베이스와 같습니다면 현 재의 등록은 실패하게 됩니다. 관리자는 이 점을 유의하여 각 데이터베이스의 DB_UNIQUE_NAME을 다르게 설정해야 합니다.
또한 Catalog는 데이터베이스를 Incarnation(RESETLOGS 부트를 한 시점 정보)마다 별개로 저장합니다. 만 약 데이터베이스를 RESETLOGS 부트합니다면 기존과 다른 데이터베이스로 취급되며 Catalog 등록정보는 컨트롤 파일에서 사라지게 됩니다. Catalog는 기존 Incarnation의 메타데이터를 지우지는 않으나, 새 Incar nation의 데이터베이스가 다시 Catalog를 사용하기 위해선 register를 다시 진행해야 합니다.
등록된 데이터베이스는 백업 및 복구 과정을 Catalog가 관리하게 되는데, 그로 인해 RMGR을 사용할 때 다음과 같은 부분의 변화가 생깁니다.
Catalog에 연결하지 않으면 RMGR Backup / RMGR Delete 기능을 사용할 수 없습니다. Catalog에 등록된 데이터베이스는 백업의 관리 주체가 자신에서 Catalog로 변합니다. Catalog는 매 백업 때마다 적절한 Backup Set ID를 부여하고 한 DB_NAME을 가진 데이터베이스 내에 동일한 ID를 가진 백업이 없도록 관리합니다. 등록된 데이터베이스는 Backup Set ID를 발급할 수 없기에 Catalog 없이는 RMGR 백업을 진행할 수 없고, 백업을 지우는 작업 역시 Catalog에서 관리되어야 하므로 Catalog 없이 진행이 불가합니다.
TSC 환경에서 다른 노드가 진행한 백업을 이용해 복구를 진행할 수 있습니다. TSC 환경의 Primary, Standby 모두 Catalog에 등록되어 있습니다면, 서로의 데이터베이스에서 각자 진행한 백업을 이용하여 복구를 진행할 수 있습니다. 이를 위해선 복구과정에서도 --cat-userid를 통해 Catalog에 연 결이 필요합니다. 복구과정에 최신 백업 셋이나 지정한 (-b|--backup-set)이 다른 데이터베이스에서 진행 되어 컨트롤 파일에 존재하지 않습니다면, Catalog에서 복구에 필요한 백업 셋들의 정보 자동으로 컨트롤 파일에 추가한 뒤에 복구 과정을 진행합니다.
참고
백업 파일까지 보내주지는 않기에 데이터베이스가 해당 백업 파일에 접근이 가능한 경우에만 사용 가능합니다.
Standby에서 백업을 진행하면 백업 셋 정보는 Catalog에 남으며, Primary에서도 Catalog를 통해 확인 이 가능합니다. 최신의 백업 셋이 Standby에서 진행한 2번 백업이라고 가정하자. 이때 Primary가 Catalog 에 연결한채로 복구를 진행하면, 클라이언트는 Catalog에서 자동으로 2번 백업 셋 정보를 가져와 복구 를 진행합니다.
[예 2] Primary를 Standby의 백업을 이용하여 복구 진행
Catalog Unregister
데이터베이스의 메타데이터를 catalog에서 제거하는 과정을 진행하는 기능입니다.
unregister의 진행은 데이터베이스의 현재 Incarnation 정보에 대해서만 진행됩니다. 만약 데이터베이스의 모든 정보를 삭제할 --all-incarnation 옵션을 추가해야 합니다.
Catalog Resync
Catalog의 메타데이터를 현재 데이터베이스의 메타데이터와 동기화하는 작업을 진행합니다.
별도로 옵션을 주지 않았을 경우 모든 메타데이터에 대해 동기화가 진행되는 Full Resync가 진행되며, Resync 옵션 중에 하나를 주었을 경우엔 지정한 섹션의 메타데이터만 동기화하는 Partial Resync가 진행 됩니다.
백업 셋 및 백업 아카이브 로그을 제외한 나머지 메타데이터는 사용자가 직접 Resync 요청을 보내야만 진 행됩니다. 백업 셋 및 백업 아카이브 로그는 다른 데이터베이스와 공유하는 메타데이터이기에 RMGR Backup / Delete 등이 진행될 때도 자동으로 수행됩니다.
Catalog Re-register
재생성이나 백업에서 복원하는 등의 상황에선 컨트롤 파일에 Catalog 등록에 대한 정보가 사라져 Catalog 기능을 사용할 수 없는 상태가 됩니다. re-register는 이와 같은 상황에서 데이터베이스가 다시 등록된 상태 와 같게 해주는 작업을 진행합니다.
Last updated

