このページでは、クラスタを過去の状態に復元する方法について説明します。大規模なデータ損失から迅速に復旧するには、AlloyDB for PostgreSQL クラスタに特定の時点のデータを復元することをおすすめします。
始める前に
- 使用している Google Cloud プロジェクトで、AlloyDB へのアクセスが有効になっている必要があります。
- 使用している Google Cloud プロジェクトに、次のいずれかの IAM ロールが必要です。
roles/alloydb.admin
(AlloyDB 管理者の事前定義 IAM ロール)roles/owner
(オーナーの基本 IAM ロール)roles/editor
(編集者の基本 IAM ロール)
これらのロールを付与されていない場合は、組織管理者に連絡してアクセス権をリクエストしてください。
- 使用している Google Cloud プロジェクトに、次のすべての IAM ロールが必要です。
compute.networks.list
compute.addresses.create
compute.addresses.list
compute.globalAddresses.create
compute.globalAddresses.list
servicenetworking.services.addPeering
最小権限の原則に従ってこれらの権限を取得するには、管理者に
roles/alloydb.admin
(AlloyDB 管理者事前定義 IAM)ロールを付与するよう依頼してください。
最近の時点から復元する
AlloyDB では、特定の最近の範囲内の任意の時点から、アクティブなクラスタのデータを完全に復元できます。
利用可能な PITR 期間
復元できるのは、次の 2 つの時点のうち、新しい時点以降の任意の時点です。
復元可能期間の上限で表される時点。たとえば、復元期間が 14 日間の場合、この時点は過去 14 日間になります。
連続バックアップを最後に有効にした後で取得された最も古いバックアップの作成日時。継続的なバックアップを有効にしてクラスタを作成し、それ以降継続的なバックアップを無効にしていない場合、この時点がクラスタの最も古いバックアップの作成時間になります。
継続的なバックアップを無効にして再度有効にした場合、ユーザーまたは AlloyDB がクラスタの最初の新しいバックアップを作成しない限り、ポイントインタイム リカバリを実行できません。これは、オンデマンド バックアップ、または継続的なバックアップを有効にした後に AlloyDB が取得する最初の日次バックアップのいずれかです。バックアップ タイプの詳細については、データのバックアップと復元の概要をご覧ください。
ポイントインタイム復元を実行する
Google Cloud コンソールまたは Google Cloud CLI を使用して復元を行います。
コンソール
[クラスタ] ページに移動します。
[リソース名] 列でクラスタをクリックします。
[データ保護] をクリックします。
[特定の時点から復元] で [復元] をクリックします。
[ターゲット時間] フィールドに、復元元の日時を入力します。
[クラスタ ID] フィールドに、新しいクラスタの名前を入力します。
[ネットワーク] フィールドで、新しいクラスタが使用する Virtual Private Cloud ネットワークを選択します。
デフォルトの Google 管理暗号化ではなく、顧客管理の暗号鍵(CMEK)を使用してこのクラスタの継続的バックアップとデータ変更ログを暗号化する場合は、次の追加手順を行います。
[高度な暗号化オプション] をクリックします。
[顧客管理の暗号鍵(CMEK)] ラジオボタンをクリックします。
[顧客管理の暗号鍵を選択] リストをクリックして、鍵を選択します。
[復元] をクリックします。
gcloud
クラスタとタイムスタンプを指定して、
gcloud alloydb clusters restore
コマンドを使用します。バックアップからの復元とは異なり、ポイントインタイム リカバリでは元のクラスタが存在している必要があります。削除されたクラスタでは、このタイプの復元は実行できません。gcloud alloydb clusters restore NEW_CLUSTER \ --source-cluster=SOURCE_CLUSTER \ --point-in-time=TIMESTAMP \ --region=REGION
このコマンドはオペレーションを返します。そのステータスは
gcloud alloydb operations describe
コマンドを使用してクエリできます。gcloud alloydb operations describe OPERATION_ID \ --region=REGION
次のように置き換えます。
NEW_CLUSTER
: 新しいクラスタで使用する ID。SOURCE_CLUSTER
: データを復元するクラスタの ID。
別のプロジェクトのクラスタから復元するには、次の形式でクラスタの完全パスに置き換えます。
projects/SOURCE_PROJECT/locations/SOURCE_REGION/clusters/SOURCE_CLUSTER
TIMESTAMP
: データを復元する時点の説明。RFC 3339 形式で指定します(例:2012-11-15T16:19:00.094Z
)。マイクロ秒単位の小さな秒数を指定できます。このタイムスタンプは、クラスタの作成時に指定した保持期間内に存在する必要があります。
REGION
: ソースクラスタを含むリージョン。AlloyDB が新しいクラスタを作成するリージョン。例:us-central1
。PROJECT_ID
: 新しいクラスタがあるプロジェクトの ID。
Google 管理の暗号化ではなく、顧客管理の暗号鍵(CMEK)を使用して新しいクラスタのデータを暗号化する場合は、次の追加引数を指定する必要があります。
--kms-key=KEY_ID
: 使用する CMEK 鍵の ID。*--kms-keyring=KEYRING_ID
: 鍵のキーリングの ID。*--kms-location=LOCATION_ID
: キーリングのリージョンの ID。クラスタのリージョンと一致する必要があります。--kms-project=PROJECT_ID
: キーリングのプロジェクトの ID。
Private Service Connect が有効になっているクラスタを復元するには、
--enable-private-service-connect
フラグを追加します。AlloyDB がクラスタの作成を完了したら、クラスタのプライマリ インスタンスを作成します。このインスタンスを使用すると、復元されたデータにアクセスできます。新しいインスタンスの構成は、元のプライマリ インスタンスの構成と完全に一致する必要はありません。
復元オペレーションの完了後に、クラスタの使用を開始できます。