본문 바로가기
oracle/[Recovery] 기타

[Clone DB] Clone db로 복구 후 DB Link를 이용해서 이동하기

by #moonyz 2014. 11. 11.




[DB Link]

- 운영 DB와 복구 DB는 서로 네트워킹이 되어야 DB Link를 사용할수 있다.

- 데이터를 가지고 있는쪽이 server / 데이터를 필요로 하는쪽이 client

- server는 tnsnames.ora 파일을 수정해야 하고 / client는 listener.ora 파일을 수정해야함

- DB Link는 Client에 생성




[전제조건]

archive mode에서 작업

백업파일경로 : /data/backup/open/

운영서버 SID : testdb

복구서버 SID : clone1

복구서버 파일경로 : /data/temp/clone1/


[작업순서]

1. 복구 서버용 파라미터 파일 생성 : 현재사용중인 parameter file을 복사하여 이름변경하고(initSID.ora) vi로 편집하여 내용수정

2. 백업 데이터 파일 복원 : 백업받아둔 *.dbf 파일을 복구서버 경로로 복원

3. 컨트롤 파일 재생성 스크립트 만들기 : alter database backup controlfile to trace as '스크립트생성할위치'

4. 컨트롤 파일 재생성 스크립트 실행 : SQL> @스크립트경로

5. 불완전 복구 시작 : recover database until time '복구시간' using backup controlfile;

6. client의 tnsnames.ora 파일과 server의 listener.ora 파일에 내용 추가 및 수정

7. listener 재시작 : lsnrctl stop listener2 / lsnrctl start listener2

8. clinet에 DB Link 생성 : create database link 링크이름 connect to 사용자명 identified by 암호 using '복구DB명';

9. 복구DB에 DB Link로 연결하여 복구할 테이블 가져옴 : insert into scott.ctest select * from scott.ctest@링크이름




1. archive mode에서 작업하기



2. 테이블 스페이스 생성 



3. data file 백업하기 ( open backup )



4. 생성한 테이블스페이스에 테이블생성 및 데이터 입력



5. 테이블 trunate 시켜서 장애발생시킴 



6. switch 발생시켜서 redo log file에 있는 데이터로 archive log file 생성



7. parameter file 복사 및 수정하여 복구DB용 parameter file 생성 -> 복구DB용 디렉토리를 생성하고 백업해둔 data file 복원



8. 복사한 복구DB용 parameter file수정 -> control file 경로, db_name, memory_target 주석처리



9. control file 생성 스크립트 만들기 -> 스크립트 수정 (resetlog로 생성)

SQL > alter database backup controlfile to trace as '스크립트 생성할 경로';



10. 복구용DB (clone1)로 접속하여 control file 생성스크립트 실행



11. 복구용DB (clone1)에서 복구수행 -> 복구 확인

SQL > recover database until time '복구할시간' using backup controlfile; 

SQL > alter database open resetlogs;



12. client의 tnsnames.ora 파일과 server의 listener.ora 파일에 내용 추가 및 수정

SQL > vi /app/oracle/product/11g/network/admin/tnsnames.ora --client 쪽

SQL > vi /app/oracle/product/11g/network/admin/listener.ora --server쪽


# 데이터가 있는 서버 CLIENT -> tnsnames.ora 수정


# 데이터를 복구해야하는 서버 SERVER -> listener.ora 수정



13. 리스너 재시작

$ lsnrctl stop listener2

$ lsnrctl start listener2



14. 네트워킹 설정 확인

$ tnsping 



15. 복구가 필요한 서버 (testdb)로 접속하여 DB Link 생성

DB Link는 복구가 필요한 서버인 client에서 생성해야함

SQL > create database link 링크명 connect to 계정 identified by 암호 using 'DB명'



16. 현재 운영서버에서 DB Link를 이용하여 복구서버에 있는 테이블 조회



17. DB Link를 사용하여 복구서버에 있는 데이터를 운영서버로 가져옴 (복구)


댓글