운영중인 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 |