PITR(point-in-time recovery)을 사용하여 인스턴스가 활성 상태인지 또는 삭제되었는지 여부에 관계없이 기본 Cloud SQL 인스턴스를 복원할 수 있습니다. PITR을 사용하면 인스턴스를 특정 시점으로 복원할 수 있습니다. PITR은 항상 새로운 인스턴스를 만듭니다. 즉, 기존 인스턴스에는 PITR을 수행할 수 없습니다.
Cloud SQL은 PITR을 사용하여 인스턴스를 복원하는 다음 옵션을 제공합니다.
사용할 수 없거나 삭제된 인스턴스에서 PITR을 수행하려면 최근 및 가장 이른 복구 시간을 찾아야 합니다.
PITR 수행
콘솔
-
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 복구할 인스턴스의 추가 작업 메뉴(
)를 열고 클론 만들기를 클릭합니다. - 필요한 경우 클론 만들기 페이지에서 새 클론의 ID를 업데이트합니다.
- 이전 시점에서 클론을 선택합니다.
- PITR 시간을 입력합니다.
- 모든 데이터베이스를 선택하거나 데이터베이스 이름을 지정합니다.
데이터베이스 이름을 지정하는 경우 하나만 선택할 수 있습니다. 기본적으로 PITR은 모든 데이터베이스에서 사용됩니다. - 클론 만들기를 클릭합니다.
gcloud
PITR을 사용하여 클론을 만듭니다.
다음을 바꿉니다.
- SOURCE_INSTANCE_NAME - 복원할 인스턴스의 이름
- NEW_INSTANCE_NAME - 클론 이름
- TIMESTAMP - RFC 3339 형식의 소스 인스턴스 UTC 시간대. 예를 들면 2012-11-15T16:19:00.094Z입니다.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'
REST v1
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- target-instance-id: 대상 인스턴스 ID
- source-instance-id: 소스 인스턴스 ID
- restore-timestamp 복원할 특정 시점
JSON 요청에서 최대 1개의 특정 데이터베이스 이름을 "databaseNames": "my-database"로 지정할 수 있습니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
JSON 요청 본문:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"pointInTime": "restore-timestamp"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
REST v1beta4
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- target-instance-id: 대상 인스턴스 ID
- source-instance-id: 소스 인스턴스 ID
- restore-timestamp 복원할 특정 시점
JSON 요청에서 최대 1개의 특정 데이터베이스 이름을 "databaseNames": "my-database"로 지정할 수 있습니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
JSON 요청 본문:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"pointInTime": "restore-timestamp"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
Backup Vault를 사용하여 PITR 수행
Cloud SQL 인스턴스에서 고급 백업을 사용하도록 설정된 경우 Backup Vault를 사용하여 인스턴스의 PITR(point-in-time recovery)을 수행할 수 있습니다. Backup Vault가 인스턴스와 다른 리전에 있는 경우 소스 인스턴스와 동일한 리전의 새 인스턴스로만 PITR을 수행할 수 있습니다. 자세한 내용은 리전 간 백업을 참조하세요.
콘솔
Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
복구할 인스턴스의 추가 작업 메뉴
를 열고 클론 만들기를 클릭합니다.이전 시점에서 클론을 선택합니다.
PITR 시간을 입력합니다.
클론 만들기를 클릭합니다.
gcloud
Backup Vault에서 인스턴스에 PITR을 수행하려면 대상 PITR 시간에 가장 가까운 백업의 data-source를 찾아야 합니다. 정확한 데이터 소스를 모르거나 데이터 소스가 여러 개 있는 경우 PITR의 데이터 소스 찾기 및 검증을 참조하세요.
데이터 소스를 식별한 후 gcloud sql instances point-in-time-restore 명령어를 실행합니다.
gcloud sql instances point-in-time-restore DATA_SOURCE \
TARGET_INSTANCE_NAME \
'PITR_TIMESTAMP' \
--project=TARGET_PROJECT \
--region=REGION
다음을 바꿉니다.
DATA_SOURCE: 복구하려는 PITR 타임스탬프에 가장 가까운 소스 인스턴스의data-source경로TARGET_INSTANCE_NAME: PITR 작업으로 생성되는 새 인스턴스의 이름입니다.PITR_TIMESTAMP: 인스턴스를 복원할 소스 인스턴스 PITR 로그의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2025-11-15T16:19:00.094Z입니다.TARGET_PROJECT: 새 인스턴스의 프로젝트 ID입니다.REGION: 대상 인스턴스의 리전입니다. 소스 인스턴스의 데이터 소스가 멀티 리전 또는 소스 인스턴스와 다른 리전에 있는 경우 이 필드는 필수입니다. 대상 인스턴스 리전은 소스 인스턴스의 리전과 동일해야 합니다.
REST v1
Backup Vault의 데이터 소스를 사용하여 PITR(point-in-time recovery)을 수행하려면 POST 요청과 함께 instances.pointInTimeRestore 메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 새 인스턴스를 만들려는 프로젝트의 ID입니다.
- DATASOURCE: 서비스에서 point-in-time recovery 작업에 사용할 백업 및 DR 데이터 소스입니다.
- PITR_TIMESTAMP: 인스턴스를 복원할 소스 인스턴스 PITR 로그의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2012-11-15T16:19:00.094Z입니다.
- TARGET_INSTANCE_NAME: PITR 작업으로 생성된 인스턴스의 이름입니다.
- REGION: 대상 인스턴스의 리전입니다. 소스 인스턴스의 데이터 소스가 멀티 리전에 있는 경우 이 필드는 필수입니다. 대상 인스턴스 리전은 소스 인스턴스의 리전과 동일해야 합니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID:pointInTimeRestore
JSON 요청 본문:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
REST v1beta4
Backup Vault의 데이터 소스를 사용하여 PITR(point-in-time recovery)을 수행하려면 POST 요청과 함께 instances.pointInTimeRestore 메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 새 인스턴스를 만들려는 프로젝트의 ID입니다.
- DATASOURCE: 서비스에서 point-in-time recovery 작업에 사용할 백업 및 DR 데이터 소스입니다.
- PITR_TIMESTAMP: 인스턴스를 복원할 소스 인스턴스 PITR 로그의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2012-11-15T16:19:00.094Z입니다.
- TARGET_INSTANCE_NAME: PITR 작업으로 생성된 인스턴스의 이름입니다.
- REGION: 대상 인스턴스의 리전입니다. 소스 인스턴스의 데이터 소스가 멀티 리전에 있는 경우 이 필드는 필수입니다. 대상 인스턴스 리전은 소스 인스턴스의 리전과 동일해야 합니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID:pointInTimeRestore
JSON 요청 본문:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
프로젝트 간 PITR 수행
고급 백업을 사용하면 소스 인스턴스 또는 Backup Vault가 있는 프로젝트가 아닌 다른 프로젝트로 Cloud SQL 인스턴스를 복원할 수 있습니다.
프로젝트 간 PITR은 gcloud CLI 및 REST API를 통해서만 지원됩니다.
교차 프로젝트 PITR을 수행하려면 다음 중 하나를 수행합니다.
gcloud CLI를 사용하는 경우
--project플래그를 대상 인스턴스를 만들려는 프로젝트로 설정합니다.REST API를 사용하는 경우
PROJECT_ID필드를 대상 인스턴스를 만들려는 프로젝트로 설정합니다.
삭제된 인스턴스에서 PITR 수행
PITR을 사용하여 삭제된 인스턴스를 복원하려면 다음이 필요합니다.
- 인스턴스를 복원할 PITR 타임스탬프(
timestamp) - 대상 인스턴스 이름
- 소스 인스턴스가 삭제된 시간(
source-instance-deletion-time)
gcloud CLI 또는 Cloud SQL API만 사용하여 삭제된 인스턴스에서 PITR을 사용할 수 있습니다. 자세한 내용은 PITR을 사용하여 삭제된 인스턴스 복원을 참조하세요.
gcloud
표준 백업
PITR 기간 찾기
삭제된 인스턴스의 PITR 기간을 찾으려면 인스턴스의 가장 이른 복구 시간과 가장 늦은 복구 시간을 가져옵니다. 이 창에서 언제든지 타임스탬프를 선택하여 PITR을 수행할 수 있습니다.
소스 인스턴스 삭제 찾기
삭제된 인스턴스의 source-instance-deletion-time 및 log-retention-days는 삭제 후 인스턴스의 보관된 백업과 함께 저장됩니다. 삭제된 인스턴스에 사용할 수 있는 모든 백업 목록을 찾으려면 보관된 백업 나열을 참조하세요.
사용할 백업을 식별한 후 gcloud sql backups describe 명령어를 사용하여 source-instance-deletion-time를 가져옵니다.
PITR을 사용하여 복원
PITR을 사용하여 삭제된 인스턴스를 복원하려면 다음 명령어를 실행합니다.
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time='PITR_TIMESTAMP' \
--source-instance-deletion-time=SOURCE_INSTANCE_DELETION_TIMESTAMP
다음을 바꿉니다.
SOURCE_INSTANCE_NAME: 복원하려는 소스 인스턴스의 이름입니다.NEW_INSTANCE_NAME: 새 인스턴스의 이름PITR_TIMESTAMP: 인스턴스를 복원할 소스 인스턴스 PITR 로그의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2012-11-15T16:19:00.094Z입니다.SOURCE_INSTANCE_DELETION_TIMESTAMP: 소스 인스턴스가 삭제된 시간의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2012-11-15T16:19:00.094Z입니다.
고급 백업
PITR 기간 찾기
삭제된 인스턴스의 PITR 기간을 찾으려면 인스턴스의 가장 이른 복구 시간과 가장 늦은 복구 시간을 가져옵니다. 이 창에서 언제든지 타임스탬프를 선택하여 PITR을 수행할 수 있습니다.
데이터 소스 찾기
삭제된 인스턴스의 데이터 소스는 삭제 후 인스턴스의 보관된 백업과 함께 저장됩니다. 삭제된 인스턴스의 이러한 값을 찾으려면 인스턴스의 Backup Vault에 있는 모든 백업 나열 또는 PITR의 데이터 소스 찾기 및 검증을 참조하세요.
PITR을 사용하여 복원
PITR을 사용하여 삭제된 인스턴스를 복원하려면 다음 명령어를 실행합니다.
gcloud sql instances point-in-time-restore DATA_SOURCE \
TARGET_INSTANCE_NAME \
'PITR_TIMESTAMP' \
--project=TARGET_PROJECT \
--region=REGION
다음을 바꿉니다.
DATA_SOURCE: 복구하려는 PITR 타임스탬프에 가장 가까운 백업의data-source경로TARGET_INSTANCE_NAME: PITR 작업으로 생성되는 새 인스턴스의 이름입니다.PITR_TIMESTAMP: 인스턴스를 복원할 소스 인스턴스 PITR 로그의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2025-11-15T16:19:00.094Z입니다.TARGET_PROJECT: 새 인스턴스의 프로젝트 ID입니다.REGION: 대상 인스턴스의 리전입니다. 소스 인스턴스의 데이터 소스가 멀티 리전에 있거나 소스 인스턴스와 다른 리전에 있는 경우 이 필드는 필수입니다. 대상 인스턴스 리전은 소스 인스턴스의 리전과 동일해야 합니다.
REST v1
PITR 기간 찾기
삭제된 인스턴스의 PITR 기간을 찾으려면 인스턴스의 가장 이른 복구 시간과 가장 늦은 복구 시간을 가져옵니다. 이 창에서 언제든지 타임스탬프를 선택하여 PITR을 수행할 수 있습니다.
소스 인스턴스 삭제 시간 및 로그 보관 일수 찾기
삭제된 인스턴스의 source-instance-deletion-time 및 log-retention-days는 삭제 후 인스턴스의 보관된 백업과 함께 저장됩니다. 삭제된 인스턴스의 이러한 값을 찾으려면 보관된 백업 나열을 참조하세요.
PITR을 사용하여 복원
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- target-instance-id: 대상 인스턴스 ID
- source-instance-id: 소스 인스턴스 ID
- source-instance-deletion-time: 소스 인스턴스의 삭제 시간
- restore-timestamp: 인스턴스를 복원할 특정 시점
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
JSON 요청 본문:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
REST v1beta4
PITR 기간 찾기
삭제된 인스턴스의 PITR 기간을 찾으려면 인스턴스의 가장 이른 복구 시간과 가장 늦은 복구 시간을 가져옵니다. 이 기간의 타임스탬프를 선택하여 PITR을 수행할 수 있습니다.
소스 인스턴스 삭제 시간 및 로그 보관 일수 찾기
삭제된 인스턴스의 source-instance-deletion-time 및 log-retention-days는 삭제 후 인스턴스의 보관된 백업과 함께 저장됩니다. 삭제된 인스턴스의 이러한 값을 찾으려면 보관된 백업 나열을 참조하세요.
PITR을 사용하여 복원
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- project-id: 프로젝트 ID
- target-instance-id: 대상 인스턴스 ID
- source-instance-id: 소스 인스턴스 ID
- source-instance-deletion-time: 소스 인스턴스의 삭제 시간
- restore-timestamp: 인스턴스를 복원할 특정 시점
JSON 요청에서 최대 1개의 특정 데이터베이스 이름을 "databaseNames": "my-database"로 지정할 수 있습니다.
HTTP 메서드 및 URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
JSON 요청 본문:
{
"cloneContext":
{
"kind": "sql#cloneContext",
"destinationInstanceName": "target-instance-id",
"sourceInstanceDeletionTime: "source-instance-deletion-time",
"pointInTime": "restore-timestamp"
}
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
가장 이른 복구 시간과 가장 늦은 복구 시간 확인
사용 가능한 인스턴스의 경우 인스턴스의 PITR 기간에 있는 모든 타임스탬프로 PITR을 수행할 수 있습니다. PITR 기간은 가장 이른 복구 시간에 시작되고 가장 늦은 복구 시간에 종료됩니다. 인스턴스를 사용할 수 없고 인스턴스 로그가 Cloud Storage에 저장되거나 인스턴스가 삭제되고 PITR 보관이 사용 설정된 경우 가장 이른 복구 시간과 가장 늦은 복구 시간을 검색하고 해당 기간의 타임스탬프로 PITR을 수행할 수 있습니다. 모든 경우에 선호하는 영역의 값을 제공하여 다른 기본 또는 보조 영역으로 인스턴스를 복원할 수 있습니다.
gcloud
사용할 수 없는 인스턴스
사용할 수 없는 Cloud SQL 인스턴스를 복구할 수 있는 가장 이른 시간과 가장 늦은 시간을 가져오려면 다음 명령어를 실행합니다.
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
다음을 바꿉니다.
INSTANCE_NAME: 최근 복구 시간을 찾으려는 인스턴스의 이름입니다.
삭제된 인스턴스
Cloud SQL 삭제된 인스턴스를 복구할 수 있는 가장 이른 시간과 가장 늦은 시간을 가져오려면 다음 명령어를 실행합니다.
gcloud sql instances get-latest-recovery-time INSTANCE_NAME \
--source-instance-deletion-time='SOURCE_INSTANCE_DELETION_TIMESTAMP'
다음을 바꿉니다.
INSTANCE_NAME: 최근 복구 시간을 찾으려는 인스턴스의 이름입니다.SOURCE_INSTANCE_DELETION_TIMESTAMP: 소스 인스턴스가 삭제된 시간의 UTC 타임스탬프(RFC 3339 형식). 예를 들면 2012-11-15T16:19:00.094Z입니다.
REST v1
사용할 수 없는 인스턴스
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID
- INSTANCE_NAME: 최근 복구 시간을 쿼리하는 인스턴스의 이름
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
삭제된 인스턴스
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- INSTANCE_NAME: 최근 복구 시간을 쿼리하는 소스 인스턴스의 이름
- SOURCE_INSTANCE_DELETION_TIME: 소스 인스턴스가 삭제된 시간
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
REST v1beta4
사용할 수 없는 인스턴스
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID
- INSTANCE_NAME: 최근 복구 시간을 쿼리하는 인스턴스의 이름
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
삭제된 인스턴스
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- INSTANCE_NAME: 최근 복구 시간을 쿼리하는 소스 인스턴스의 이름
- SOURCE_INSTANCE_DELETION_TIME: 소스 인스턴스가 삭제된 시간
HTTP 메서드 및 URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"kind": "sql#getLatestRecoveryTime",
"earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
"latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}
문제 해결
| 문제 | 문제 해결 |
|---|---|
|
또는
|
입력한 타임스탬프가 잘못되었습니다. |
|
또는
|
입력한 타임스탬프는 백업 또는 바이너리 좌표를 찾을 수 없는 경우의 시간입니다. |
다음 단계
- 클론에 플래그 구성