Korean English Japanese Chinese (Simplified) Chinese (Traditional)

 

 

 

/* RMAN Backup, Flashback Technology 등 Oracle Database의 Availability의 관리하기 위한 작업을 사용하기 위해서는 ARCHIVELOG 모드 지정이 필수적이다. */

/* Recovery Catalog는 backup metadata을 저장하고, 데이터베이스의 백업본을 추적하기 위해서 사용된다. Recovery Catalog에는 Datafile, Archived redo log과 그 copies, 타겟 데이터베이스의 테이블스페이스와 데이터베이스, 그리고 RMAN 커맨드의 Stored Scripts가 저장된다. 또, 데이터베이스 백업본을 영구적으로 보관하려면, Recovery Catalog의 사용이 필수적이다. */

 

/실습 환경: Oracle Database 21c, 즉 PDB 구성이 필수적인 데이터베이스 버전을 사용중이다. */

 

 

Recovery Catalog의 아키텍처. 여러 Target Database의 백업에 대한 metadata, 그리고 제어파일 목록을 보관한다.

 

 

 

 

난이도: 

문제 0:  데이터베이스의 Archive log 상태를 확인하고, noarchivelog 상태라면 Archive log mode로 바꾸어라.

 

archive log list로 archive mode를 확인할 수 있다. 보기처럼 No Archive Mode이면 실습이 진행되지 않으니, Archive log mode로 바꾸도록 하겠다.

archive log list

shut immediate;
startup mount;
alter database archivelog;
alter database open;

#데이터베이스가 아카이브 로그 모드로 바뀌었는지 확인
archive log list

 

 

 

 

 

난이도: 

문제 1:  Recovery Catalog를 생성하고 데이터베이스를 register하여라. (10분)

- 테이블스페이스, owner를 생성하고 필요한 privileges를 부여하여라.

- catalog를 create하고 데이터베이스를 등록한 후, LIST INCARNATION 커맨드를 실행해 보라.

 

 

1. 새로운 데이터베이스를 생성하라. (Recovery Catalog용으로 사용할 것이다.)

global database name과 sid는 rcdb로 정했다.

 

 

 

 

2. rcdb 데이터베이스에 접속하고, 이 데이터베이스를 Recovery Catalog로 사용하도록 지정한다.

alter session set container = rcdbpdb1;

@/u01/app/oracle/product/21.3.0/dbhome_1/rdbms/admin/catalog.sql

/* Recovery Catalog로 사용할 rcdbpdb1에 Recover Catalog 관리용 유저, 그리고 카탈로그용 테이블스페이스를 생성한다. */

conn / as sysdba
alter session set container = rcdbpdb1;

CREATE USER rc_owner IDENTIFIED BY asdf0930k;
GRANT recovery_catalog_owner, dba TO rc_owner;

CREATE TABLESPACE rc_catalog DATAFILE '/u01/app/oracle/oradata/RCDB/rc_catalog.dbf' SIZE 100M REUSE
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

ALTER USER rc_owner DEFAULT TABLESPACE rc_catalog;
ALTER USER rc_owner QUOTA UNLIMITED ON rc_catalog;

alter pluggable database all open;

 

 

 

RMAN 커맨드를 이용해 rcdbpdb1 데이터베이스를 Recovery Catalog로 지정한다.

$ rman catalog rc_owner/asdf0930k@rcdbpdb1;

CREATE CATALOG;

 

 

RMAN 커맨드를 이용해 orcl 데이터베이스를 Recovery Catalog (rcdbpdb1)의 Target Database로 지정한다.

export ORACLE_SID=orcl

rman target / catalog rc_owner/asdf0930k@rcdbpdb1;
register database;



/* Recover Catalog에서 관리되는 데이터베이스의 목록을 확인하는 코드 */
list incarnation;

 

 

 

 

 

 

난이도: 

문제 2: second database를 생성하고, Virtual Private Catalog를 구성하라. RUN INCARNATION 커맨드를 이용하여 Virtual Private Catalog가 잘 구성되었는지 확인해라. (10분)

 

/* Recovery Catalog에 여러 개의 서로 다른 데이터베이스를 적용하면, 백업 데이터베이스의 메타데이터를 관리하기 편해질 것이다. 이번 실습에서는 위의 rcdb, orcl 외에 orcl2라는 데이터베이스를 생성할 것이다. 참고로 pdb를 Recovery Catalog로 지정할 수는 없다. 무조건 root containe로 지정해야 한다. */

