오라클/백업/복구

Clone DB

김포춘 2014. 11. 10. 16:10
반응형

운영중인 DB를 복사해서 복구용 DB를 추가 생성해 즉시 복구 하는 방법


전제조건을 아래와 같이 하고 실습 시작  ( 경로나 이름은 자기 마음대로 지정해줘도 됨 )

- 백업 파일 경로 : /data/backup/close

- 운영 DB SID : testdb

- clone DB SID : clonedb (복구용 db)

- clone DB 파일경로 : /data/clone


Clone DB 생성 개념

파라미터 파일 : 기존 파라미터 파일을 복사해서 내용 수정

컨트롤 파일 : 컨트롤파일 재생성 스크립트 만들어서 재생성

데이터 파일 : 백업파일 복사

리두 로그 파일 : 로그스위치 일으켜서 아카이브파일로 만들어서 데이터는 아카이브에서 가져옴, 리두파일은 리셋로그즈로 재생성



복구 순서 요약


운영중이던 DB에서 할일 : 컨트롤 파일 재생성 스크립트만 만들어주고 나머지는 cloneDB에서 실행, 리두 파일에 있던 데이터 로그 스위치 일으켜서 아카이브에 저장 시키기


1. clone DB 생성할 디렉토리 생성  -> mkdir -p /data/clone   

2. parameter file 복사     ->    cp $ORACLE_HOME/dbs/inittestdb.ora initclonedb.ora

3. parameter file 수정     ->    vi initclonedb.ora          -> 컨트롤파일경로 클론디비 경로로 변경, 디비명 clonedb명으로 변경

                                                                                    11g 부터는 memory_target 주석처리


4. data file 복사          -> cp /data/backup/close/*.dbf /data/clone

5. 운영중인 DB에서 컨트롤 파일 재생성 스크립트 실행    -> alter database backup controlfile to trace as '/app/oracle/re.sql' ;

6. 스크립트 수정      -> vi /app/oracle/re.sql        -> reset logs 모드, reuse 를 set 으로 변경, DB명 변경, 파일들 경로 변경 


7. Clone DB 로 시작하기위해 export ORACLE_SID=clonedb 로 변경

8. sqlplus / as sysdba 접속

9. 컨트롤파일 재생성 스크립트 실행      -> @/app/oracle/re.sql

10. mount 모드까지 올림        -> startup mount 

11-1.(백업파일 있을때) 파일 복구 : recover database until time '2014-11-10:12:00:00' using backup controlfile ;   

                                                                     컨트롤 파일을 재생성했기 때문에 using backup controlfile 해주는 것


11-2. (백업파일 없을때) 파일 복구 : recover database until time '2014-11-10:12:00:00' using backup controlfile ; 

-> 에러생기면서 복구안됨, 데이터파일내용 수정 select name from v$datafile ;    


NAME

----------------------------------------

/data/clone/system01.dbf

/data/clone/sysaux01.dbf

/data/clone/undotbs01.dbf

/data/clone/users01.dbf

/data/clone/example01.dbf

/app/oracle/product/11g/dbs/UNNAMED00006          <-- 요런게 생김


-> 데이터 파일 재생성 alter database create datafile '/app/oracle/product/11g/dbs/UNNAMED00006' as '/data/clone/test.dbf'

-> 다시 복구 recover database until time '2014-11-10:12:00:00' using backup controlfile ; 


12. resertlogs 모드로 open : alter database open resetlogs 

13. 데이터 복구 확인

14. clone DB 에서 운영 DB로 복구파일 복사 : export ORACLE_SID=clonedb       exp scott/tiger file='test.dmp' tables=test

export ORACLE_SID=testdb     imp scott/tiger file='test.dmp' ignore=y

15. 운영 DB에서 데이터 복구 확인 

16. Clonedb 종료 : export ORACLE_SID=clonedb       ->     shutdown immediate 





반응형

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

RMAN 복구하기  (0) 2014.11.14
RMAN  (0) 2014.11.13
Flashback  (0) 2014.11.12
sql loader  (0) 2014.11.10
데이터 이동하기  (0) 2014.11.06
Redo log flle 장애 처리방법  (0) 2014.11.05
Log Miner 활용하기  (0) 2014.11.05