📚
GCPのCloudSQLをBackupを取得し、Restoreしてみた
記事の内容
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で配信しています。
Discussion