/* 이번 문제에서는 19c MTA 미적용 환경에서 진행됨에 유의하기 바란다. */ 

 

Recovery Catalog (RCDB)에 두 target database (orcl, orcl2)가 등록되어 있는 것을 확인하여라.

$ export ORACLE_SID=rcdb
$ sqlplus / as sysdba

@/u01/app/oracle/product/19.3.0/dbhome_1/rdbms/admin/rbmsrmanvpc.sql -vpd RC_OWNER


$ sqlplus / as sysdba
CREATE USER vpc_owner IDENTIFIED BY asdf0930k;
GRANT recovery_catalog_owner, dba TO vpc_owner;


$ rman catalog rc_owner/asdf0930k@rcdb
UPGRADE CATALOG;
GRANT CATALOG FOR DATABASE orcl2 TO vpc_owner;

$ rman catalog vpc_owner/asdf0930k@rcdb
CREATE VIRTUAL CATALOG;
LIST INCARNATION;

 

 

 

 

 

 

난이도: 

문제 3: 제어파일을 백업하는 Stored Script를 작성하라. (10분)

 

 

1. RMAN에서 Stored Script에 관한 커맨드를 살펴본다.

Recovery Catalog에 등록된 Target 데이터베이스로 연결하기 위해서는, RMAN 커맨드를 사용할 때 꼭 catalog문도 입력해야 한다.

 

 

 

/* Stored Script 생성 */
CREATE SCRIPT my_script {
						 BACKUP SPFILE;
                         BACKUP CURRENT CONTROLFILE;
                         }

/* Stored Script 내용 표시 */
PRINT SCRIPT my_script;

/* Stored Script 리스트 표시 */
LIST SCRIPT NAMES;

/* Stored Script 내용 변경 */
REPLACE SCRIPT my_script {BACKUP DATABASE;}

/* Stored Script 삭제 */
DELETE SCRIPT my_script;

/* Stored Script 실행 */
RUN {EXECUTE SCRIPT my_script;}

 

 

 

2. 제어파일을 백업하는 Stored Script를 생성하고, 실행한다.

 

CREATE SCRIPT my_script	{BACKUP CURRENT CONTROLFILE;}
                            
RUN {EXECUTE SCRIPT my_script;}

 

 

 

 

 

 

난이도: 

문제 4: Recovery Catalog를 Resynchronizing, Upgrading해보고, 또 Recovery Catalog의 Import를 진행하여라. (10분)

 

1. Resynchronze (덧붙여, backup database 시 Recovery Catalog도 자동적으로 재동기화된다.), Upgrade를 진행한다.

rman target / catalog system/asdf0930k@rcdb 


/* Recovery Catalog 재동기화 */
RESYNC CATALOG;

/* Recovery Catalog 업그레이드 */
UPGRADE CATALOG;

 

 

 

2. Recovery Catalog인 orcl의 등록 내용을 rcdb로 옮긴다. (Import 실습)

 

(1) 이번 실습에서는 orcl 데이터베이스를 rcdb 카탈로그에 입력했는데, 이번엔 orcl를 Recovery Catalog로 사용하려 한다. 그러므로 우선 orcl를 rcdb 카탈로그에서 등록을 해제할 것이다.

export ORACLE_SID=orcl

rman target / catalog system/asdf0930k@rcdb

/* Recovery Catalog에서 등록 데이터베이스를 해제하는 코드. register database의 반대 */ 
unregister database;

 

 

(2) orcl 데이터베이스를 Recovery Catalog로 생성한다.

rman target / catalog system/asdf0930k@orcl

create catalog;
register database;

list incarnation;

 

 

 

 

(3) Recovery Catalog(orcl)의 등록 내용을 다시 Recovery Catalog(rcdb)에 옮긴다.

export ORACLE_SID=rcdb

rman catalog system/asdf0930k@rcdb


/* orcl에 등록한 Recovery Catalog를 rcdb로 옮기기 위한 코드이다. */
IMPORT CATALOG system/oracle@orcl


list incarnation;

 

 

If you like this post, please give me a ❤️...!
 
✰Popular Posts✰
✰Recent Posts✰
 

❤ Seoul, Daejeon, Tokyo, Fukuoka
Site developed by Ryu Hyunwoo