백업/복구를 배워야하는 이유
데이터는 중요한 자산이기 때문이다.
백업의 종류와 특징
백업에는 콜드백업과 핫백업이 있다. 콜드백업은 인스턴스를 중지시킨 상태에서의 백업을 의미한다. 콜드백업은 체크포인트된 상태에서 백업을 진행한다. 핫백업은 인스턴스가 가동중인 상태에서의 백업을 의미한다.
온라인 백업의 순서와 명령어
ALTER DATABASE BEGIN BACKUP;
백업 실행
ALTER DATABASE END BACKUP;
백업 시작 시점과 백업이 끝난 시점 사이에 변경이 일어날 경우, 백업 시작 시점의 백업에서 추가로 변경된 리두로그를 기록하여 문제가 없도록 한다.
EXPORT를 사용한 논리 백업
실제 데이터를 빼오는 형태의 백업으로 리두로그를 이용해 복구할 수 없다.
데이터를 구조화된 포맷으로 백업을 한다. 이 때 OS와 호환되는 데이터 베이스 구성 파일(컨트롤 파일 + 데이터 파일 + 리두로그 파일)로 백업을 뜨는 것이 아니라 오라클의 논리 구조에 가까운 형태로 백업을 진행한다. 그리고 해당 데이터를 바이너리 파일 형태로 저장한다. 리두로그가 데이터 베이스의 블록 단위로 적용되는 구조로서 적용되기 때문에 EXPORT를 사용한 논리 백업에 대해서 리두 로그를 적용시킬 수 없는 것이다.
온라인 백업 중 인스턴스가 정지한다면
핫백업 중 인스턴스가 정지한다면 ORA-1113 에러가 발생한다. 해당 에러에 대한 대처 방법은 아래와 같다. 일단 에러가 발생하면 데이터베이스를 OPEN 할 수 없으므로 MOUNT 모드에서 END BACKUP 명령어를 수행한 후 데이터베이스를 다시 OPEN 한다.
데이터베이스 손상의 예
- 디스크 고장으로 인한 데이터 파일 손상
- 삭제나 덮어쓰기
- 블록 손상
- 일시적으로 파일 접근 불가
- 하드웨어 또는 케이블 고장
- 드라이버나 어댑터 카드 고장
기본적인 복구의 종류와 동작
- 인스턴스 복구
- 미디어 복구
- 완전 복구, 불완전 복구
- 데이터베이스 / 테이블 스페이스 / 데이터 파일 / 블록 복구
인스턴스 복구
인스턴스의 비정상 종료로 인해 재기동시 자동으로 수행하는 복구를 의미한다.
미디어 복구
디스크 내 데이터에 손상이 발생했을 때 사용자가 수행하는 복구를 일컫는다. 일반적인 복구에 해당한다.
완전 복구
최신 시점의 데이터까지 복구하는 형태를 완전복구라고 한다.
불완전 복구
특정한 시점으로 복구하는 형태를 불완전 복구라고 한다. 아카이브 리두 로그 파일을 사용할 수 없을 때 불완전 복구를 수행한다.
데이터베이스 복구
데이터베이스 전체를 복구하는 것을 의미한다.
테이블 스페이스 복구
데이터베이스가 가동 중인 상태에서 특정 테이블 스페이스만 복구를 진행할 수 있다.
데이터 파일 복구
데이터베이스가 가동 중인 상태에서 특정 데이터 파일만 복구를 진행할 수 있다.
블록 복구
RMAN을 사용하여 특정 블록만을 복구할 수 있습니다. 특정 블록만 백업 시점으로 돌리고 해당 블록과 관련된 리두로그를 적용하는 방법입니다.
복구의 또 다른 고려 요소
- 복구 소요시간
- 다시 복구해야 할 가능성
데이터베이스 전체를 리스토어해서 복구하는 것이 시간이 덜 걸리겠다고 판단되면 데이터베이스 전체를 리스토어 한다. 만약 내가 알지 못하는 에러가 발생하여 또 다시 복구를 해야 할 것 같은 판단이 서면 전체 복구를 통해서 다시 복구하는 일을 없애도록 하자
복구가 필요 없는 테이블 스페이스
- 임시 테이블 스페이스
- 테이블이나 인덱스를 저장하지 않는 임시 테이블 스페이스는 삭제 후 다시 생성해도 된다.
- 읽기 전용 테이블 스페이스
- 읽기 전용 테이블 스페이스의 경우 해당 테이블 스페이스의 데이터를 변경하지 않기 때문에 복구 시 리두로그가 필요하지 않습니다. 따라서 한번만 백업을 받으면 리스토어 하는 것으로도 복구를 완료할 수 있습니다.
- 인덱스용 테이블 스페이스
- 인덱스를 생성하기 위한 데이터가 테이블에 존재하고 있으므로 버린다 하더라도 복구할 수 있습니다.
RMAN
리커버리 매니저는 백업과 리스토어를 도와주는 관리 도구이다. 10g 이후의 버전부터 체인지 트랙킹과 증분백업 기능을 통해 변경된 부문만 빠르게 추적하여 백업 및 복구를 수행할 수 있다. 하지만 시간이 지남에 따라 증분 백업이 많아지면 데이터를 관리하기 힘들어져 유실될 수 있고 점점 시간이 길어진다는 단점이 있다. 따라서 날짜별로 풀 백업을 받고 그 날에 맞춰 변화된 부분을 부분 백업하여 지속적으로 업데이트 하는 방안도 생각해 볼 수 있다.
기본적인 복구 흐름
- 데이터 베이스 손상 확인
- 현재 상태 백업
- 데이터 파일과 아카이브 리두 로그 파일 리스토어
- 복구 실행
'DataBase > 그림으로 공부하는 오라클 구조' 카테고리의 다른 글
9장 리두와 언두의 동작 (0) | 2023.10.09 |
---|---|
8장 오라클의 대기와 락 (0) | 2023.10.09 |
7장 오라클의 데이터 구조 (1) | 2023.10.09 |
6장 커넥션과 서버 프로세시의 생성 (0) | 2023.09.24 |
5장 오라클의 기동과 정지 (0) | 2023.09.20 |