★★무정지 상태에서의 복구 - 1. cloneDB와 exp/imp를 이용한 drop table 복구.
[Backup&Recovery]/백업복구 2014. 11. 10. 18:45 |1. Clone DB와 exp/imp를 이용한 drop table 복구.
* 전제 조건 |
- 백업 파일 경로 : /data/backup/close/ - 운영DB SID : testdb - clone DB SID : clonedb (복구용 DB) - clone DB 파일 경로 : /data/temp/clone/ |
* 복구 순서 요약 |
1. clonedb용 파라미터 파일 생성.(pfile을 사용) $cp inittestdb.ora initclonedb.ora $vi initclonedb.ora -- db이름과 controlfile 경로 등등을 수정하고, memory_target값은 주석처리한다. 2. 백업 데이터 파일 복원. $mkdir -p /data/temp/clone $cp /data/backup/close/* /dat/temp/clone/ 3. 컨트롤 파일 재생성. (운영서버에서 진행) SYS> alter databse backup controlfile to trace as '/app/oracle/re.sql'; $ vi /app/oracle/re2.sql -- 스크립트 수정 (logfile, data file 경로수정, controlfile set database "clonedb" resetlogs 로 수정) 4. 불완전 복구 시작. (★clonedb 서버에서 진행★) SYS> @/app/oracle/re2.sql --스크립트 실행. SYS> recover database until time '2013-12-17:04:30:55' using backup controlfile; SYS> alter databse open resetlogs; 5. 복구 완료되면 clonedb서버에서 export후, 운영서버에 import 수행. $ export ORACLE_SID=clonedb $ exp scott/tiger file=gogak.dmp tables=gogak $ export ORACLE_SID=testdb $ imp scott/tiger=gogak.dmp 6. 운영서버에서 복구 확인. SYS> select count(*) from scott.gogak;
|
Step1. 장애 상황 만들기.
1. tablespace를 생성 한 뒤 db를 종료하고, 전체 백업을 받는다.
2. scott계정으로 접속한다. sys계정으로 table을 생성하면 안된다.
3. table을 생성하고, loop돌려서 값을 넣는다.
4. table을 조회하면 100건 조회된다.
5. commit 쳐서 내용을 저장한 후, 시간을 확보한 다음에 table을 drop한다.
6. log switch를 일으켜서, redo log file에 있는 내용을 지우고, archive redo log로 내려써서 저장한다.
step2. 복구 서버(clonedb)용 파라미터 파일 생성.
1. 기존 운영 서버의 파라미터파일을 복사해서 clonedb용 파라미터 파일을 생성한다.
2. 해당 파라미터 파일의 내용을 수정한다. control file 경로와 db이름을 수정하고, 11g부터는 memory target 값을 주석처리 해야한다.
step3. clone DB용 control file 생성.
1. control file을 생성하기 위해 백업 파일에서 데이터파일을 먼저 복원한 후, conrol file을 재생성하기 위한 생성 스크립트를 운영 DB에서 만든다.
2. control file 생성 스크립트를 수정한다.
- 위 아래 불필요한 주석은 지우고, data file의 경로를 수정해주고, control file set database 'clonedb' resetlogs 로 수정해준다.
** 새터미널 창을 열어 cloneDB용 터미널로 사용하겠습니다.
>export ORACLE_SID=clonedb
3. clonedb 서버에서 control file 생성 스크립트를 실행시켜준다.
step4. drop된 gogak2 테이블을 복구.
1. drop 되기 전의 시간으로 복구를 한 후, db를 reset logs 옵션으로 open 해준다.
2. clonedb서버에서 복구 완료된 것을 확인.
step5. 복구된 gogak2 텡블을 운영서버(testdb)로 이동합니다.
1. cloneDB 서버에서 export한다.
2. testdb서버에서 import한다.
3. 운영서버에서도 정상적으로 조회됨.
'[Backup&Recovery] > 백업복구' 카테고리의 다른 글
[Block corruption and repair] _ DBMS_REPAIR 패키지를 이용한 Block Recovery★★ (0) | 2014.11.21 |
---|---|
[Block corruption and repair] _ DBVERIFY를 이용한 block 관리. (0) | 2014.11.18 |
Recovery Manager (RMAN) _ 백업하기 (0) | 2014.11.13 |
★★무정지 상태에서의 복구 - 2.clone DB를 이용한 drop tablespace 복구하기. (-) (0) | 2014.11.11 |
RedoLogFile장애 _ 3.current 아닌 그룹 중 archive 안 된 그룹이 삭제되고 DB open상태 / 5. current 그룹이 삭제된 후 DB open상태. (0) | 2014.11.06 |
RedoLogFile장애 _ 2.archive 완료된 그룹이 지워진 후 - DB close상태. (0) | 2014.11.06 |
RedoLogFile장애 기본지식 _ 1.그룹의 멤버가 1개만 장애 발생할 경우. (0) | 2014.11.06 |
불완전 복구 - DDL 관련 장애복구(2)_ drop tablespace명령으로 삭제된 tablespace 복구.(백업없는경우) (0) | 2014.11.04 |
불완전 복구 - DDL 관련 장애복구(2-2)_ drop table->drop tablespace 명령으로 삭제된 table복구. (0) | 2014.11.03 |
불완전 복구 - DDL 관련 장애복구(2)_ drop tablespace명령으로 삭제된 tablespace 복구.(백업있는경우) (0) | 2014.11.03 |