[oracle] Oracle Backup & Restore
- 백업과 복구의 종류
백업방법
- 물리적 방법 ( Physical Mode ) : OS에서 제공하고 있는 복사 명령어
- 논리적 방법 ( Logical Mode ) : 오라클 사에서 제공하는 Export 유틸리티를 통한 파일 복사 방법
복구방법
- 노-아카이브 모드 ( no-Archive Mode )
: 로그버퍼 영역과 redo 로그 파일에 저장된 내용을 복구 하는 방법 ( 오라클 설치 후 기본 설정 값 )
- 아카이브 모드 ( Archive Mode )
* 완전 복구 ( Complete Recovery )
: DB의 문제가 발생한 시점까지의 복구 방법
* 불완전 복구 ( In-Complete Recovery )
: DB의 문제가 발생한 시점까지 복구가 안되고 정적인 백업자료를 복구
2. Hang-up 상태인 경우 오라클 서버 재부팅 하도록 함
DB Backup
- 물리적 방법 백업
사전 준비 단계
- 이 방법으로 백업을 하기 위해서는 반드시 Oracle 을 Shutdown 시켜야 한다.
- SQL>shutdown [ 옵션 ]
- 옵션 : Normal, Transactional, immediate
파일 복사
- 아래의 저장된 데이터베이스 파일을 별도의 백업 폴더로 복사 한다.
- Export 유틸리티 사용
사전 준비 단계 ( 백업 위치가 클라이언트 인 경우 )
- 오라클 클라이언트 버전 10g R2 (설치 옵션 - 관리자) 버전으로 설치 하여야 함
전체 백업방법 ( 자세한 사항은 오라클 유틸리티 매뉴얼을 참조 )
- exp userid=계정명/패스워드@TNS명 file=백업된파일 저장위치 log=백업과정의 로그 정보 저장 위치
: indexes=yes(no)
: grants=yes(no)
: contraints=yes(no)
- 예) exp userid=erprail/erprail@RAIL file=C:\erprail_mon.dmp log=D:\erprail_mon.log
일부 백업방법
- exp 계정명/패스워드@TNS명 file=백업된파일 저장위치 log=백업과정의 로그 정보 저장 위치 tables=백업할 테이블명
- 예) exp userid=erprail/erprail@RAIL file=C:\erprail_mon.dmp log=D:\erprail_mon.log tables=p1_master,p0_dept
2. Export 퀵 사용법 - exp 계정명/패스워드
1) 인출버퍼 사이즈 조정
2) Export 될 파일명 지정
3) 전체, 사용자, 테이블 선택 라인
4) 완료
3. HELP 보는 방법
C:> EXP HELP=Y
DB Restore
- No-Archive Mode ( 노 – 아카이브 모드 )
: 사용자 들의 Insert/Update/Delete 작업을 수행 할 때 마다 모든 변경 전 데이터와 변경 후 데이터를 Redo Log 버퍼에 저장 함
설정확인 방법 ( SQL PLUS )
- SQL> ARCHIVE LOG LIST
- SQL> SELECT GROUP#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;
- 오프라인 복구 방법
백업 1 에서 한 물리적 파일을 전부 재 설치
참고 Page 43 ~ 46 ( 백업 복구 가이드 )
- 아카이브 모드 환경 설정
initSID.ora 변수 설정
- LOG_ARCHIVE_START : ARCH 백그라운드 프로세스에 의해 아카이브 모드 전황 및 자동 실행 처리 설정
- LOG_ARCHIVE_DEPT : Redo 로그 파일에 대한 아카이브 파일이 생성될 기본 위치
- LOG_ARCHIVE_DEPT_n : 아카이브 경로를 여러군데로 지정할 때 사용
- LOG_ARCHIVE_FORMAT : 아카이브 파일의 포멧을 결정
설정확인 방법 ( SQL PLUS )
- SQL> ARCHIVE LOG LIST
- SQL> SELECT GROUP#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;
복구 방법
- 전체 완전 복구 : MOUNT 단계의 복구 작업 ( 백업 및 복구 가이드 매뉴얼 52 ~ 55 Page 참조 )
- 테이블스페이스 완전 복구 : OPEN 단계의 복구 작업 ( 백업 및 복구 가이드 매뉴얼 56 ~ 58 Page 참조 )
- 데이터 완전 복구 : OPEN 단계의 복구 작업 ( 백업 및 복구 가이드 매뉴얼 59 ~ 63 Page 참조 )
1. Import 유틸리티 사용
Export 를 사용하여 백업을 받은 경우 처리 할 수 있는 방법
Import 방법 ( 자세한 사항은 오라클 유틸리티 매뉴얼을 참조 )
- imp 오라클사용자명/암호@TNS명 file=덤프파일명 fromuser=ExportID touser=ImportID ignore=yes
- 예) imp userid=erprail/erprail@RAIL file=C:\erprail_mon.dmp fromuser=erprail touser=erprail ignore=yes
일반적 경고
- 1) Export 사용자와 Import 사용자의 ID가 틀린 경우
- 2) Export 객체들의 테이블 스페이스와 Import 테이블 스페이스 이름이 다른 경우
- 3) Export 테이블스페이스 스토리지 옵션과 덤프할 데이터가 맞지 않은 경우 ( Initial 사이즈가 너무 크거나 작다거나 등 )
일반적 경고 해결 방법
- 2) 덤프 파일에서 테이블 생성 스크립트 추출하기 : imp 명령의 indexfile 옵션을 이용한다
: imp 사용자명/암호@TNS명 file=덤프파일이름 fromuser=Export사용자ID touser=ImportID indexfile=ScriptFile
- 3) Spool / TAB View 를 활용 하여 처리 함
: spool drop.sql ( 파일 명 임 ) select 'drop table '||table_name||';' from tabs; spool off ( 실행방법 @파일명 임 )
: 실행도중 Referencial Integrity Error 발생시 수동 Drop 을 시켜 주면서 복구
출처 : http://gtko.springnote.com/pages/723356