다른 명령
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'
- 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 홍길동