행위

오라클 rman

DB CAFE

Dbcafe (토론 | 기여)님의 2019년 8월 6일 (화) 00:37 판 (새 문서: RMAN+Clone DB 사용해서 복구 11g는 Targetless Duplicate 기능으로 target DB에 접속하지 않고 Backpset 과 Archive log 파일만을 이용해 CloneDB구성이 가능 1....)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
thumb_up 추천메뉴 바로가기


RMAN+Clone DB 사용해서 복구 11g는 Targetless Duplicate 기능으로 target DB에 접속하지 않고 Backpset 과 Archive log 파일만을 이용해 CloneDB구성이 가능

1. RMAN 으로 전체 데이터베이스 백업

[oracle@localhost~] $ rman target /

RMAN> backup as compressed backupset format '/data/rman/%U_%T' database ;

2. test 테이블 생성 및 drop

[oracle@localhost~] $ sqlplus / as sysdba

SYS> create table scott.test

 2    (no number,
 3    name varchar2(10)) ;

SYS> insert into scott.test values(1, '김효섭') ;

SYS> insert into scott.test values(2, '홍길동') ;

SYS> commit ;

SYS> select * from scott.test ;

NO NAME


1 김효섭

2 홍길동

SYS> alter system switch logfile ;

SYS> /

SYS> /

SYS> /

SYS> select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss') from dual ;

TO_CHAR(SYSDATE,'Y


2014-11-17:04:00:00

SYS> drop table scott.test purge ;

3. Clone DB 용 Parameter File 생성 및 수정

--spfile 일 경우 :

SYS> create pfile='/app/oracle/product/11g/dbs/initclone.ora' from spfile ;

--pfile 일 경우 :

SYS> !cp /app/oracle/product/11g/dbs/inittestdb.ora /app/oracle/product/11g/dbs/initclone.ora

SYS> ! vi /app/oracle/product/11g/dbs/initclone.ora

수정

db_name='clone'

control_files='/data/db/clone/control01.ctl'

  1. memory_target=823132160 주석처리

추가

db_file_name_convert=('/data/temp4/','/data/db/clone') /data/temp4 는 현재 운영중인 데이터파일 경로

log_file_name_convert=('/data/temp4/','/data/db/clone') /data/temp4 는 현재 운영중인 로그 파일 경로

4. Clone DB 구성용 디렉토리 생성

[oracle@localhost~] $ mkdir -p /data/db/clone

[oracle@localhost~] $ mkdir -p /app/oracle/admin/clone

[oracle@localhost~] $ mkdir -p /app/oracle/admin/clone/adump

[oracle@localhost~] $ mkdir -p /app/oracle/admin/clone/dpdump

5. Archive log 파일을 backupset 이 있는 경로에 복사

[oracle@localhost~] $ cp /data/arc1/* /data/rman/

6. RMAN 의 Targetless DUPLICATE 를 이용하여 시간기반 무정지 복구

[oracle@localhost~] $ export ORACLE_SID=clone

[oracle@localhost~] $ export NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS'

[oracle@localhost~] $ sqlplus / as sysdba

SYS> startup nomount <-- 파라미터파일 밖에 없어서 노마운트까지만 오픈

SYS> exit

[oracle@localhost~] $ rman auxiliary /

RMAN > duplicate database to 'clone'

  2     pfile='/app/oracle/product/11g/dbs/initclone.ora'
  3     nofilenamecheck
  4     backup location '/data/rman'
  5     until time '2014-11-17:04:00:00' ;

복구중----------

RMAN> exit

SYS> select * from scott.test ;

NO NAME


1 김효섭

2 홍길동

복구 끝!

7. exp/imp로 복구한 테이블을 운영 DB에 입력

[oracle@localhost~] $ exp scott/tiger file=/home/oracle/test.dmp tables=test

[oracle@localhost~] $ export ORACLE_SID=testdb

[oracle@localhost~] $ imp scott/tiger file=/home/oracle/test.dmp ignore=y

[oracle@localhost~] $ sqlplus / as sysdba

SYS> select * from scott.test ;

NO NAME


1 김효섭

2 홍길동