Spanner 데이터베이스 백업을 새 데이터베이스로 복원할 수 있습니다. 복원된 데이터베이스는 ALTER DATABASE SET OPTIONS
명령어로 설정된 모든 데이터베이스 옵션을 포함하여 백업의 version_time
시점에 원본 데이터베이스의 모든 데이터 및 스키마를 갖습니다. 복원된 데이터베이스를 포함하는 인스턴스에서 상속되는 권한을 제외하고 어떠한 IAM 권한도 포함하지 않으며, 사용자가 복원 완료 후 적절한 IAM 권한을 적용해야 합니다.
변경 내역의 내부 데이터는 포함되지 않습니다. 백업에서 복원할 때 복원된 백업은 해당 소스 백업과 동일한 인스턴스, 리전, 프로젝트에 상주합니다. 규정 준수 또는 비즈니스 연속성 이유로 다른 리전 또는 프로젝트의 백업에서 복원해야 하는 경우 별도의 리전 또는 프로젝트의 인스턴스에 백업을 복사한 다음 복사된 백업에서 복원할 수 있습니다.
백업에서 복원을 사용하는 방법은 다음과 같습니다.
- Google Cloud 콘솔 사용
- Google Cloud CLI 사용
- 클라이언트 라이브러리 사용
- REST 또는 RPC API 사용
백업에서 데이터베이스 복원 작동 방식
Spanner 데이터베이스를 복원하려면 소스 백업 및 새 대상 데이터베이스를 지정해야 합니다. 기존 데이터베이스로는 복원할 수 없습니다.
새로 복원된 데이터베이스는 백업과 동일한 프로젝트에 있어야 하며, 백업과 동일한 인스턴스 구성의 인스턴스에 있어야 합니다.
예를 들어 백업이 us-west3
로 구성된 인스턴스에 있으면 또한 us-west3
로 구성된 프로젝트의 모든 인스턴스로 복원될 수 있습니다. 인스턴스의 컴퓨팅 용량은 동일할 필요가 없습니다.
복원 프로세스는 고가용성을 위해 설계되었습니다. 인스턴스에서 리전 및 영역의 쿼럼을 대부분 사용할 수 있는 한 데이터베이스를 복원할 수 있습니다.
CMEK 사용 백업을 복원하려면 키 및 키 버전을 모두 Spanner에 사용할 수 있어야 합니다. 기본적으로 복원된 데이터베이스에는 백업과 동일한 암호화 구성이 사용됩니다. 데이터베이스를 복원할 때 다른 암호화 구성을 지정하여 이 동작을 재정의할 수 있습니다. 자세한 내용은 CMEK 사용 백업에서 복원을 참조하세요.
백업을 다른 리전 또는 프로젝트로 복원
백업을 다른 리전 또는 프로젝트로 복원하려면 먼저 선택한 리전 또는 프로젝트에 백업을 복사합니다. 복사된 백업은 복사가 완료되는 즉시 복원할 수 있습니다. 대상 인스턴스 또는 인스턴스 구성이 대상 인스턴스와 동일한 모든 인스턴스에서 백업을 복원할 수 있습니다. 복원하기 전에 대상 인스턴스에 노드 저장용량 제한 4TB에 따라 데이터베이스 크기를 지원하기에 충분한 노드 또는 처리 장치가 프로비저닝되어 있는지 확인합니다(예: 8TB 백업을 복원하려면 노드가 2개 이상 필요함). 백업을 다른 프로젝트에 복사하고 해당 프로젝트에서 복원하려면 대상 프로젝트에 복원에 필요한 노드 할당량이 충분한지 확인합니다. 복사된 백업 복원은 일반 복원과 동일한 방식으로 작동합니다.
복원 상태
복원된 데이터베이스는 3개의 상태를 통해 전환되며. 이는 2개의 장기 실행 작업으로 추적할 수 있습니다.
CREATING
: Spanner는 백업에서 새 데이터베이스를 만들고 파일을 마운트하여 복원을 시작합니다. 이 초기CREATING
상태 중에는 복원된 데이터베이스를 아직 사용할 준비가 되지 않습니다. 이 상태는 일반적으로 1시간 내에 완료됩니다.CREATING
상태가 완료되면 데이터베이스를 사용할 준비가 완료됩니다.이 상태의 진행률을 추적하기 위해서는 Spanner가 이 프로세스 중에 사용할 수 있도록 장기 실행 복원 작업을 쿼리할 수 있습니다. 그러면
RestoreDatabaseMetadata
객체가 반환됩니다.CREATING
상태와 관련하여 다음 제한사항에 주의하세요.- 다른 인스턴스로 복원하는 경우, 복원 작업은 백업이 포함된 인스턴스가 아니라 복원된 데이터베이스가 포함된 인스턴스에 속합니다.
- Spanner에서는 복원 중 백업 삭제가 허용되지 않습니다. 복원이 완료되고 데이터베이스가
READY
상태로 전환된 다음 삭제할 수 있습니다. - 인스턴스는 백업에서 복원으로 인해
CREATING
상태의 데이터베이스를 최대 10개 포함할 수 있습니다. 복원된 10개의 데이터베이스 중 하나가READY_OPTIMIZING
또는READY
상태로 전환될 때까지는 인스턴스에 대한 다른 백업을 복원할 수 없습니다.
READY_OPTIMIZING
: Spanner가 백업을 마운트한 후 저장 크기를 최적화하면서 새 데이터베이스로 백업 데이터 복사가 시작됩니다. 이 프로세스 중에 데이터베이스 사용이 준비됩니다. 이 복원 단계는 크기가 100TB 미만인 데이터베이스에서 일반적으로 완료되는 데 몇 시간이 걸립니다.READY_OPTIMIZING
중에도 데이터베이스를 평소와 같이 사용할 수 있지만 다음과 같은 제한사항이 있습니다.- 읽기 지연 시간이 평소보다 약간 높아질 수 있습니다.
- 스토리지 측정항목에 백업이 아닌 새 데이터베이스 크기가 표시됩니다. 따라서 데이터 전송이 여전히 진행되는 동안에는 Spanner 스토리지 측정항목에 모든 데이터의 총 크기가 반영되지 않은 결과가 표시될 수 있습니다.
CREATING
상태와 같이 Spanner에서는 마운트된 백업 삭제가 허용되지 않습니다.
Spanner는 이 상태 중에 또 다른 장기 실행 복원 작업을 수행하고, 이번에는
OptimizeRestoredDatabaseMetadata
메타데이터 객체를 반환합니다.READY
: 복사 및 최적화 작업이 완료되면 데이터베이스가READY
상태로 전환됩니다. 데이터베이스가 완전히 복원되면 백업이 더 이상 참조되거나 필요하지 않습니다.
액세스 제어(IAM)
spanner.restoreAdmin
역할은 백업에서 복원을 수행할 수 있는 권한을 부여합니다.
자세한 내용은 IAM으로 액세스 제어를 참조하세요.
다음 역할도 Spanner 복원 작업에 액세스할 수 있습니다.
spanner.admin
: 복원에 대한 전체 액세스 권한을 갖습니다. 이 역할에는 모든 Spanner 리소스에 대한 전체 액세스 권한이 포함됩니다.owner
: 복원에 대한 전체 액세스 권한을 갖습니다.editor
: 복원에 대한 전체 액세스 권한을 갖습니다.viewer
: 복원 및 복원 작업을 볼 수 있는 액세스 권한을 갖습니다. 이 역할은 백업을 만들거나, 업데이트, 삭제 또는 복사할 수 없습니다.
가격 책정
백업에서 복원할 때는 요금이 부과되지 않습니다.
다음 단계
- 백업에서 데이터베이스를 복원하려면 백업에서 복원하기를 참조하세요.