이 페이지에서는 gcloud spanner operations
명령어와 작업 REST API를 사용하여 Spanner 장기 실행 작업의 수명 주기를 관리하는 방법을 설명합니다. 일부 절차는 Google Cloud 콘솔에서도 수행할 수 있습니다.
장기 실행 작업은 완료하는 데 상당한 시간이 걸릴 수 있는 메서드 호출입니다. Spanner는 여러 인스턴스, 데이터베이스, 백업 작업에 대해 장기 실행 작업을 생성합니다. 데이터베이스를 복원하는 메서드 projects.instances.databases.restore
가 한 가지 예시입니다.
데이터베이스를 복원할 때 Spanner 서비스는 장기 실행 작업을 생성하여 복원 진행 상황을 추적합니다. 작업이 예상보다 오래 걸리는 경우 gcloud
를 사용하여 작업 진행 상황을 확인할 수 있습니다. 작업이 응답하지 않으면 gcloud
를 사용하여 작업을 취소할 수 있습니다.
Spanner는 장기 실행 작업 진행 상황을 확인할 수 있는 작업 API를 제공합니다. 장기 실행 작업을 나열 및 취소하고 장기 실행 인스턴스 작업을 삭제할 수도 있습니다.
다음을 사용하여 장기 실행 작업을 확인하고 관리할 수 있습니다.
작업 관리를 위한 REST API 명령어
Spanner 장기 실행 작업은 다음과 같은 REST 메서드를 사용하여 관리합니다.
작업 | 장기 실행 데이터베이스 작업 | 장기 실행 인스턴스 작업 |
---|---|---|
장기 실행 작업 취소 | cancel |
cancel |
장기 실행 작업 삭제 | 지원되지 않음 | delete |
장기 실행 작업 진행 상황 확인 | get |
get |
장기 실행 작업 나열 | list |
list |
Spanner에서 REST를 사용하는 방법에 대한 자세한 내용은 REST를 사용하여 Spanner 시작하기를 참조하세요.
인스턴스 작업
다음은 장기 실행 인스턴스 작업입니다.
장기 실행 인스턴스 작업 진행 상황 확인
projects.instances.operations.get
을 사용하여 장기 실행 인스턴스 작업의 진행 상황을 확인하세요.
예를 들어 다음은 projects.instances.create
의 응답입니다.
{
"name": "projects/test01/instances/test-instance/operations/_auto_1492721321097206",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceMetadata",
"instance": {
"name": "projects/<VAR>PROJECT-ID</VAR>/instances/test-instance",
"config": "projects/<VAR>PROJECT-ID</VAR>/instanceConfigs/regional-us-central1",
"displayName": "Test Instance",
"nodeCount": 1,
"state": "READY"
},
"startTime": "2017-04-24T22:45:41.130854Z"
}
}
응답 맨 위의 name
값은 Spanner 서비스가 projects/test01/instances/test-instance/operations/_auto_1492721321097206
라는 장기 실행 인스턴스 작업을 생성했음을 보여줍니다.
장기 실행 인스턴스 작업 진행 상황을 확인하려면 다음 안내를 따르세요.
projects.instances.operations.get
로 이동합니다.이름에
projects.instances.create
또는projects.instances.patch
에 대한 응답에 표시된 장기 실행 인스턴스 작업 이름을 입력합니다. 예를 들면 다음과 같습니다.projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
장기 실행 인스턴스 작업을 나열하여 인스턴스 작업 이름을 가져올 수 있습니다.
실행을 클릭합니다. 작업이 완료되면
done
필드가true
로 설정됩니다.
지속적인 업데이트를 받으려면 작업이 완료될 때까지 projects.instances.databases.operations.get
메서드를 반복적으로 호출합니다. 각 요청 사이에 백오프를 사용합니다. 예를 들어 10초마다 요청합니다.
장기 실행 인스턴스 작업 나열
projects.instances.operations.list
를 사용하여 장기 실행 인스턴스 작업을 나열할 수 있습니다.
projects.instances.operations.list
로 이동합니다.이름에 다음을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/operationsOPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
실행을 클릭합니다. 응답에 장기 실행 작업 목록이 포함됩니다.
장기 실행 인스턴스 작업 취소
projects.instances.operations.cancel
을 사용하여 장기 실행 인스턴스 작업을 취소할 수 있습니다.
projects.instances.operations.cancel
로 이동합니다.이름에 장기 실행 인스턴스 작업 응답에 표시된 장기 실행 인스턴스 작업 이름을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/operations/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
또한 장기 실행 인스턴스 작업을 나열하여 인스턴스 작업 이름을 검색할 수 있습니다.
실행을 클릭합니다.
장기 실행 인스턴스 작업 삭제
projects.instances.operations.delete
를 사용하여 장기 실행 인스턴스 작업을 삭제할 수 있습니다.
projects.instances.operations.delete
를 클릭합니다.이름에 장기 실행 인스턴스 작업 응답에 표시된 장기 실행 인스턴스 작업 이름을 입력합니다.
projects/<VAR>PROJECT-ID</VAR>/instances/<VAR>INSTANCE-NAME</VAR>/operations/<VAR>OPERATION-ID</VAR>
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
또한 장기 실행 인스턴스 작업을 나열하여 인스턴스 작업 이름을 검색할 수 있습니다.
실행으로 이동합니다. 작업이 삭제됩니다.
데이터베이스 작업
다음은 장기 실행 데이터베이스 작업입니다.
projects.instances.databases.create
projects.instances.databases.restore
projects.instances.databases.updateDdl
projects.instances.databaseOperations.list
장기 실행 데이터베이스 작업 진행 상황 확인
projects.instances.databases.operations.get
을 사용하여 장기 실행 데이터베이스 작업 진행 상황을 확인합니다.
예를 들어 다음은 projects.instances.databases.create
의 응답입니다.
{
"name": "projects/test01/instances/test-instance/databases/example-db/operations/_auto_1492721321097206",
"metadata": {
"@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateDatabaseMetadata",
"database": "projects/test01/instances/test-instance/databases/example-db"
}
}
응답 맨 위의 name
값은 Spanner 서비스가 projects/test01/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
라는 장기 실행 인스턴스 작업을 생성했음을 보여줍니다.
장기 실행 데이터베이스 작업 진행 상황을 확인하려면 다음 안내를 따르세요.
이름에
projects.instances.databases.create
또는projects.instances.databases.updateDdl
에 대한 응답에 표시된 장기 실행 데이터베이스 작업 이름을 입력합니다.projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
또한 장기 실행 데이터베이스 작업을 나열하여 데이터베이스 작업 이름을 검색할 수 있습니다.
실행을 클릭합니다. 작업이 완료되면
done
필드가true
로 설정됩니다.
지속적인 업데이트를 받으려면 작업이 완료될 때까지 projects.instances.databases.operations.get
메서드를 반복적으로 호출합니다. 각 요청 사이에 백오프를 사용합니다. 예를 들어 10초마다 요청합니다.
장기 실행 데이터베이스 작업 나열
projects.instances.databases.operations.list
를 사용하여 장기 실행 데이터베이스 작업을 나열할 수 있습니다.
projects.instances.databases.operations.list
로 이동합니다.이름에 다음을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
실행을 클릭합니다. 응답에 장기 실행 작업 목록이 포함됩니다.
장기 실행 데이터베이스 작업 취소
projects.instances.databases.operations.cancel
을 사용하여 장기 실행 데이터베이스 작업을 취소합니다.
projects.instances.databases.operations.cancel
로 이동합니다.이름에 장기 실행 데이터베이스 작업 응답에 표시된 장기 실행 데이터베이스 작업 이름을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
또한 장기 실행 데이터베이스 작업을 나열하여 데이터베이스 작업 이름을 검색할 수 있습니다.
실행을 클릭합니다.
스키마 업데이트 작업
다음은 장기 실행 스키마 업데이트 작업입니다.
장기 실행 스키마 업데이트 작업 진행 상황 확인
콘솔
Spanner 탐색 메뉴에서 작업 탭을 선택합니다. 작업 페이지에 실행 중인 작업 목록이 표시됩니다.
목록에서 스키마 작업을 찾습니다. 아직 실행 중이면 다음 이미지와 같이 종료 시간 열의 진행률 표시줄에 완료된 작업의 비율이 표시됩니다.
gcloud
gcloud spanner operations describe
를 사용하여 작업 진행 상황을 확인합니다.
작업 ID를 가져옵니다.
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 인스턴스의 이름
- DATABASE-NAME: 데이터베이스의 이름
gcloud spanner operations describe
를 실행합니다.gcloud spanner operations describe OPERATION-ID \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
다음을 바꿉니다.
- OPERATION-ID: 확인할 작업의 작업 ID
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: Spanner 데이터베이스 이름
출력의
progress
섹션에 완료된 작업의 비율이 표시됩니다. 결과는 다음과 유사합니다.done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
작업 ID를 가져옵니다.
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 데이터베이스의 이름
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-ID: 인스턴스 ID입니다.
- DATABASE-ID: 데이터베이스 ID
- OPERATION-ID: 작업 ID
HTTP 메서드 및 URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
작업에 시간이 너무 오래 걸리는 경우 취소할 수 있습니다. 자세한 내용은 장기 실행 스키마 업데이트 작업 취소를 참조하세요.
장기 실행 스키마 업데이트 작업 나열
gcloud
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 데이터베이스의 이름
결과는 다음과 유사합니다.
OPERATION-ID STATEMENTS DONE @TYPE
_auto_op_123456 CREATE INDEX SingersByFirstLastName ON Singers(FirstName, LastName) False UpdateDatabaseDdlMetadata
_auto_op_234567 CREATE INDEX SongsBySingerAlbumSongName ON Songs(SingerId, AlbumId, SongName), INTERLEAVE IN Albums True CreateDatabaseMetadata
장기 실행 스키마 업데이트 작업 취소
gcloud
작업 ID를 가져옵니다.
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 데이터베이스의 이름
gcloud spanner operations cancel
을 사용하여 장기 실행 스키마 업데이트 작업을 취소합니다.gcloud spanner operations cancel OPERATION-ID \ --instance=INSTANCE-NAME
다음을 바꿉니다.
- OPERATION-ID: 확인할 작업의 작업 ID
- INSTANCE-NAME: Spanner 인스턴스 이름
REST V1
projects.instances.databases.operations.cancel
을 사용하여 장기 실행 스키마 업데이트 작업을 취소할 수 있습니다.
작업 ID를 가져옵니다.
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 데이터베이스의 이름
이름에 장기 실행 스키마 업데이트 작업 응답에 표시된 장기 실행 스키마 업데이트 작업 이름을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/databases/example-db/operations/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- OPERATION-ID: 작업 ID
또한 장기 실행 인스턴스 작업을 나열하여 스키마 업데이트 작업 이름을 검색할 수 있습니다.
실행을 클릭합니다. 작업 실행이 중지됩니다.
백업 및 복원 작업
다음은 장기 실행 백업 작업입니다.
장기 실행 백업 또는 복원 작업 진행 상황 확인
콘솔
백업
Spanner 탐색 메뉴에서 작업 탭을 선택합니다. 작업 페이지에 현재 실행 중인 작업 목록이 표시됩니다.
목록에서 스키마 작업을 찾습니다. 아직 실행 중이면 다음 이미지와 같이 종료 시간 열의 진행률 표시줄에 완료된 작업의 비율이 표시됩니다.
복원
복원 작업 진행 상황을 확인하려면 다음 이미지와 같이 복원 중에 표시되는 진행률 표시기를 확인합니다.
작업에 시간이 너무 오래 걸리는 경우 취소할 수 있습니다. 자세한 내용은 장기 실행 인스턴스 작업 취소를 참조하세요.
gcloud
gcloud spanner operations describe
을 사용하여 백업 또는 복원 작업 진행 상황을 확인합니다.
작업 ID를 가져옵니다.
gcloud spanner operations list \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME \ --type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 데이터베이스의 이름
gcloud spanner operations describe
를 실행합니다.gcloud spanner operations describe OPERATION-ID \ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
다음을 바꿉니다.
- OPERATION-ID: 확인할 작업의 작업 ID
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: Spanner 데이터베이스 이름
출력의
progress
섹션에 완료된 작업의 비율이 표시됩니다. 결과는 다음과 유사합니다.done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
작업 ID를 가져옵니다.
gcloud spanner operations list
--instance=INSTANCE-NAME
--database=DATABASE-NAME
--type=DATABASE_UPDATE_DDL
다음을 바꿉니다.
- INSTANCE-NAME: Spanner 인스턴스 이름
- DATABASE-NAME: 데이터베이스의 이름
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-ID: 인스턴스 ID입니다.
- DATABASE-ID: 데이터베이스 ID
- OPERATION-ID: 작업 ID
HTTP 메서드 및 URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
작업에 시간이 너무 오래 걸리는 경우 취소할 수 있습니다. 자세한 내용은 장기 실행 백업 작업 취소를 참조하세요.
장기 실행 백업 또는 복원 작업 나열
projects.instances.backups.operations.list
를 사용하여 단일 백업의 작업을 나열하거나 projects.instances.backupOperations.list
를 사용하여 인스턴스의 모든 백업 작업을 나열합니다.
이름에 다음을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- BACKUP-NAME: 백업의 이름
- OPERATION-ID: 작업 ID
실행을 클릭합니다. 응답에 장기 실행 작업 목록이 포함됩니다.
장기 실행 백업 작업 취소
projects.instances.backups.operations.cancel
을 사용하여 장기 실행 백업 작업을 취소합니다.
이름에 장기 실행 백업 작업 응답에 표시된 장기 실행 백업 작업 이름을 입력합니다.
projects/PROJECT-ID/instances/INSTANCE-NAME/backups/BACKUP-NAME/operations/OPERATION-ID
다음을 바꿉니다.
- PROJECT-ID: 프로젝트 ID
- INSTANCE-NAME: 인스턴스의 이름
- BACKUP-NAME: 백업의 이름
- OPERATION-ID: 작업 ID
장기 실행 백업 작업 나열을 통해 백업 작업 이름을 검색할 수도 있습니다.
실행을 클릭합니다.