백업 관리
이 페이지에서는 Bigtable 백업 작업과 테이블을 백업하고 새 테이블로 복원하는 방법을 설명합니다. 이 페이지를 읽기 전에 백업을 숙지해야 합니다.
다음을 사용하여 Bigtable 백업으로 작업할 수 있습니다.
- Google Cloud 콘솔
- Google Cloud CLI
- Cloud Bigtable 클라이언트 라이브러리
API에 직접 액세스할 수도 있지만 Cloud Bigtable 클라이언트 라이브러리에서 지원되지 않는 언어를 사용해야 하는 경우에만 액세스하는 것이 좋습니다.
시작하기 전에
개발자 또는 개발자가 사용 중인 사용자 계정에 수행해야 하는 작업에 필요한 권한이 있는지 확인합니다.
gcloud CLI를 사용하려는 경우 Bigtable용 gcloud CLI를 설치합니다.
자동 백업 사용
테이블을 만들거나 업데이트할 때 gcloud CLI를 사용하여 자동 백업을 사용 설정할 수 있습니다. 백업을 삭제, 업데이트, 복사, 복원하는 단계는 백업을 수동으로 만들든, 자동 백업의 결과로 생성하든 상관없이 동일합니다.
미리보기 중에 자동 백업을 사용 설정하려면 다음을 고려하세요.
- 자동 백업이 사용 설정된 테이블이 포함된 인스턴스에 클러스터가 추가되면 추가된 클러스터에는 일일 백업이 생성되지 않습니다. 새로 추가된 클러스터를 포함하여 모든 클러스터에서 일일 백업을 만들려면 테이블의 자동 백업을 사용 중지한 후 자동 백업을 다시 사용 설정합니다.
- 자동 백업이 사용 설정된 테이블이 삭제되고 나중에 삭제 취소된 경우 복구된 테이블에서 자동 백업을 다시 사용 설정해야 합니다.
- 테이블의 자동 백업을 복원해도 복원된 테이블에 자동 백업이 자동으로 사용 설정되지 않습니다. 자동 백업을 수동으로 사용 설정해야 합니다.
자동 백업 사용 설정
테이블에 자동 백업을 사용 설정하려면 gcloud bigtable instances
tables update
명령어를 실행합니다. 테이블을 만들 때 자동 백업을 사용 설정하는 방법에 대한 자세한 내용은 테이블 만들기를 참조하세요.
테이블에 자동 백업 정책을 사용 설정한 후 업데이트된 구성이 적용되는 데 최대 1시간이 걸릴 수 있습니다.
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--enable-automated-backup
다음을 바꿉니다.
- TABLE_ID: 백업할 테이블의 ID
- INSTANCE_ID: 인스턴스의 영구 식별자
인스턴스 ID를 모르면
bigtable instances list
명령어를 사용하여 프로젝트 인스턴스 목록을 확인합니다.gcloud bigtable instances list
테이블 목록을 확인하여 백업하려는 테이블의 ID를 확인합니다.
gcloud bigtable instances tables list --instances=INSTANCE_ID
자동 백업의 일부로 생성된 백업에는 auto
로 시작하는 ID가 할당됩니다. 예를 들어 ID가 my-table
인 테이블에는 auto.my-table.c7x3.20230220-1455
와 같은 자동 백업 ID가 있습니다. 여기서 my-table
은 잘린 테이블 ID이고, c7x3
은 고유한 해시 ID이고, 20230220-1455
는 UTC 형식의 날짜와 시간입니다.
자동 백업 사용 중지
기존 테이블의 자동 백업을 사용 중지하려면 gcloud bigtable
instances tables update
명령어를 실행합니다.
테이블에 자동 백업 정책이 사용 중지된 후 업데이트된 구성이 적용되는 데 최대 1시간이 걸릴 수 있습니다. 첫 번째 백업을 사용할 수 있기까지 최대 24시간이 걸릴 수 있습니다.
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--disable-automated-backup
다음을 바꿉니다.
- TABLE_ID: 테이블의 ID
- INSTANCE_ID: 인스턴스의 영구 식별자
자동 백업 정책 보기
테이블의 자동 백업 정책을 보려면 gcloud bigtable
instances tables describe
명령어를 실행합니다.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
다음을 바꿉니다.
- TABLE_ID: 테이블의 ID
- INSTANCE_ID: 인스턴스의 영구 식별자
결과는 다음과 유사합니다.
automatedBackupPolicy:
retentionPeriod: 3d
frequency: 24h
columnFamilies:
my-family: {}
createTime: '2023-02-07T20:10:55.613546Z'
granularity: MILLIS
name: projects/my-project/instances/my-instance/tables/my-table
updateTime: '2023-02-07T20:10:55.613546Z'
다음에 유의하세요.
- 테이블에 자동 백업이 사용 설정되지 않은 경우
automatedBackupPolicy
필드가 없습니다. retentionPeriod
는 자동으로 생성된 백업의 보관 기간을 나타냅니다. 백업의 보관 기간을 백업 생성 시점부터 최대 90일로 수정할 수 있습니다. 백업 보관 기간을 업데이트하려면 백업 수정을 참조하세요.
백업 만들기
콘솔
Google Cloud 콘솔에서 Bigtable 인스턴스 페이지로 이동합니다.
백업하려는 테이블이 포함된 인스턴스를 클릭합니다.
왼쪽 탐색창에서 테이블을 클릭합니다.
백업할 테이블의 백업 만들기를 클릭합니다.
복제를 사용하는 경우 드롭다운 메뉴를 사용하여 백업을 저장할 클러스터의 클러스터 ID를 선택합니다. 테이블 페이지에서 인스턴스 ID가 아닌 클러스터 ID 옆에 있는 백업 만들기를 클릭하면 클러스터가 사전 선택됩니다.
백업의 고유 ID를 입력합니다.
만료일을 설정합니다.
만들기를 클릭합니다.
콘솔에 백업 및 세부정보가 표시되도록 필터링된 백업 페이지가 표시됩니다.
활동을 클릭하여 백업 상태를 봅니다.
백업이 완료되면 상태 열에 백업 완료가 표시됩니다.
gcloud
모든 명령어에서 다음을 실제 값으로 바꿉니다.
- INSTANCE_ID: 인스턴스의 영구 식별자
- CLUSTER_ID: 클러스터의 영구 식별자
- TABLE_ID: 백업할 테이블의 ID
- BACKUP_ID: 백업에 할당한 ID
EXPIRATION_DATE: 'Zulu' UTC 타임스탬프 형식의 향후 90일 이내 날짜이며 나노초 수준의 정밀도를 나타냅니다.
예시:
2022-10-02T15:01:23.045123456Z
RETENTION_PERIOD: 최대 90일까지의 기간으로,
m
,h
또는d
단위(분, 시 또는 일)의 숫자로 표현됩니다.예시:
36h
또는89d
인스턴스 ID를 모르면
bigtable instances list
명령어를 사용하여 프로젝트 인스턴스 목록을 확인합니다.gcloud bigtable instances list
백업하려는 테이블이 포함된 인스턴스의 백업 목록을 봅니다. 그러면 의도한 클러스터에서 아직 사용하고 있지 않은 백업 ID를 선택할 수 있습니다.
gcloud bigtable backups list --instance=INSTANCE_ID \ --cluster=CLUSTER_ID
테이블 목록을 확인하여 백업하려는 테이블의 ID를 확인합니다.
gcloud bigtable instances tables list --instances=INSTANCE_ID
gcloud bigtable instances backups create 명령어를 실행하여 테이블에서 백업을 만들고 만료 날짜 또는 최대 90일의 보관 기간을 제공합니다.
gcloud bigtable backups create BACKUP_ID --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --table=TABLE_ID \ --async / --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD
--async
플래그는 선택사항입니다. 작업이 완료되기 전에 터미널에서 작업 ID를 반환하도록 하려는 경우에 사용합니다. 작업 상태를 확인하려는 경우에 유용합니다.백업이 생성되었는지 확인하려면 백업 목록을 확인합니다.
gcloud bigtable backups list --instance=INSTANCE_ID \ --cluster=CLUSTER_ID
백업이 나열되지 않으면 작업 상태를 확인합니다.
Ready
상태는 백업이 완료되었음을 나타냅니다.
백업에서 복원
콘솔
Google Cloud 콘솔을 사용하여 다른 프로젝트로 복원할 수 없습니다. 이 경우에는 대신 gcloud CLI를 사용합니다.
Google Cloud 콘솔에서 Bigtable 인스턴스 페이지로 이동합니다.
복원할 백업이 포함된 인스턴스를 클릭합니다.
왼쪽 탐색창에서 백업을 클릭합니다.
복원할 백업의 복원을 클릭합니다.
복원할 인스턴스를 선택합니다.
새 테이블을 저장하기에 스토리지가 충분하지 않은 인스턴스는 사용할 수 없습니다. 인스턴스에 테이블을 만들 수 있는 권한이 없으면 인스턴스를 사용할 수 없습니다.
아이콘 위로 마우스를 가져가면 자세한 정보가 표시됩니다.CMEK로 보호되는 백업에서 복원하는 경우 대상 인스턴스도 CMEK로 보호되어야 합니다.
Google Cloud 콘솔을 사용하여 다른 프로젝트로 복원할 수 없습니다. 필요한 경우 gcloud CLI를 대신 사용하세요.
백업에서 생성될 테이블의 고유 ID를 입력합니다. 나중에 ID를 변경할 수 없습니다.
복원을 클릭합니다.
콘솔에 새 테이블이 표시되도록 필터링된 테이블 페이지가 표시됩니다.
콘솔에는 각 클러스터의 복원 상태가 표시됩니다. 모든 클러스터의 상태 열에 준비가 표시되면 테이블이 복원되어 인스턴스의 모든 클러스터에 복제됩니다.
gcloud
모든 명령어에서 다음을 실제 값으로 바꿉니다.
- PROJECT_ID_SOURCE: 복원할 백업이 포함된 프로젝트의 ID입니다.
- INSTANCE_ID_SOURCE: 소스 인스턴스의 영구 ID입니다.
- PROJECT_ID_DESTINATION: 복원하려는 프로젝트의 ID입니다. 이 플래그는 선택사항입니다. 이 옵션을 지정하지 않으면 백업이 생성된 것과 동일한 인스턴스의 새 테이블로 복원됩니다.
- INSTANCE_ID_DESTINATION: 대상 인스턴스의 영구 ID입니다.
- CLUSTER_ID: 클러스터의 영구 식별자
- BACKUP_ID: 복원할 백업의 ID입니다.
- TABLE_ID_NEW: 새 테이블의 ID입니다.
인스턴스 ID를 모르면
bigtable instances list
명령어를 사용하여 프로젝트 인스턴스 목록을 확인합니다.gcloud bigtable instances list
백업이 포함된 인스턴스의 백업 목록을 확인하여 백업이 있는지 확인합니다.
gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE
대상 인스턴스의 테이블 목록을 확인하여 아직 사용하지 않는 새 테이블의 ID를 선택할 수 있습니다.
gcloud bigtable instances tables list --instances=INSTANCE_ID_DESTINATION
gcloud bigtable instances tables restore 명령어를 실행하여 백업에서 새 테이블로 복원합니다.
gcloud bigtable instances tables restore \ --source=projects/PROJECT_ID_SOURCE/instances/INSTANCE_ID_SOURCE/clusters/CLUSTER_ID/backups/BACKUP_ID \ --async \ --destination=TABLE_ID_NEW \ --destination-instance=INSTANCE_ID_DESTINATION \ --project=PROJECT_ID_DESTINATION
--async
플래그는 선택사항입니다. 작업이 완료되기 전에 터미널에서 작업 ID를 반환하도록 하려는 경우에 사용합니다. 작업 상태를 확인하려는 경우에 유용합니다.테이블 목록을 확인하여 테이블이 생성되었는지 확인합니다.
gcloud bigtable instances tables list --instances=INSTANCE_ID_DESTINATION
백업이 나열되지 않으면 작업 상태를 확인합니다.
백업 사본 만들기
콘솔
콘솔을 사용하여 다른 프로젝트에서 백업 사본을 만들 수 없습니다. 이 경우에는 대신 gcloud CLI를 사용합니다.
Google Cloud 콘솔에서 Bigtable 인스턴스 페이지로 이동합니다.
복사할 백업이 포함된 인스턴스를 클릭합니다.
왼쪽 탐색창에서 백업을 클릭합니다.
복사하려는 백업에서 복원 옆에 있는 더보기 메뉴를 펼친 후 복사를 클릭합니다.
복사할 백업에서 복사를 클릭합니다.
백업이 다른 백업의 사본인 경우 복사를 사용할 수 없습니다.
대상 인스턴스를 선택합니다.
콘솔을 사용하여 다른 프로젝트에서 백업 사본을 만들 수 없습니다. 이 경우에는 대신 gcloud CLI를 사용합니다.
백업 사본을 저장하기에 스토리지가 충분하지 않은 인스턴스는 사용할 수 없습니다. 인스턴스에 백업을 만들 수 있는 권한이 없으면 인스턴스를 사용할 수 없습니다. 자세한 내용을 보려면
아이콘 위로 포인터를 가져갑니다.CMEK로 보호되는 백업을 복사하는 경우 대상 인스턴스도 CMEK로 보호되어야 합니다.
대상 클러스터를 선택합니다.
백업과 마찬가지로 백업 사본은 해당 인스턴스가 복제를 사용하더라도 인스턴스의 한 클러스터에만 저장됩니다.
백업에서 생성될 사본의 고유 ID를 입력합니다. 나중에 ID를 변경할 수 없습니다.
백업 사본의 만료 시간을 설정하고 시간 값을 입력하고 드롭다운 메뉴에서 단위를 선택합니다.
복사를 클릭합니다.
사본을 보려면 사본 보기를 클릭합니다.
콘솔에 방금 만든 백업 사본으로 필터링된 대상 인스턴스의 백업 페이지가 표시됩니다. 상태 열에 준비가 표시되면 복사가 완료되어 추가 작업을 수행할 준비가 된 것입니다.
gcloud
모든 명령어에서 다음을 실제 값으로 바꿉니다.
- PROJECT_ID_SOURCE: 복사할 백업이 포함된 프로젝트입니다.
- INSTANCE_ID_SOURCE: 소스 인스턴스의 영구 ID입니다.
- CLUSTER_ID_SOURCE: 소스 백업이 저장된 클러스터의 ID입니다.
- BACKUP_ID_SOURCE: 복사할 백업의 ID입니다.
- PROJECT_ID_DESTINATION: 사본을 배치할 프로젝트입니다.
- INSTANCE_ID_DESTINATION: 대상 인스턴스의 영구 ID입니다.
- CLUSTER_ID_DESTINATION: 사본을 저장할 대상 인스턴스의 클러스터 ID입니다.
- BACKUP_ID_DESTINATION: 백업 사본에 할당하는 ID입니다.
- RETENTION_PERIOD: 백업 사본의 TTL(수명)이며, 숫자와 단위(d 또는 h)로 표시됩니다. 예를 들어 5일의 경우
5d
, 15시간의 경우15h
로 표시됩니다. 이 기간을 사용하거나 만료일을 사용합니다. - EXPIRATION_DATE: 백업 사본이 만료되는 날짜 및 시간으로,
2022-09-01T10:00:00.0Z
형식입니다.
인스턴스 ID를 모르면
bigtable instances list
명령어를 사용하여 프로젝트 인스턴스 목록을 확인합니다.gcloud bigtable instances list
백업이 포함된 소스 인스턴스의 백업 목록을 보고 복사하려는 백업이 있는지 확인합니다.
gcloud bigtable backups list --instance=INSTANCE_ID_SOURCE \ --cluster=CLUSTER_ID_SOURCE
아직 사용하지 않은 사본의 ID를 선택할 수 있도록 대상 인스턴스의 백업 목록을 확인합니다.
gcloud bigtable backups list --instances=DESTINATION_INSTANCE
gcloud bigtable instances backups copy 명령어를 실행하여 백업 사본을 만듭니다.
gcloud bigtable backups copy \ --source-project=PROJECT_ID_SOURCE \ --source-instance=INSTANCE_ID_SOURCE \ --source-cluster=CLUSTER_ID_SOURCE \ --source-backup=BACKUP_ID_SOURCE \ --destination-project=PROJECT_ID_DESTINATION \ --destination-instance=INSTANCE_ID_DESTINATION \ --destination-cluster=CLUSTER_ID_DESTINATION \ --destination-backup=BACKUP_ID_DESTINATION \
명령어에 다음 중 하나를 추가합니다.
--retention-period
`=RETENTION_PERIOD: 백업 사본의 보관 기간입니다. 소스 백업이 생성된 시간으로부터 최소 6시간부터 최대 30일 사이여야 합니다.--expiration-date
`=EXPIRATION_DATE: 백업 사본의 만료 시간입니다. 소스 백업이 생성된 시간으로부터 최소 6시간부터 최대 30일 사이여야 합니다.
원하는 경우 명령어에
--async
를 추가할 수 있습니다. 작업이 완료되기 전에 터미널에서 작업 ID를 반환하도록 하려는 경우에 사용합니다. 작업 상태를 확인하려는 경우에 유용합니다.제한 시간 메시지가 반환되면 백업이 성공했고 사본이 생성되었을 수 있습니다.
사본이 생성되었는지 확인하려면 백업 목록을 확인합니다.
gcloud bigtable backups list --instances=INSTANCE_ID_DESTINATION
백업이 나열되지 않으면 작업 상태를 확인합니다.
드물지만 용량 제한으로 인해 백업 복사 작업이 실패하는 경우 다른 대상 클러스터로 다시 시도하세요. 이 작업도 실패하면 지원팀에 문의하세요.
작업 상태 확인
콘솔
Google Cloud 콘솔에서 Bigtable 인스턴스 페이지로 이동합니다.
백업이 포함된 인스턴스를 클릭합니다.
왼쪽 탐색창에서 백업을 클릭합니다.
백업 페이지에서 활동을 클릭합니다. 상태 열에는 각 작업의 현재 상태가 표시됩니다.
테이블을 복원할 때의 작업 상태는 다음과 같습니다.
- 복사 대기 중
- 백업 복원 중
- 초기화 중
- 최적화 준비 중
- 준비됨
백업을 만들 때의 작업 상태로는 다음이 포함됩니다.
- 백업 생성 중
- 백업 완료
백업을 복사할 때의 작업 상태로는 다음이 포함됩니다.
- 백업 복사 중
- 백업 복사됨
gcloud
백업 또는 복원 작업의 상태를 확인하려면 작업의 고유 ID가 필요합니다. 다음은 작업 ID의 예시입니다.
`instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635`
--async
옵션을 사용하여 백업을 만들거나 새 테이블에 복원하는 명령어를 실행하면 터미널에 작업 ID가 표시됩니다.
작업 ID를 복사합니다.
gcloud bigtable operations describe 명령어를 실행하고
OPERATION_ID
를 복사한 값으로 바꿉니다.gcloud bigtable operations describe OPERATION_ID
예를 들면 다음과 같습니다.
gcloud bigtable operations describe \ instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
DONE
값이TRUE
가 될 때까지 몇 분 간격으로 이 명령어를 실행할 수 있습니다.
명령어를 실행하지 않았거나 다른 터미널 창에 있어 작업 ID를 모르는 경우 인스턴스의 작업 목록을 보고 어떤 작업을 확인할지 결정할 수 있습니다.
백업하거나 복원하려는 테이블이 포함된 인스턴스의 최근 작업 활동 목록을
INSTANCE_ID
의 인스턴스 ID로 바꿉니다.gcloud bigtable operations list --instance=INSTANCE_ID
터미널에
NAME
,START_TIME
,END_TIME
,DONE
라벨이 지정된 열에 작업 목록이 표시됩니다.NAME
열의 값은 작업 ID입니다.목록의 첫 번째 항목부터 작업 ID를 복사합니다.
gcloud bigtable operations describe를 사용하여 작업의 메타데이터를 봅니다.
gcloud bigtable operations describe OPERATION_ID
예를 들면 다음과 같습니다.
gcloud bigtable operations describe \ instances/instance-name/tables/table-name/locations/us-east1-b/operations/917168358249360635
작업의 메타데이터에
backupInfo
값이 표시이 표시되면 작업이 올바르게 수행되었고DONE
의 값이TRUE
가 될 때까지 이 명령어를 종종 반복할 수 있습니다.메타데이터에
backupInfo
의 값이 표시되지 않으면 1단계에 표시된 작업 목록에서 다음 작업을 확인합니다.
백업 또는 백업 사본 수정
콘솔
Google Cloud 콘솔에서는 사본을 포함하여 백업을 수정할 수 없습니다.
gcloud
gcloud CLI를 사용하면 백업 또는 백업 사본의 만료 날짜 또는 기간을 수정할 수 있습니다.
모든 명령어에서 다음을 실제 값으로 바꿉니다.
- INSTANCE_ID: 인스턴스의 영구 식별자
- CLUSTER_ID: 클러스터의 영구 식별자
- BACKUP_ID: 백업의 고유 ID입니다.
EXPIRATION_DATE: 'Zulu' UTC 타임스탬프 형식의 향후 90일 이내 날짜이며 나노초 수준의 정밀도를 나타냅니다.
예시:
2019-10-02T15:01:23.045123456Z
RETENTION_PERIOD: 최대 90일까지의 기간으로,
m
,h
또는d
단위(분, 시 또는 일)의 숫자로 표현됩니다._Examples_: `36h` or `89d`
백업 목록을 봅니다.
gcloud bigtable backups list --instance=INSTANCE_ID
터미널에 백업 목록이 표시됩니다.
백업과 업데이트해야 하는 백업의 클러스터 ID를 기록해 둡니다.
gcloud bigtable instances backups update 명령어를 실행하여 새 만료 날짜 또는 새 보관 기간을 추가합니다.
gcloud bigtable backups update BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID \ --expiration-date=EXPIRATION_DATE \ --retention-period=RETENTION_PERIOD
gcloud bigtable instances backups describe 명령어를 실행하여 만료 날짜가 성공적으로 업데이트되었는지 확인합니다.
gcloud bigtable backups describe BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID ```
백업 삭제
사본을 만든 후 백업을 삭제하려면 상태를 확인하여 복사 작업이 완료되었는지 확인하세요.
콘솔
Google Cloud 콘솔에서 Bigtable 인스턴스 페이지로 이동합니다.
백업이 포함된 인스턴스를 클릭합니다.
왼쪽 탐색창에서 백업을 클릭합니다.
삭제해야 하는 백업의 경우 복원 옆에 있는 더보기 메뉴를 펼친 후 삭제를 클릭합니다.
삭제 확인 필드에 백업 ID를 입력한 후 삭제를 클릭합니다.
gcloud
백업 목록을 봅니다. 이때
INSTANCE_ID
를 인스턴스 ID로 바꿉니다.gcloud bigtable backups list --instance=INSTANCE_ID
터미널에 백업 목록이 표시됩니다.
백업 ID와 저장된 클러스터의 ID를 기록해 둡니다.
gcloud bigtable instances backups delete 명령어를 실행하고
BACKUP_ID
를 확인된 백업 ID로 바꾸고CLUSTER_ID
를 클러스터 ID로 바꿉니다.gcloud bigtable backups delete BACKUP_ID \ --instance=INSTANCE_ID \ --cluster=CLUSTER_ID