📚

GCPのCloudSQLをBackupを取得し、Restoreしてみた

2024/03/04に公開

記事の内容

GCPのCloudSQLのBackupを取得して、そのBackupを元に同じDatabaseをRestoreする方法を紹介します。

記事の長さ

1分で読めます

CloudSQLを作成

まずは実験用にCloudSQLを作成します。

$ gcloud sql instances create restore-test \
--cpu=2 \
--memory=4 \
--region=asia-northeast1 \
--database-version=MYSQL_5_7

上記コマンドを実行すると、MySQL5.7のCloudSQLを作成できます。

backupの作成

今作成したインスタンスのBackupを作成します。

$ gcloud sql backups create --instance=restore-test

このコマンドで最新状態のBackupを取得することができます。

以下のコマンドでバックアップ一覧が取得できるかつバックアップのIDを確認できます。

$ gcloud sql backups list --instance=restore-test
ID             WINDOW_START_TIME              ERROR  STATUS      INSTANCE
1213504313541  2024-03-03T22:18:40.350+00:00  -      SUCCESSFUL  restore-test

Backupから復旧する用のInstanceを作成する

CloudSQLはバックアップファイルからそのバックアップを取得したインスタンスに対してデータ復旧をすることができます。

しかし、同じインスタンスに対してデータ復旧をするとバックアップを取得してから復旧までの間に発生したデータが消えてしまいます。

そのため、新しいインスタンスを新規構築してから、そのインスタンスに対してバックアップを適用します。

同じタイプのSQLインスタンスを作成する

$ gcloud sql instances create restore-test2 \
--cpu=2 \
--memory=4 \
--region=asia-northeast1 \
--database-version=MYSQL_5_7

このコマンドで作成されたインスタンスに対してBackupのリストアを行います。

Backupのリストア

バックアップファイルの作成とそのファイルを適用するインスタンスの作成ができたため、最後にリストアを行います。

$ gcloud sql backups restore 1213504313541 \
--restore-instance=restore-test2 \
--backup-instance=restore-test

このコマンドを実行するとリストアが行われ正常終了すると、restore-testの内容がrestore-test2に復元されます。

これで、GCPのCloudSQLの復旧作業は完了です。お疲れ様でした。

note

勉強法やキャリア構築法など、エンジニアに役立つ記事をnoteで配信しています。

https://note.com/ring_belle/membership

Discussion