2.8.1. 클러스터 백업 개념
백업이란 주어진 시간에 생성한 스냅샷 (snapshot)이다. 백업은 세 가지 부분으로 구성된다:
-
Metadata: 데이터베이스의 모든 테이블에 대한 이름과 정의문
-
Table records: 백업이 만들어진 시점에 실제로 데이터베이스 테이블에 저장되어 있는 데이터
-
Transaction log: 데이터가 데이터베이스에 저장된 방식과 시점을 알려주는 시퀀셜 레코드
위의 각 부분들은 백업에 참여하는 모든 노드에 저장된다. 백업이 진행되는 동안, 각 노드는 디스크에 이러한 세 부분을 세 개의 파일에 저장한다:
-
BACKUP-backup_id.node_id.ctl
제어 정보 및 메타데이터를 가지고 있는 제어 파일. 각 노드는 동일한 테이블 정의문 (클러스터의 모든 테이블에 대해서)을 사용해서 자신만의 고유 버전을 유지한다.
-
BACKUP-backup_id-0.node_id.data
테이블 레코드를 가지고 있는 데이터 파일이며, 이것은 프래그먼트 기반으로 저장된다. 즉, 서로 다른 노드들은 백업이 진행되는 동안 서로 다른 프래그먼트를 저장한다. 각 노드가 저장한 파일은 레코드가 속한 테이블을 가리키는 헤더로 시작한다. 그 다음에는 모든 레코드에 대한 체크섬을 저장하는 푸터 (footer)가 나온다.
-
BACKUP-backup_id.node_id.log
실행된 트랜젝션에 대한 레코드가 들어 있는 로그 파일, 백업에서 저장된 테이블의 트랜젝션만이 로그에 저장된다. 서로 다른 노드는 서로 다른 데이터베이스 프래그먼트를 가지고 있기 때문에 백업에 참여한 노드들은 별도의 레코드를 저장한다.
위의 리스트에 나와 있는 backup_id는 백업 아이덴티파이어를 가리키며, node_id는 파일을 생성하는 노드에 대한 고유 아이덴티파이어를 나타내는 것이다.