백업 만들기

모든 Spanner 데이터베이스의 백업을 만들 수 있습니다. 이러한 백업은 백업의 version_time 시점에 데이터베이스의 모든 데이터(스키마 및 보조 색인 포함)를 포함한다는 점에서 완전성을 갖습니다. version_time 후 데이터 또는 스키마의 수정 사항은 백업에 포함되지 않습니다. 백업에는 ALTER DATABASE SET OPTIONS 명령어로 설정된 모든 데이터베이스 옵션이 포함되지만 Identity and Access Management(IAM) 정책은 포함되지 않습니다. 백업을 만들 때 백업은 소스 데이터베이스와 동일한 인스턴스, 리전 및 프로젝트에 있습니다.

다음 방법으로 백업을 만들 수 있습니다.

백업 및 복원 개요는 백업 및 복원 소개를 참조하세요.

백업 만들기 방법

백업을 만들 때는 소스 데이터베이스, 백업 리소스 이름, 만료 날짜(백업 만들기 시점으로부터 최대 1년)를 지정해야 합니다. 또한 선택적으로 version_time을 지정하여, 초기 시점에 데이터베이스를 백업할 수 있습니다. version_time 필드는 일반적으로 point-in-time recovery를 사용하여 여러 데이터베이스의 백업을 동기화하거나 데이터를 복구하기 위해 사용됩니다. version_time이 지정되지 않았으면 백업의 create_time으로 설정됩니다. 시스템은 백업 리소스 및 장기 실행 백업 작업을 만들어서 백업 진행 상태를 추적합니다. 새로 생성된 백업은 소스 데이터베이스와 동일한 인스턴스, 리전 및 프로젝트에 있습니다.

백업의 외적 일관성을 보장하기 위해 Spanner는 데이터베이스의 콘텐츠를 create_time에 고정합니다. 이렇게 하면 백업 작업을 진행하는 동안 가비지 컬렉션 시스템이 관련 데이터 값을 삭제하는 것을 방지할 수 있습니다. 그런 후 인스턴스의 모든 읽기/쓰기 및 읽기 전용 영역이 데이터 복사를 병렬로 시작합니다. 영역을 일시적으로 사용할 수 없게 되면 영역이 다시 온라인 상태로 전환되어 완료될 때까지 백업이 완전한 상태가 아닙니다. 작업이 완료되면 즉시 백업을 복원할 수 있습니다. 멀티 리전 인스턴스의 경우 백업이 복원 가능으로 표시되기 전 모든 리전의 모든 읽기/쓰기 및 읽기 전용 영역이 백업 복제본을 완료해야 합니다.

또한 백업에는 데이터베이스의 변경 내역 스키마가 포함되지만 기존 변경 레코드가 포함되지 않습니다. 변경 내역 데이터는 설명되는 변경사항과 거의 동시에 스트리밍되고 소비됩니다. 따라서 Spanner가 이 데이터를 백업에서 제외합니다.

암호화

데이터베이스와 마찬가지로 Spanner 백업은 Google 관리 또는 고객 관리(CMEK) 암호화로 암호화됩니다. 기본적으로 백업은 해당 데이터베이스와 동일한 암호화 구성을 사용하지만, 백업을 만들 때 다른 암호화 구성을 지정하여 이 동작을 재정의할 수 있습니다. 백업에 CMEK가 사용 설정되었으면 백업을 만들 때 KMS 키의 기본 버전을 사용하여 암호화됩니다. 백업을 만든 후에는 KMS 키가 순환되어도 해당 키 및 키 버전을 수정할 수 없습니다. 자세한 내용은 CMEK 사용 백업 만들기를 참조하세요.

리소스 계층 구조

백업은 Spanner에서 리소스입니다. 각 백업 리소스리소스 계층 구조에서 해당 소스 데이터베이스와 동일한 인스턴스에 저장되며 projects/<project>/instances/<instance>/backups/<backup> 형식의 리소스 경로를 갖습니다. 백업은 해당 소스 데이터베이스가 삭제된 다음에도 계속 존재하지만 상위 인스턴스보다 오래 지속될 수 없습니다. 백업이 실수로 삭제되는 것을 방지하기 위해 백업이 있는 경우 Spanner 인스턴스를 삭제할 수 없습니다. 인스턴스를 삭제하려면 백업 및 인스턴스를 삭제하기 전에 해당 백업을 복원한 다음 복원된 데이터베이스를 내보내는 것이 좋습니다.

백업 시간 및 성능

백업을 수행할 때 Spanner는 데이터베이스에서 백업 스토리지로 직접 데이터를 복사하는 백업 작업을 만들고 데이터베이스 크기에 따라 해당 작업의 크기를 조정합니다. 이 백업 작업은 데이터베이스 인스턴스에 할당된 CPU 리소스를 사용하지 않으므로 인스턴스 성능에 영향을 미치지 않습니다. 또한 데이터베이스 인스턴스의 컴퓨팅 부하는 백업 작업 속도에 영향을 미치지 않습니다. 백업 작업의 진행률과 완료를 추적하려면 백업 진행률 표시를 참조하세요.

일반적으로 대부분의 백업은 1~4시간 정도 걸립니다. 일부 백업은 크기 또는 내부 리소스 큐로 인해 더 오래 걸릴 수 있습니다. 다른 요인이 변경되지 않았을 때 백업이 평소보다 오래 걸리는 경우 영역에서 백업 작업 예약이 지연되었기 때문일 수 있습니다. 이 과정에는 최대 30분이 소요될 수 있습니다. 백업을 취소하고 다시 시작하지 않는 것이 좋습니다. 새로운 백업 작업에 동일한 예약 지연이 발생할 수 있습니다.

액세스 제어(IAM)

spanner.backupAdminspanner.backupWriter 역할은 백업을 만들 수 있는 권한을 부여합니다. 이러한 역할 중 하나를 사용하면 인스턴스에서 백업 만들기 요청을 호출할 수 있습니다. 자세한 내용은 IAM으로 액세스 제어를 참조하세요.

가격 책정

백업에 사용되는 단위 시간별 스토리지 사용량을 기준으로 청구됩니다. 청구는 백업 만들기 작업이 완료된 다음부터 시작되며 백업이 삭제되기 전까지 계속됩니다. 완료된 백업은 최소 24시간 단위로 청구됩니다. 백업을 만들고 나서 완료 후 1분만에 삭제하더라도 24시간에 대한 비용이 청구됩니다.

다음 단계