このドキュメントでは、 コンソールまたは Google Cloud CLI を使用して、Backup Vault から Cloud SQL インスタンスを復元する方法について説明します。 Google Cloud 新しいインスタンスまたは既存のインスタンスに復元する方法、ソース インスタンスを上書きする方法、ポイントインタイム リカバリ(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) ターゲット インスタンスが配置されているプロジェクトに対する -
Backup Vault からバックアップを読み取るには:
Backup and DR 復元ユーザー (
roles/backupdr.restoreUser) ソース バックアップが存在するプロジェクトに対する
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
これらの事前定義ロールには Backup Vault から Cloud SQL インスタンスを復元するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションを開いてご確認ください。
必要な権限
Backup Vault から Cloud SQL インスタンスを復元するには、次の権限が必要です。
-
復元ターゲットを作成するには:
cloudsql.instances.restore -
Backup Vault からバックアップを読み取るには:
backupdr.bvbackups.useReadOnlyForCloudSqlInstance
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
最新のバックアップから Cloud SQL インスタンスを復元する
Cloud SQL インスタンスを復元するには、次の操作を行います。
コンソール
コンソールで、[Vaulted backups] ページに移動します。 Google Cloud
[Vaulted backups] ページには、バックアップ プランが適用されており、バックアップがそのプロジェクト内の Backup Vault に保存されているデータリソースのみが表示されます。
復元するバックアップを選択します。バックアップの詳細ページまたは メニューから [**復元**]を選択します。
[復元] ページが表示されます。ここで、次の復元オプションを選択します。
[Resource type] には、
Cloud SQLが事前入力されています。[Resource name] で、復元する Cloud SQL インスタンスを選択します。
[**Backup**] をクリックすると、使用可能なすべてのバックアップが表示されるペインが開きます。 復元する特定のバックアップを選択します。
[Choose the restore destination] で、Cloud SQL インスタンスを復元するプロジェクトを選択します。
[続行] をクリックします。
[Choose restore destination] の選択を求められたら、次のいずれかのオプションを選択します。
- 新しいインスタンスに復元: バックアップに保存されている 構成に基づいて新しいインスタンスを作成します。復元が完了したら、インスタンスをカスタマイズできます。小文字、数字、ハイフンを使用して新しいインスタンス ID を指定します。先頭には英字を使用してください。
既存のインスタンスを上書き: 使用可能なインスタンスのリストから、上書きする既存のインスタンスを選択します。
Overwrite the source instance: 現在の インスタンスを上書きします。以前のポイントインタイム リカバリ ログを含め、選択したインスタンスの現在のデータがすべて上書きされます。上書きされたデータを後で復元することはできません。本番環境での使用はおすすめしません。
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 サービス Google Cloud CLI コマンドの概要をご覧ください。
Cloud SQL インスタンスを別の時点に復元する
Cloud SQL インスタンスを特定の時点に復元するには、次の操作を行います。特定の時点に復元すると、Cloud SQL クローンが作成されます。
コンソールで、[Vaulted backups] ページに移動します。 Google Cloud
表の上部で [Filter table] を選択し、[Resource type] をクリックします。 [Cloud SQL] を選択します。これにより、バックアップ プランが適用されており、バックアップがプロジェクト内の Backup Vault に保存されている Cloud SQL インスタンスのみが表示されます。
[Restore from a point in time] をクリックします。 Cloud SQL の [Create a clone] ページが開きます。
Backup Vault を使用して PITR を実行するの手順に沿って操作します。
次のステップ
ロールの付与については、 プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。