오라클 백업 및 복구(복구의 원리)

1. Recovery 원리
가. NO MOUNT 단계 : 서버 프로세스가 pfile을 PGA로 읽어들여, 파라미터 파일의 내용대로 인스턴스 생성
나. MOUNT 단계
– CKPT가 모든 control file의 내용을 읽고 일시적인 LOCK을 설정
– control FILE header 정보를 검증하여 이상이 없는지 확인
– 파라미터 파일의 DB Name과 컨트롤 파일의 DB Name이 동일한지 검사
– 위 과정까지 오류가 없으면 DATABASE MOUNT 완료
다. OPEN 단계
– Data FILE header 부분과 Control file의 CHECKPOINT SCN을 비교해서 장애 유무 판단
– CHECKPOINT SCN에 문제가 없을 경우 데이터베이스 OPEN

참고 : control file의 checkpoint정보
– SCN(SYSTEM CHANGE Number) : 데이터베이스 전체 공통 번호로 모든 datafile의 scn과 동일해야 된다.
– CNT(count) : 각 datafile의 고유 번호로 동일하지 않다.(경우에 따라 동일한 시점이 있을 수 있음)
– STOP SCN : 각 데이터파일에서 정상적으로 checkpoint가 발생하여 데이터가 저장되고 종료됐는지 확인하는데 쓰이는 SCN, 서버가 OPEN 상태일 경우에는 0xffff.ffffffff으로 세팅되었다가 shutdown 시에 최종 SCN과 동기화하여 저장한다. 만일 startup 하는 과정 중에 STOP SCN이 0xffff.ffffffff으로 세팅되어 있었다면 서버가 비정상 종료됐다는 의미므로 해당 데이터 파일 복구를 시도하게 된다.

2. Recovery 의 구분
가. CRASH recovery : INSTANCE Recovery 라고도 하며, 운영중이던 데이터베이스가 비정상 종료 된 것을 startup 시에 자동으로 복구하는 과정을 의미한다. ONLINE redolog file을 이용
나. Media recovery : FILE 삭제나 디스크 등의 고장으로 INSTANCE recovery가 실패할 경우 수동으로 백업파일을 복사(restore) 후 복구하는 과정을 의미한다. ONLINE redolog file, archived redolog FILE 등을 이용

3. CONTROLFILE 재생성 방법
가. 재생성하는 경우
– controlfile이 모두 삭제되었을 때
– OLD control FILE 에러 발생 시
– DB Name 변경하고자 할 때
– 최대 데이터파일 개수, 리두로그 파일 개수를 변경하고자 할 때
나. 생성방법

startup MOUNT
ALTER DATABASE BACKUP CONTROLFILE TO trace AS '/home/oracle/control.sql';
shutdown IMMEDIATE

$ vi /home/oracle/control.sql
(필요한 부분만 남겨두고 주석과 공백 삭제)

@/home/oracle/control.sql

참고 : control FILE 생성 스크립트에서 NORESETLOGS와 RESETLOGS의 선택
– NORESETLOGS : Redolog file이 정상적으로 존재하는 상태, 기존의 redolog file을 이용하여 복구를 시도한다. 데이터의 손실이 없다.
– RESETLOGS : Redolog file이 존재하지 않거나 오류가 있는 상태, redolog file을 재생성 및 scn을 초기화 한다. 데이터의 손실이 발생한다.

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다