このページでは、バックアップからインスタンスを復元する方法とインスタンスのポイントインタイム リカバリを実行する方法について説明します。
復元オペレーションやポイントインタイム リカバリの詳細、ベスト プラクティス、要件については、インスタンスの復元の概要 をご覧ください。
バックアップからインスタンスを復元する
バックアップを使用して、バックアップの取得元の同じインスタンスを復元するか、バックアップを使用して同じプロジェクト内の別のインスタンスを復元できます。
別のインスタンスに復元する
バックアップから別のインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを作成したときのソース インスタンスの状態に更新されます。詳細については、復元の実行についての全般的なヒント と別のインスタンスへの復元のヒントと要件 をご覧ください。
プロジェクトのバックアップのリストが必要だが、停止が原因でインスタンスの概要ページに表示できない場合は、backupRuns.list
API でワイルドカード(-
)を使用できます。ワイルドカード オプションでプロジェクト内のすべてのインスタンスのバックアップのリストを取得します。詳細については、停止時にバックアップを表示する をご覧ください。
警告: 復元プロセスでは、インスタンスに現在あるデータ(以前のポイントインタイム リカバリ ログなど)がすべて上書きされます。上書きされたデータは復元できません。
コンソール
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
Cloud SQL の [インスタンス] に移動
ターゲット インスタンスにリードレプリカがある場合は、右端にあるその他の操作メニュー を使用して、それらを削除します。
インスタンスの [概要 ] ページを開くには、インスタンス名をクリックします。
SQL ナビゲーション メニューから [バックアップ ] を選択します。
復元するバックアップを見つけて、[復元 ] を選択します。
[バックアップからのインスタンスの復元 ] ページの [バックアップの詳細を確認 ] で、正しいバックアップを選択していることを確認します。
[復元先の選択 ] で、[既存のインスタンスを上書きする ] を選択します。
[インスタンス ] プルダウン メニューから、復元に使用するインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。
選択を確定するには、上書きするインスタンスの名前を [移行先インスタンス ID ] フィールドに入力します。
復元プロセスを開始するには、[復元 ] をクリックします。
ターゲット インスタンスの [オペレーション ] タブに移動して、復元オペレーションのステータスを確認します。
復元オペレーションが完了したら、前に削除したレプリカを再作成します。
gcloud
ターゲット インスタンスについて記述し、レプリカがあるかどうかを確認します。
gcloud sql instances describe TARGET_INSTANCE_NAME
replicaNames
にリストされているインスタンスをメモします。
すべてのレプリカを削除します。
gcloud sql instances delete REPLICA_NAME
レプリカごとに繰り返します。
インスタンスのバックアップのリストを取得します。
gcloud sql backups list \
--instance SOURCE_INSTANCE_NAME
使用するバックアップを見つけ、その ID
値を記録します。
注: SUCCESSFUL
とマークされたバックアップを選択します。
ターゲット インスタンスの指定されたバックアップから復元します。
gcloud sql backups restore BACKUP_ID \
--restore-instance= TARGET_INSTANCE_NAME \
--backup-instance= SOURCE_INSTANCE_NAME
復元が完了したら、前に削除したレプリカを再作成します。
REST v1
ターゲット インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"replicaNames": [
"replica-name "
]
}
すべてのレプリカを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
replica-id : レプリカ ID
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
レプリカごとに繰り返します。
ソース インスタンスのバックアップの一覧を表示し、使用するバックアップの ID を取得します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
または、インスタンスが停止しているリージョンにある場合は、プロジェクト内のすべてのバックアップを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID。プロジェクト内のすべてのバックアップのリストの場合は -
。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/-/backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
"backupKind": "SNAPSHOT"
}
復元が必要なインスタンスのバックアップを見つけます。
バックアップからターゲット インスタンスを復元します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
target-instance-id : ターゲット インスタンス ID
source-instance-id : ソース インスタンス ID
backup-id バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"instanceId": "source-instance-id "
}
}
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
復元オペレーションが完了したら、前に削除したレプリカを再作成します。
REST v1beta4
ターゲット インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"replicaNames": [
"replica-name "
]
}
すべてのレプリカを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
replica-id : レプリカ ID
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
レプリカごとに繰り返します。
ソース インスタンスのバックアップの一覧を表示し、使用するバックアップの ID を取得します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
バックアップからターゲット インスタンスを復元します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
target-instance-id : ターゲット インスタンス ID
source-instance-id : ソース インスタンス ID
backup-id バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"instanceId": "source-instance-id "
}
}
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
復元オペレーションが完了したら、前に削除したレプリカを再作成します。
同じインスタンスに復元する
バックアップから同じインスタンスに復元すると、そのインスタンス上のデータが、バックアップを作成したときの状態に戻ります。インスタンスの復元については、復元の実行についての全般的なヒント をご覧ください。
警告: 復元プロセスでは、インスタンスに現在あるデータ(以前のポイントインタイム リカバリ ログなど)がすべて上書きされます。上書きされたデータは復元できません。この復元プロセスは、本番環境にはおすすめしません。
コンソール
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
Cloud SQL の [インスタンス] に移動
ターゲット インスタンスにリードレプリカがある場合は、右端にあるその他の操作メニュー を使用して、それらを削除します。
インスタンスの [概要 ] ページを開くには、インスタンス名をクリックします。
SQL ナビゲーション メニューから [バックアップ ] を選択します。
使用するバックアップを見つけて、[復元 ] を選択します。
[バックアップからのインスタンスの復元 ] ページの [バックアップの詳細を確認 ] で、正しいバックアップを選択していることを確認します。
[復元先の選択 ] で、[ソース インスタンスを上書きする ] を選択します。移行元インスタンスの名前が括弧で囲まれて指定されていることを確認します。
選択を確定するには、[移行先インスタンス ID ] フィールドにインスタンス名を入力します。
復元プロセスを開始するには、[復元 ] をクリックします。
インスタンスの [オペレーション ] ページに移動して、復元オペレーションのステータスを確認します。
復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。
gcloud
インスタンスにレプリカがあるかどうかを示します。
gcloud sql instances describe INSTANCE_NAME
replicaNames
にリストされているインスタンスをメモします。
すべてのレプリカを削除します。
gcloud sql instances delete REPLICA_NAME
すべてのレプリカについて繰り返します。
インスタンスのバックアップをリストします。
gcloud sql backups list --instance INSTANCE_NAME
使用するバックアップを見つけ、その ID
値を記録します。
注: SUCCESSFUL
とマークされたバックアップを選択します。
指定したバックアップからインスタンスを復元します。
gcloud sql backups restore BACKUP_ID \
--restore-instance= INSTANCE_NAME
復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。
REST v1
インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"replicaNames": [
"replica-name "
]
}
すべてのレプリカを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
replica-id : レプリカ ID
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
リードレプリカごとに繰り返します。
インスタンスのバックアップを一覧表示し、使用するバックアップの ID を取得します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
バックアップからインスタンスを復元します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
backup-id バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": "backup-id ",
}
}
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /restoreBackup" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
復元オペレーションが完了したら、前に削除したレプリカを再作成します。
REST v1beta4
インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ?fields=replicaNames" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"replicaNames": [
"replica-name "
]
}
すべてのレプリカを削除します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
replica-id : レプリカ ID
HTTP メソッドと URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id "
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method DELETE ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id " | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/replica-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "DELETE_BACKUP",
"name": "operation-id ",
"targetId": "replica-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
リードレプリカごとに繰り返します。
インスタンスのバックアップを一覧表示し、使用するバックアップの ID を取得します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
バックアップからインスタンスを復元します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
backup-id バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": "backup-id ",
}
}
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /restoreBackup" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "operation-id ",
"targetId": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /operations/operation-id ",
"targetProject": "project-id "
}
復元オペレーションが完了したら、前に削除したレプリカを再作成します。
別のプロジェクトのインスタンスに復元する
project
パラメータを使用して、バックアップが実行されたプロジェクトとは別のプロジェクトのインスタンスにデータを復元できます。project
パラメータを使用するときに、データを復元するプロジェクトのインスタンスで restoreBackup
を呼び出します。バックアップから別のインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを作成したときのソース インスタンスの状態に更新されます。
権限
別のプロジェクトに復元するユーザーは、ターゲット プロジェクトに対する cloudsql.instances.restoreBackup
権限と、ソース インスタンスに対する cloudsql.backupRuns.get
権限を持っている必要があります。これらの権限は、Cloud SQL Admin
ロールに含まれています。
警告: 復元プロセスでは、インスタンスに現在あるデータ(以前のポイントインタイム リカバリ ログなど)がすべて上書きされます。上書きされたデータは復元できません。 別のプロジェクトのインスタンスにデータを復元するには:
REST v1
backupId
を取得するには、以下を実行します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
バックアップを別のプロジェクトのインスタンスに復元します。
リクエストのデータを使用する前に、次のように置き換えます。
source-project-id : ソース プロジェクト ID
target-project-id : ターゲット プロジェクト ID
target-instance-id : ターゲット インスタンス ID
source-instance-id : ソース インスタンス ID
backup-id バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"project": "source-project-id ",
"instanceId": "source-instance-id "
}
}
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /instances/target-instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_VOLUME",
"name": "operation-id ",
"targetId": "target-instance-id ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/target-project-id /operations/operation-id ",
"targetProject": "target-project-id "
}
project
プロパティについて詳しくは、restoreBackup をご覧ください。
REST v1beta4
backupId
を取得するには、以下を実行します。
リクエストのデータを使用する前に、次のように置き換えます。
project-id : プロジェクト ID
instance-id : インスタンス ID
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns"
PowerShell(Windows)
次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#backupRun",
"status": "SUCCESSFUL",
"enqueuedTime": "2020-01-21T11:25:33.818Z",
"id": "backup-id ",
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
"type": "AUTOMATED",
"windowStartTime": "2020-01-21T10:00:00.479Z",
"instance": "instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id /instances/instance-id /backupRuns/backup-id ",
"location": "us"
}
バックアップを別のプロジェクトのインスタンスに復元します。
リクエストのデータを使用する前に、次のように置き換えます。
source-project-id : ソース プロジェクト ID
target-project-id : ターゲット プロジェクト ID
target-instance-id : ターゲット インスタンス ID
source-instance-id : ソース インスタンス ID
backup-id バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": backup-id ,
"project": "source-project-id ",
"instanceId": "source-instance-id "
}
}
リクエストを送信するには、次のいずれかのオプションを開きます。
curl(Linux、macOS、Cloud Shell)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup"
PowerShell(Windows)
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id /restoreBackup" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"kind": "sql#operation",
"targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /instances/target-instance-id ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_VOLUME",
"name": "operation-id ",
"targetId": "target-instance-id ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/target-project-id /operations/operation-id ",
"targetProject": "target-project-id "
}
project
プロパティについて詳しくは、restoreBackup をご覧ください。
ポイントインタイム リカバリを実行する
ポイントインタイム リカバリを実行するには、ポイントインタイム リカバリ をご覧ください。
リカバリ位置を確認する
ポイントインタイム リカバリを実行するには、事前にバイナリログ ファイル名とインスタンスを復元するポイントインタイムに対応する位置を確認する必要があります。
この作業を行うには、リカバリ位置の確認 をご覧ください。
次のステップ