復元オペレーションやポイントインタイム リカバリの詳細、ベスト プラクティス、要件については、インスタンスの復元の概要をご覧ください。
バックアップからインスタンスを復元する
バックアップを使用して、バックアップの取得元の同じインスタンスを復元するか、バックアップを使用して同じプロジェクト内の別のインスタンスを復元できます。
別のインスタンスに復元する
バックアップから別のインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを作成したときのソース インスタンスの状態に更新されます。詳細については、復元の実行についての全般的なヒントと別のインスタンスへの復元のヒントと要件をご覧ください。
プロジェクトのバックアップのリストが必要だが、停止が原因でインスタンスの概要ページに表示できない場合は、backupRuns.list
API でワイルドカード(-
)を使用できます。ワイルドカード オプションでプロジェクト内のすべてのインスタンスのバックアップのリストを取得します。詳細については、停止時にバックアップを表示するをご覧ください。
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- ターゲット インスタンスにリードレプリカがある場合は、右端にあるその他の操作メニュー
を使用して、それらを削除します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [バックアップ] を選択します。
- 復元するバックアップを見つけて、[復元] を選択します。
- [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。
- [復元先の選択] で、[既存のインスタンスを上書きする] を選択します。
- [インスタンス] プルダウン メニューから、復元に使用するインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。
- 選択を確定するには、上書きするインスタンスの名前を [移行先インスタンス ID] フィールドに入力します。
- 復元プロセスを開始するには、[復元] をクリックします。
- ターゲット インスタンスの [オペレーション] タブに移動して、復元オペレーションのステータスを確認します。
- 復元オペレーションが完了したら、前に削除したレプリカを再作成します。
-
ターゲット インスタンスについて記述し、レプリカがあるかどうかを確認します。
gcloud sql instances describe
TARGET_INSTANCE_NAME replicaNames
にリストされているインスタンスをメモします。 -
すべてのレプリカを削除します。
gcloud sql instances delete
REPLICA_NAME レプリカごとに繰り返します。
-
インスタンスのバックアップのリストを取得します。
gcloud sql backups list \ --instance
SOURCE_INSTANCE_NAME -
使用するバックアップを見つけ、その
ID
値を記録します。 - ターゲット インスタンスの指定されたバックアップから復元します。
gcloud sql backups restore
BACKUP_ID \ --restore-instance=TARGET_INSTANCE_NAME \ --backup-instance=SOURCE_INSTANCE_NAME - 復元が完了したら、前に削除したレプリカを再作成します。
-
ターゲット インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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 " } - 復元オペレーションが完了したら、前に削除したレプリカを再作成します。
-
ターゲット インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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 の [インスタンス] ページに移動します。
- ターゲット インスタンスにリードレプリカがある場合は、右端にあるその他の操作メニュー
を使用して、それらを削除します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [バックアップ] を選択します。
- 使用するバックアップを見つけて、[復元] を選択します。
- [バックアップからのインスタンスの復元] ページの [バックアップの詳細を確認] で、正しいバックアップを選択していることを確認します。
- [復元先の選択] で、[ソース インスタンスを上書きする] を選択します。
移行元インスタンスの名前が括弧で囲まれて指定されていることを確認します。
- 選択を確定するには、[移行先インスタンス ID] フィールドにインスタンス名を入力します。
- 復元プロセスを開始するには、[復元] をクリックします。
- インスタンスの [オペレーション] ページに移動して、復元オペレーションのステータスを確認します。
- 復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。
-
インスタンスにレプリカがあるかどうかを示します。
gcloud sql instances describe
INSTANCE_NAME replicaNames
にリストされているインスタンスをメモします。 -
すべてのレプリカを削除します。
gcloud sql instances delete
REPLICA_NAME すべてのレプリカについて繰り返します。
-
インスタンスのバックアップをリストします。
gcloud sql backups list --instance
INSTANCE_NAME -
使用するバックアップを見つけ、その
ID
値を記録します。 - 指定したバックアップからインスタンスを復元します。
gcloud sql backups restore
BACKUP_ID \ --restore-instance=INSTANCE_NAME - 復元オペレーションが完了したら、最初の手順で削除したレプリカを再作成します。
-
インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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 " } - 復元オペレーションが完了したら、前に削除したレプリカを再作成します。
-
インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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
ロールに含まれています。
別のプロジェクトのインスタンスにデータを復元するには:
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 をご覧ください。
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 をご覧ください。
ポイントインタイム リカバリを実行する
ポイントインタイム リカバリを実行するには、ポイントインタイム リカバリをご覧ください。
リカバリ位置を確認する
ポイントインタイム リカバリを実行するには、事前にバイナリログ ファイル名とインスタンスを復元するポイントインタイムに対応する位置を確認する必要があります。
この作業を行うには、リカバリ位置の確認をご覧ください。
次のステップ
- 復元について学習する。
- リードレプリカを再作成する方法を確認する。
- データのバックアップの詳細について学習する。
- データのバックアップ方法を確認する。
- MySQL のポイントインタイム リカバリに関するドキュメントを参照する。
- MySQL の mysqlbinlog ツールに関するドキュメントを参照する。