このドキュメントでは、 コンソールまたは Google Cloud gcloud CLIを使用して、Backup Vault から Cloud SQL インスタンスを復元する方法について説明します。 新しいインスタンスまたは既存のインスタンスに復元する方法、ソース インスタンスを上書きする方法、ポイントインタイム リカバリ(PITR)を実行する方法について説明します。
Backup and DR のコンセプト機能の詳細については、 Backup and DR の概要をご覧ください。 最初にデータベースをバックアップする場合は、 Cloud SQL インスタンスを Backup Vault にバックアップするをご覧ください。
障害復旧と復元性
Backup and DR は、Cloud SQL インスタンスの障害復旧オプションを提供します。Backup Vault に保存されているバックアップは、ソース インスタンスのライフサイクルとプロジェクトから独立しています。
プロジェクトの削除: ソース Cloud SQL インスタンスを含む元のワークロード プロジェクトが削除されても、バックアップを復元できます。これは、CMEK で暗号化されたバックアップに必要な復号権限が、ワークロード プロジェクトではなく、Backup Vault のプロジェクト内の Backup and DR サービス エージェントに付与されるためです。これにより、Backup Vault と Cloud Key Management Service 鍵がそのまま残り、サービス エージェントに権限がある限り、バックアップにアクセスして復元できます。
柔軟な復元ターゲット: 同じ プロジェクトまたは別のプロジェクトの新しいインスタンスに復元できるため、復旧シナリオで柔軟に対応できます。
始める前に
Backup Vault から Cloud SQL インスタンスを復元する前に、必要なロールがあることを確認してください。
Backup Vault から Cloud SQL インスタンスを復元するために必要な権限を取得するには、管理者に次の IAM ロールの付与を依頼してください。
-
復元ターゲットを作成するには:
Cloud SQL 管理者 (
roles/cloudsql.admin) ターゲット インスタンスが配置されているプロジェクトに対する -
Vault からバックアップを読み取るには:
Backup and DR 復元ユーザー (
roles/backupdr.restoreUser) ソース バックアップが存在するプロジェクトに対する
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには Backup Vault から Cloud SQL インスタンスを復元するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションを開いてご確認ください。
必要な権限
Backup Vault から Cloud SQL インスタンスを復元するには、次の権限が必要です。
-
復元ターゲットを作成するには:
cloudsql.instances.restore -
Vault からバックアップを読み取るには:
backupdr.bvbackups.useReadOnlyForCloudSqlInstance
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
最新のバックアップから Cloud SQL インスタンスを復元する
Cloud SQL インスタンスを復元する手順は次のとおりです。
コンソール
コンソール Google Cloud で、[Vault に保存されているバックアップ] ページに移動します。
[Vault に保存されているバックアップ] ページには、バックアップ プランが適用されており、バックアップがそのプロジェクト内の Backup Vault に保存されているデータリソースのみが表示されます。
復元するバックアップを選択します。バックアップの詳細ページまたは メニューから [**復元**]を選択します。
[復元] ページが表示され、次の復元オプションを選択できます。
[リソースタイプ] には、
Cloud SQLが事前入力されています。[リソース名] で、復元する Cloud SQL インスタンスを選択します。
[**バックアップ**] をクリックすると、使用可能なすべてのバックアップが表示されるペインが開きます。 復元する特定のバックアップを選択します。
[**復元先を選択**] で、Cloud SQL インスタンスを復元するプロジェクトを選択します。
[続行] をクリックします。
[復元先を選択]を選択するよう求められたら、次のいずれかのオプションを選択します。
- 新しいインスタンスに復元: バックアップに保存されている 構成に基づいて新しいインスタンスを作成します。復元の完了後にインスタンスをカスタマイズできます。小文字、数字、ハイフンを使用して新しいインスタンス ID を指定します。先頭には英字を使用してください。
既存のインスタンスを上書き: 使用可能なインスタンスのリストから、上書きする既存のインスタンスを 選択します。
ソース インスタンスを上書き: 現在の インスタンスを上書きします。以前のポイントインタイム リカバリ ログを含め、選択したインスタンスの現在のデータがすべて上書きされます。上書きされたデータは後で復元できません。本番環境での使用は推奨されていません。
gcloud
復元するバックアップを含むデータソースを見つけます。データソースは、Cloud SQL インスタンス プロジェクトまたは Backup Vault プロジェクトから見つけることができます。
Cloud SQL インスタンス プロジェクトから:
data-source-referenceを使用します。gcloud alpha backup-dr data-source-references fetch-for-resource-type sqladmin.googleapis.com/Instance \ --location=LOCATION \ --project=CSQL_INSTANCE_PROJECT_ID \ --filter='dataSourceGcpResourceInfo.cloudSqlInstanceProperties.name="projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID"' \ --format="table(RESOURCE_NAME,DATA_SOURCE)"次のように置き換えます。
LOCATION: Backup Vault のロケーション。
CSQL_INSTANCE_ID: Cloud SQL インスタンスのデータベース名。
CSQL_INSTANCE_PROJECT_ID: Cloud SQL インスタンスを含むプロジェクト。
Backup Vault プロジェクトから:
data-sourceを使用します。gcloud backup-dr data-sources list \ --location=LOCATION \ --project=BACKUP_VAULT_PROJECT_ID \ --filter='dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name=projects/CSQL_INSTANCE_PROJECT_ID/instances/CSQL_INSTANCE_ID' \ --format="table(dataSourceGcpResource.cloudSqlInstanceDatasourceProperties.name:label=RESOURCE_NAME,name:label=DATA_SOURCE)"次のように置き換えます。
LOCATION: Backup Vault のロケーション。
CSQL_INSTANCE_ID: Cloud SQL インスタンスの名前。
CSQL_INSTANCE_PROJECT_ID: Cloud SQL インスタンスを含むプロジェクト。
BACKUP_VAULT_PROJECT_ID: Backup Vault を含むプロジェクト。
gcloud backup-dr backups listコマンドを使用してデータソース内のすべてのバックアップを一覧表示し、復元するバックアップを選択します。gcloud backup-dr backups list --data-source=DATA_SOURCE \ --format="table(consistencyTime,backupType,name:label=BACKUP_NAME)"gcloud sql backups restoreコマンドを使用して Cloud SQL インスタンスを復元します。gcloud sql backups restore BACKUP_NAME \ --restore-instance=RESTORE_INSTANCE \ --project=RESTORE_PROJECT --region=RESTORE_REGION次のように置き換えます。
BACKUP_NAME: データの復元元となる Backup Vault の名前。
RESTORE_INSTANCE: ターゲット Cloud SQL インスタンス 名。
RESTORE_PROJECT: Cloud SQL インスタンスを 復元するプロジェクト。
RESTORE_REGION: 新しい Cloud SQL インスタンスに復元するリージョン 。これは、リージョン バックアップでは省略可能です。 既存のインスタンスに復元する場合は使用しないでください。
省略可: 他のプロパティをオーバーライドするには、Backup and DR gcloud CLI コマンドの概要をご覧ください。
Cloud SQL インスタンスを別の時点に復元する
Cloud SQL インスタンスを特定の時点に復元する手順は次のとおりです。特定の時点に復元すると、Cloud SQL クローンが作成されます。
コンソール Google Cloud で、[Vault に保存されているバックアップ] ページに移動します。
表の上部で [テーブルをフィルタ] を選択し、[リソースタイプ] をクリックします。 [Cloud SQL] を選択します。これにより、バックアップ プランが適用され、バックアップがプロジェクト内の Backup Vault に保存されている Cloud SQL インスタンスのみが表示されます。
[特定の時点から復元] をクリックします。 Cloud SQL の [クローンを作成] ページが開きます。
Backup Vault を使用して PITR を実行するの手順に沿って操作します。
復元ジョブとポイントインタイム復元ジョブをモニタリングする
Cloud SQL インスタンスで復元またはポイントインタイム リカバリ(PITR)をトリガーすると、Backup and DR はジョブを自動的に追跡します。ジョブの進行状況とステータスは、 Google Cloud コンソールでモニタリングできます。
復元ジョブと PITR ジョブの進行状況とステータスを表示するには:
- コンソール Google Cloud で、Backup and DR の [**ジョブ**] ページに移動します。
- [**リソースタイプ**] が
Cloud SQLに設定され、[**ジョブカテゴリ**] がRestoreまたはPoint-in-Time Restore (PITR)に設定されているジョブを探します。
復元ジョブと PITR ジョブのログは、ターゲット Cloud SQL インスタンスが復元されるワークロード プロジェクトと、バックアップが保存される Backup Vault プロジェクトの両方で確認できます。ジョブの詳細は、Backup and DR の [ジョブ] ページと Cloud Logging で確認できます。
詳細については、コンソールでジョブをモニタリングする Google Cloud をご覧ください。
次のステップ
ロールの付与については、 プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。