오라클/백업/복구

RMAN+Clone DB 사용해서 복구

김포춘 2014. 11. 17. 17:00
반응형

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'

#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       홍길동


반응형

'오라클 > 백업/복구' 카테고리의 다른 글

TTS(Transportable Tablespace) Migration  (1) 2015.07.24
RMAN 복구하기  (0) 2014.11.14
RMAN  (0) 2014.11.13
Flashback  (0) 2014.11.12
Clone DB  (0) 2014.11.10
sql loader  (0) 2014.11.10
데이터 이동하기  (0) 2014.11.06