행위

"오라클 rman"의 두 판 사이의 차이

DB CAFE

(문서를 비움)
(태그: 비우기)
1번째 줄: 1번째 줄:
RMAN+Clone DB 사용해서 복구
 
  
11g는 Targetless Duplicate 기능으로 target DB에 접속하지 않고 Backpset 과 Archive log 파일만을 이용해 CloneDB구성이 가능
 
 
1. RMAN 으로 전체 데이터베이스 백업
 
<source lang=sql>
 
[oracle@localhost~] $ rman target /
 
RMAN> backup as compressed backupset format '/data/rman/%U_%T' database ;
 
</source>
 
2. test 테이블 생성 및 drop
 
<source lang=sql>
 
[oracle@localhost~] $ sqlplus / as sysdba
 
</source>
 
<source lang=sql>
 
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      홍길동
 
</source>
 
 
<source lang=sql>
 
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
 
</source>
 
 
<source lang=sql>
 
SYS> drop table scott.test purge ;
 
</source>
 
 
3. Clone DB 용 Parameter File 생성 및 수정
 
--spfile 일 경우 :
 
<source lang=sql>
 
SYS> create pfile='/app/oracle/product/11g/dbs/initclone.ora' from spfile ;
 
</source>
 
 
--pfile 일 경우 :
 
<source lang=sql>
 
SYS> !cp /app/oracle/product/11g/dbs/inittestdb.ora /app/oracle/product/11g/dbs/initclone.ora
 
</source>
 
 
<source lang=sql>
 
SYS> ! vi /app/oracle/product/11g/dbs/initclone.ora
 
</source>
 
 
수정
 
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 구성용 디렉토리 생성
 
<source lang=sql>
 
[oracle@localhost~] $ mkdir -p /data/db/clone
 
</source>
 
 
<source lang=sql>
 
[oracle@localhost~] $ mkdir -p /app/oracle/admin/clone
 
</source>
 
 
<source lang=sql>
 
[oracle@localhost~] $ mkdir -p /app/oracle/admin/clone/adump
 
</source>
 
 
<source lang=sql>
 
[oracle@localhost~] $ mkdir -p /app/oracle/admin/clone/dpdump
 
</source>
 
 
5. Archive log 파일을 backupset 이 있는 경로에 복사
 
<source lang=sql>
 
[oracle@localhost~] $ cp /data/arc1/* /data/rman/
 
</source>
 
6. RMAN 의 Targetless DUPLICATE 를 이용하여 시간기반 무정지 복구
 
<source lang=sql>
 
[oracle@localhost~] $ export ORACLE_SID=clone
 
[oracle@localhost~] $ export NLS_DATE_FORMAT='YYYY-MM-DD:HH24:MI:SS'
 
[oracle@localhost~] $ sqlplus / as sysdba
 
</source>
 
<source lang=sql>
 
SYS> startup nomount      <-- 파라미터파일 밖에 없어서 노마운트까지만 오픈
 
SYS> exit
 
</source>
 
<source lang=sql>
 
[oracle@localhost~] $ rman auxiliary /
 
</source>
 
<source lang=sql>
 
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
 
</source>
 
<source lang=sql>
 
SYS> select * from scott.test ;
 
 
NO    NAME
 
---------
 
1      김효섭
 
2      홍길동
 
복구 끝!
 
</source>
 
7. exp/imp로 복구한 테이블을 운영 DB에 입력
 
<source lang=sql>
 
[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      홍길동
 
</source>
 

2019년 9월 27일 (금) 12:52 판

thumb_up 추천메뉴 바로가기