CloudSQLの日時バックアップを復元
本番 DB のデータで SQL 実行を試したいとき、
特定のテーブルを mysqldump して、ローカルの DB に入れたりするより、
別インスタンスを作成して、日時バックアップをそちらにリストアするのが最速だと感じているので、メモしておきます。
Step1. 別インスタンスを作成する
GCP コンソールでポチポチで良い
Step2. バックアップの id を取得する
例えば、GCP プロジェクト「abc_prod」、CloudSQL インスタンス「abc_prod_instance」の場合
curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ https://www.googleapis.com/sql/v1beta4/projects/abc_prod/instances/abc_prod_instance/backupRuns
Step3. 別インスタンスにバックアップをリストアする
request.json を用意する
{ "restoreBackupContext": { "backupRunId": "1603342800000", "project": "abc_prod", "instanceId": "abc_prod_instance" } }
例えば、GCP プロジェクト「def_test」、CloudSQL インスタンス「def_test_instance」にリストアする場合
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://www.googleapis.com/sql/v1beta4/projects/def_test/instances/def_test_instance/restoreBackup