バックアップからインスタンスを復元し、特定の期間に新しいインスタンスまたは既存のインスタンスに復元できます。ライブ インスタンスまたは削除済みインスタンスを復元できます。復元の仕組みについて詳しくは、復元の概要 をご覧ください。
バックアップを使用してインスタンスを復元するには、次の操作を行う必要があります。
復元するバックアップを見つける
バックアップを使用してインスタンスを復元する
バックアップの場所は、インスタンスのバックアップ オプション によって異なります。
ライブ インスタンスを復元する
次の方法でバックアップを復元できます。
同じインスタンスに復元する
バックアップから同じインスタンスにデータを復元すると、そのインスタンス上のデータが、バックアップを取得したときの状態に戻ります。
警告: 復元プロセスでは、以前のポイントインタイム リカバリ(PITR)ログなど、インスタンスに現在あるデータがすべて上書きされます。インスタンスの以前のオンデマンド バックアップと自動バックアップは保持されます。 バックアップを使用して同じインスタンスにインスタンスを復元するには、次の操作を行います。
コンソール
Google Cloud コンソールで、Cloud SQL の [バックアップ ] ページに移動します。
Cloud SQL の [バックアップ] に移動
[バックアップ ] ページで、インスタンスのバックアップ オプション に応じて、[スタンダード ティア ] または [拡張ティア ] をクリックします。
インスタンスで標準バックアップを使用している場合は、バックアップを表示するインスタンスを選択します。
インスタンスで拡張バックアップを使用している場合は、[拡張ティア ] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。
復元するバックアップの名前を見つけて、[復元 ] をクリックします。
注: 復元する前に、ターゲット インスタンスのすべてのレプリカを削除する必要があります。
[復元先の選択 ] で、[ソース インスタンスを上書きする ] を選択します。
[宛先インスタンス ID ] フィールドに、上書きするインスタンスの名前を入力して、選択内容を確認します。
[復元 ] をクリックします。
Cloud SQL はバックアップを同じインスタンスに復元します。復元オペレーションのステータスを確認するには、インスタンスの [オペレーション ] ページに移動します。
復元オペレーションが完了したら、レプリカを作成できます。
gcloud
復元する前に、インスタンスからすべてのレプリカを削除する必要があります。
gcloud sql instances describe コマンドを使用して、インスタンスにリードレプリカがあるかどうかを確認します。
gcloud sql instances describe INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスにレプリカが含まれている場合は、gcloud sql instances delete コマンドを使用してレプリカを削除します。
gcloud sql instances delete REPLICA_NAME
次のように置き換えます。
使用するバックアップを見つけます。
インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。
gcloud sql backups list INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示する をご覧ください。
指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
gcloud sql backups restore BACKUP_ID \
--restore-instance=BACKUP_ID
次のように置き換えます。
BACKUP_ID : 復元するバックアップの ID。
INSTANCE_NAME : インスタンスの名前。
復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。
REST v1
インスタンスにリードレプリカがあるかどうかを確認し、それらの ID を取得するには、インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
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
インスタンスにリードレプリカがあるかどうかを確認し、それらの 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_RUN_ID : Cloud SQL がバックアップからインスタンスを復元した日時スタンプ
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
"restoreBackupContext":
{
"backupRunId": "BACKUP_RUN_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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。
新しいインスタンスまたは既存のインスタンスに復元する
バックアップから別のインスタンスにデータを復元すると、ターゲット インスタンス上のデータが、バックアップを取得したときのソース インスタンスの状態に更新されます。
プロジェクトのバックアップのリストが必要であるものの、停止が原因でインスタンスの概要ページに表示できない場合は、backupRuns.list API でワイルドカード(-)を使用できます。ワイルドカード オプションでプロジェクト内のすべてのインスタンスのバックアップのリストを取得します。詳細については、停止時にバックアップを表示する をご覧ください。
インスタンスを新しいインスタンスまたは既存のインスタンスに復元する手順は次のとおりです。
コンソール
Google Cloud コンソールで、Cloud SQL の [バックアップ ] ページに移動します。
Cloud SQL の [バックアップ] に移動
[バックアップ ] ページで、インスタンスのバックアップ オプション に応じて、[スタンダード ティア ] または [拡張ティア ] をクリックします。
インスタンスで標準バックアップを使用している場合は、バックアップを表示するインスタンスを選択します。
インスタンスで拡張バックアップを使用している場合は、[拡張ティア ] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。
復元するバックアップの名前を見つけて、[復元 ] をクリックします。
[復元先の選択 ] で、次の操作を行います。
[復元 ] をクリックします。
Cloud SQL は、選択内容に応じて、バックアップを新しいインスタンスまたは既存のインスタンスに復元します。復元オペレーションのステータスを確認するには、インスタンスの [オペレーション ] ページに移動します。
復元オペレーションが完了したら、レプリカを作成できます。
gcloud
既存のインスタンスに復元する場合は、復元する前に、ターゲット インスタンスからすべてのレプリカを削除する必要があります。
gcloud sql instances describe コマンドを使用して、インスタンスにリードレプリカがあるかどうかを確認します。
gcloud sql instances describe TARGET_INSTANCE_NAME
次のように置き換えます。
TARGET_INSTANCE_NAME : インスタンスの名前。
インスタンスにレプリカが含まれている場合は、gcloud sql instances delete コマンドを使用してレプリカを削除します。
gcloud sql instances delete REPLCICA_NAME
次のように置き換えます。
使用するバックアップを見つけます。
インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。
gcloud sql backups list INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示する をご覧ください。
指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
gcloud sql backups restore BACKUP_ID \
--restore-instance=TARGET_INSTANCE_NAME \
--backup-instance=SOURCE_INSTANCE_NAME
次のように置き換えます。
BACKUP_ID : 復元するバックアップの ID。
TARGET_INSTANCE_NAME : ターゲットの新規または既存のインスタンスの名前。
SOURCE_INSTANCE_NAME : ソース インスタンスの名前。
既存のインスタンスに復元する場合は、復元オペレーションの完了後に、この手順で削除したレプリカを再作成します。
REST v1
既存のインスタンスを使用している場合は、復元する前にすべてのレプリカを削除する必要があります。インスタンスにリードレプリカがあるかどうかを確認し、それらの ID を取得するには、インスタンスのすべてのレプリカを一覧表示します。
リクエストのデータを使用する前に、次のように置き換えます。
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
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
インスタンスにリードレプリカがあるかどうかを確認し、それらの 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 "
}
復元オペレーションが完了したら、この手順で削除したレプリカを再作成します。
別のプロジェクトのインスタンスに復元する
project パラメータを使用して、別のプロジェクトのインスタンスにデータを復元できます。バックアップから別のプロジェクトのインスタンスに復元すると、ターゲット インスタンス上のデータが、バックアップを取得したときのソース インスタンスの状態に更新されます。
別のプロジェクトに復元するユーザーには、インスタンスを復元するための次の権限が付与されている必要があります。
* ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限
* ソース プロジェクトに対する cloudsql.backupRuns.get 権限。
これらの権限は、Cloud SQL Admin ロールに含まれています。
警告: 復元プロセスでは、以前のポイントインタイム リカバリ(PITR)ログなど、インスタンスに現在あるデータがすべて上書きされます。インスタンスの以前のオンデマンド バックアップと自動バックアップは保持されます。 バックアップを使用して別のプロジェクトまたはリージョンのインスタンスにインスタンスを復元するには、次の操作を行います。
gcloud Backup Vault から既存のインスタンスにバックアップを復元するには、次の操作を行います。
既存のインスタンスに復元する場合は、gcloud sql instances describe コマンドを使用して、ターゲット インスタンスにリードレプリカがあるかどうかを確認します。
gcloud sql instance describe TARGET_INSTANCE_NAME
次のように置き換えます。
TARGET_INSTANCE_NAME : バックアップを復元するターゲット インスタンスの名前。
gcloud sql instances delete コマンドを使用して、ターゲット インスタンスのすべてのレプリカを削除します。
gcloud sql instance delete REPLICA_NAME
次のように置き換えます。
REPLICA_NAME : ターゲット インスタンスのレプリカの名前。
既存のインスタンスに復元する前に、すべてのレプリカを削除する必要があります。
使用するバックアップを見つけます。
インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。
gcloud sql backups list INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示する をご覧ください。
新しいプロジェクトの新しいインスタンスまたは既存のインスタンスに復元するには、gcloud sql backups restore コマンドを使用します。
gcloud sql backups restore BACKUP_ID
--restore-instance=TARGET_INSTANCE_NAME
--backup-instance=SOURCE_INSTANCE_NAME
--backup-project=SOURCE_INSTANCE_PROJECT
次のように置き換えます。
BACKUP_ID : Backup Vault のバックアップの ID。このフィールドにはバックアップのフルパスを入力する必要があります。
TARGET_INSTANCE_NAME : データを復元する宛先プロジェクト内のインスタンス。
SOURCE_INSTANCE_NAME : データが存在するソース プロジェクトのインスタンス名。
SOURCE_INSTANCE_PROJECT : ソース インスタンスを含むプロジェクト。
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 "
}
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 "
}
削除したインスタンスを復元する
最終バックアップ または保持されたバックアップ を使用して、次のシナリオで削除されたインスタンスを復元できます。
既存のインスタンスに復元する
最終バックアップまたは保持されたバックアップから既存のインスタンスにデータを復元すると、ターゲット インスタンス上のデータが、バックアップを取得したときのソース インスタンスの状態に更新されます。インスタンスの復元について詳しくは、復元の実行についての全般的なヒント をご覧ください。
警告: 復元プロセスでは、以前のポイントインタイム リカバリ(PITR)ログなど、インスタンスに現在あるデータがすべて上書きされます。インスタンスの以前のオンデマンド バックアップと自動バックアップは保持されます。 バックアップを使用して削除されたインスタンスを既存のインスタンスに復元するには、次の操作を行います。
コンソール
Google Cloud コンソールで、Cloud SQL の [インスタンス ] ページに移動します。
Cloud SQL の [インスタンス] に移動
ターゲット インスタンスにリードレプリカがある場合は、その他の操作メニュー を使用して削除します。保持されたバックアップまたは最終バックアップを既存のインスタンスに復元するには、まずすべてのレプリカを削除する必要があります。
Google Cloud コンソールで、Cloud SQL の [バックアップ ] ページに移動します。
Cloud SQL の [バックアップ] に移動
[バックアップ ] ページで、インスタンスのバックアップ オプション に応じて、[スタンダード ティア ] または [拡張ティア ] をクリックします。
インスタンスで標準バックアップを使用している場合は、復元するバックアップを含む削除済みインスタンスの名前をクリックします。
インスタンスで拡張バックアップを使用している場合は、[拡張ティア ] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。
復元するバックアップの名前を見つけて、[復元 ] をクリックします。
[バックアップからのインスタンスの復元 ] ページの [バックアップの詳細を確認 ] で、正しいバックアップを選択していることを確認します。
[復元先の選択 ] セクションで、[既存のインスタンスを上書きする ] を選択します。
[上書きされるインスタンス ] メニューから、バックアップの復元先となるインスタンスを選択します。選択したインスタンスとそのすべてのデータが上書きされます。
選択を確定するには、上書きするインスタンスの名前を [移行先インスタンス ID ] フィールドに入力します。
[復元 ] をクリックします。
Cloud SQL はバックアップを既存のインスタンスに復元します。
復元オペレーションのステータスを確認するには、インスタンスの [オペレーション ] ページに移動します。
復元オペレーションが完了したら、レプリカを作成できます。
gcloud
1 . When restoring to an existing instance , all replicas must be deleted
from your target instance prior to restoring .
Determine if your instance has any read replicas using the
[ ` gcloud sql instances describe ` ]( / sdk / gcloud / reference / sql / instances / describe )
command :
``` gcloud
gcloud sql instances describe TARGET_INSTANCE_NAME
```
Replace the following :
* ` TARGET_INSTANCE_NAME ` : the name of the instance .
If your instance contains replicas , then delete the replicas
using the
[ ` gcloud sql instances delete ` ]( / sdk / gcloud / reference / sql / instances / delete )
command :
``` gcloud
gcloud sql instances delete REPLCICA_NAME
```
Replace the following :
* ` REPLCICA_NAME ` : the name of the replica .
使用するバックアップを見つけます。
インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。
gcloud sql backups list INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示する をご覧ください。
指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
gcloud sql backups restore BACKUP_ID \
--restore-instance=TARGET_INSTANCE_NAME
次のように置き換えます。
BACKUP_ID : 復元するバックアップの ID。
TARGET_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 を取得します。
リクエストのデータを使用する前に、次のように置き換えます。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups"
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 /backups" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"name": "projects/PROJECT_ID /backups/BACKUP_ID ",
"kind": "sql#backup",
"state": "SUCCESSFUL",
"backupInterval": {
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
}
"type": "FINAL",
"instance": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups/BACKUP_ID ",
"location": "us"
"description": "This is a final backup.",
"backupKind": "SNAPSHOT",
"dataDiskSizeGB": "10",
"expiryTime": "2020-01-30T11:26:18.663Z",
"backup_run": "projects/PROJECT_ID /instances/INSTANCE_ID /backupRuns/BACKUP_RUN_ID ",
"satisfies_pzs": false,
"satisfies_pzi": false
}
保持されたバックアップまたは最終バックアップからターゲット インスタンスを復元します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID
TARGET_INSTANCE_ID : ターゲット インスタンス ID
BACKUP_ID : バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
backup: projects/PROJECT_ID /backups/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/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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_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 を取得します。
リクエストのデータを使用する前に、次のように置き換えます。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups
リクエストを送信するには、次のいずれかのオプションを展開します。
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 /backups"
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 /backups" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"name": "projects/PROJECT_ID /backups/BACKUP_ID ",
"kind": "sql#backup",
"state": "SUCCESSFUL",
"backupInterval": {
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
}
"type": "FINAL",
"instance": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups/BACKUP_ID ",
"location": "us"
"description": "This is a final backup.",
"backupKind": "SNAPSHOT",
"dataDiskSizeGB": "10",
"expiryTime": "2020-01-30T11:26:18.663Z",
"backup_run": "projects/PROJECT_ID /instances/INSTANCE_ID /backupRuns/BACKUP_RUN_ID ",
"satisfies_pzs": false,
"satisfies_pzi": false
}
保持されたバックアップまたは最終バックアップからターゲット インスタンスを復元します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID
TARGET_INSTANCE_ID : ターゲット インスタンス ID
BACKUP_ID : バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
backup: projects/PROJECT_ID /backups/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/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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
新しいインスタンスに復元する
最終バックアップまたは保持されたバックアップからインスタンスを作成すると、Cloud SQL はバックアップが取得されたインスタンスの構成設定を使用します。インスタンスの作成後、Cloud SQL はバックアップを取得した時点の状態にデータを復元します。
最終バックアップまたは保持されたバックアップから新しいインスタンスにデータを復元するには、次の権限を付与されている必要があります。
ターゲット プロジェクトに対する cloudsql.instances.create 権限
ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限
ソース バックアップに対する cloudsql.backupRuns.get permission
これらの権限は、Cloud SQL 管理者ロールに含まれています。
注: 最終バックアップから作成するインスタンスの IP アドレスは、最終バックアップが取得されたインスタンスの IP アドレスとは異なります。インスタンスの復元について詳しくは、復元の実行についての全般的なヒント をご覧ください。 バックアップを使用して削除されたインスタンスを新しいインスタンスに復元するには、次の操作を行います。
コンソール
Google Cloud コンソールで、Cloud SQL の [バックアップ ] ページに移動します。
Cloud SQL の [バックアップ] に移動
[バックアップ ] ページで、インスタンスのバックアップ オプション に応じて、[スタンダード ティア ] または [拡張ティア ] をクリックします。
インスタンスで標準バックアップを使用している場合は、復元するバックアップを含む削除済みインスタンスの名前をクリックします。
インスタンスで拡張バックアップを使用している場合は、[拡張ティア ] を選択し、使用するバックアップを含む Backup Vault を選択します。選択したインスタンスの Backup Vault で使用可能なすべてのバックアップが表示されます。
復元するバックアップの名前を見つけて、[復元 ] をクリックします。
[バックアップからのインスタンスの復元 ] ページの [バックアップの詳細を確認 ] で、正しいバックアップを選択していることを確認します。
[復元先の選択 ] セクションで、[新しいインスタンスに復元する ] を選択します。
[リージョン ] メニューから、新しいインスタンスのリージョンを選択します。
[インスタンス ID ] フィールドに、新しいインスタンスの ID を入力します。
この ID は作成後に変更できません。
[復元 ] をクリックします。
Cloud SQL はバックアップを既存のインスタンスに復元します。
復元オペレーションのステータスを確認するには、インスタンスの [オペレーション ] ページに移動します。
gcloud
使用するバックアップを見つけます。
インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。
gcloud sql backups list INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示する をご覧ください。
指定したバックアップからインスタンスを復元するには、gcloud sql backups restore コマンドを使用します。
gcloud sql backups restore BACKUP_ID \
--restore-instance=TARGET_INSTANCE_NAME
次のように置き換えます。
BACKUP_ID : 復元するバックアップの ID。
TARGET_INSTANCE_NAME : 新しいターゲット インスタンスまたは既存のターゲット インスタンスの名前。
REST v1 指定した保持されたバックアップまたは最終バックアップから新しいインスタンスを復元する
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID
TARGET_INSTANCE_ID : ターゲット インスタンス ID
BACKUP_ID バックアップ ID
注: restore_instance_settings: {} 行のコードにより、Cloud SQL はバックアップから新しいインスタンスにデータを復元できます。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
backup: projects/PROJECT_ID /backups/BACKUP_ID
restore_instance_settings: {}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
REST v1beta4 指定した保持されたバックアップまたは最終バックアップから新しいインスタンスを復元する
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID
TARGET_INSTANCE_ID : ターゲット インスタンス ID
BACKUP_ID バックアップ ID
注: restore_instance_settings: {} 行のコードにより、Cloud SQL はバックアップから新しいインスタンスにデータを復元できます。
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
backup: projects/PROJECT_ID /backups/BACKUP_ID
restore_instance_settings: {}
}
リクエストを送信するには、次のいずれかのオプションを展開します。
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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
別のプロジェクトの新しいインスタンスまたは既存のインスタンスに復元する
project パラメータを使用して、別のプロジェクトのインスタンスにデータを復元できます。削除されたインスタンスをバックアップから別のプロジェクトのインスタンスに復元すると、ターゲット インスタンスが、バックアップを取得したときのソース インスタンスの状態に更新されます。
別のプロジェクトに復元するユーザーには、インスタンスを復元するための次の権限が付与されている必要があります。
* ターゲット プロジェクトに対する cloudsql.instances.create 権限
* ターゲット プロジェクトに対する cloudsql.instances.restoreBackup 権限
* ソース バックアップに対する cloudsql.backupRuns.get permission 権限
これらの権限は、Cloud SQL Admin ロールに含まれています。
警告: 復元プロセスでは、以前のポイントインタイム リカバリ(PITR)ログなど、インスタンスに現在あるデータがすべて上書きされます。インスタンスの以前のオンデマンド バックアップと自動バックアップは保持されます。 バックアップを使用して別のプロジェクトまたはリージョンのインスタンスにインスタンスを復元するには、次の操作を行います。
gcloud
既存のインスタンスに復元する場合は、gcloud sql instances describe コマンドを使用して、ターゲット インスタンスにリードレプリカがあるかどうかを確認します。
gcloud sql instance describe TARGET_INSTANCE_NAME
次のように置き換えます。
TARGET_INSTANCE_NAME : バックアップを復元するターゲット インスタンスの名前。
gcloud sql instances delete コマンドを使用して、ターゲット インスタンスのすべてのレプリカを削除します。
gcloud sql instance delete REPLICA_NAME
次のように置き換えます。
REPLICA_NAME : ターゲット インスタンスのレプリカの名前。
既存のインスタンスに復元する前に、すべてのレプリカを削除する必要があります。
使用するバックアップを見つけます。
インスタンスで標準バックアップを使用している場合は、gcloud sql backups list コマンドを使用してバックアップを見つけ、その ID 値を記録します。
gcloud sql backups list INSTANCE_NAME
次のように置き換えます。
INSTANCE_NAME : インスタンスの名前。
インスタンスで拡張バックアップを使用している場合は、Backup Vault 内のすべてのバックアップを一覧表示する をご覧ください。
新しいプロジェクトの新しいインスタンスまたは既存のインスタンスに復元するには、gcloud sql backups restore コマンドを使用します。
gcloud sql backups restore BACKUP_ID
--restore-instance=TARGET_INSTANCE_NAME
--backup-instance=SOURCE_INSTANCE_NAME
--backup-project=SOURCE_INSTANCE_PROJECT
次のように置き換えます。
BACKUP_ID : Backup Vault のバックアップの ID。このフィールドにはバックアップのフルパスを入力する必要があります。
TARGET_INSTANCE_NAME : データを復元する宛先プロジェクト内のインスタンス。
SOURCE_INSTANCE_NAME : データが存在するソース プロジェクトのインスタンス名。
SOURCE_INSTANCE_PROJECT : ソース インスタンスを含むプロジェクト。
REST v1 保持されたバックアップまたは最終バックアップの backupID を取得するには、次のコマンドを実行します。
リクエストのデータを使用する前に、次のように置き換えます。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups
リクエストを送信するには、次のいずれかのオプションを展開します。
curl(Linux、macOS、Cloud Shell)
次のコマンドを実行します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups"
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 /backups" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"name": "projects/PROJECT_ID /backups/BACKUP_ID ",
"kind": "sql#backup",
"state": "SUCCESSFUL",
"backupInterval": {
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
}
"type": "FINAL",
"instance": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /backups/BACKUP_ID ",
"location": "us"
"description": "This is a final backup.",
"backupKind": "SNAPSHOT",
"dataDiskSizeGB": "10",
"expiryTime": "2020-01-30T11:26:18.663Z",
"backup_run": "projects/PROJECT_ID /instances/INSTANCE_ID /backupRuns/BACKUP_RUN_ID ",
"satisfies_pzs": false,
"satisfies_pzi": false
}
別のプロジェクトに復元する
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID
TARGET_INSTANCE_ID : ターゲット インスタンス ID
BACKUP_ID : バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
backup: projects/PROJECT_ID /backups/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/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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
REST v1beta4 保持されたバックアップまたは最終バックアップの backupID を取得するには、次のコマンドを実行します。
リクエストのデータを使用する前に、次のように置き換えます。
HTTP メソッドと URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups
リクエストを送信するには、次のいずれかのオプションを展開します。
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 /backups"
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 /backups" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
レスポンス
{
"name": "projects/PROJECT_ID /backups/BACKUP_ID ",
"kind": "sql#backup",
"state": "SUCCESSFUL",
"backupInterval": {
"startTime": "2020-01-21T11:25:33.858Z",
"endTime": "2020-01-21T11:26:18.663Z",
}
"type": "FINAL",
"instance": "INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /backups/BACKUP_ID ",
"location": "us"
"description": "This is a final backup.",
"backupKind": "SNAPSHOT",
"dataDiskSizeGB": "10",
"expiryTime": "2020-01-30T11:26:18.663Z",
"backup_run": "projects/PROJECT_ID /instances/INSTANCE_ID /backupRuns/BACKUP_RUN_ID ",
"satisfies_pzs": false,
"satisfies_pzi": false
}
別のプロジェクトに復元する
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID : プロジェクト ID
TARGET_INSTANCE_ID : ターゲット インスタンス ID
BACKUP_ID : バックアップ ID
HTTP メソッドと URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /instances/TARGET_INSTANCE_ID /restoreBackup
リクエストの本文(JSON):
{
backup: projects/PROJECT_ID /backups/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/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/TARGET_INSTANCE_ID ",
"status": "PENDING",
"user": "user@example.com",
"insertTime": "2020-01-21T22:43:37.981Z",
"operationType": "RESTORE_BACKUP",
"name": "OPERATION_ID ",
"targetId": "TARGET_INSTANCE_ID ",
"selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID /operations/OPERATION_ID ",
"targetProject": "PROJECT_ID "
}
次のステップ
*
リードレプリカを再作成する方法を確認する 。*
データのバックアップの詳細について学ぶ 。*
データのバックアップ方法を確認する 。*
MySQL のポイントインタイム リカバリに関するドキュメント を参照する。*
MySQL の mysqlbinlog ツールに関するドキュメント を参照する。