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 |