メインコンテンツまでスキップ

データの復元とタイムトラベル

備考

プレビュー

この機能は、us-east-1us-west-2eu-west-1ap-southeast-1ap-southeast-2eu-central-1us-east-2ap-south-1のリージョンでパブリック プレビューとして提供されています。

Lakebase プロビジョニングは、手動でスケールするプロビジョニング コンピュートを使用します。 新しいLakebase オートスケールとの機能の比較については、 「バージョンの選択」を参照してください。

このページでは、子インスタンスを使用してデータを復元し、Lakebase データベース インスタンスでタイムトラベルを実行する方法について説明します。

子インスタンスはいつ作成する必要がありますか?

子インスタンスの作成は、次のシナリオで役立ちます。

  • 偶発的なデータ損失の回復: 昨日の午前 10 時 23 分にクリティカル テーブルが削除された場合、午前 10 時 22 分に設定された子インスタンスを生成して、欠落しているデータのみを抽出してマージし直すことができます。
  • テストおよびQA環境: 過去 X 日間 (復元ウィンドウで定義されている) の任意の時点から 本番運用のような環境を複製して、スキーマの変更を検証するか、統合テストを実行します。
  • コンプライアンスと監査: 内部監査、財務調整またはフォレンジック分析のために、過去の日付のデータベース状態を反映する子インスタンスをプロビジョニングします。

子インスタンスとは何ですか?

子インスタンスは、元のデータベース・インスタンスのコピー・オン・ライト・クローンです。これは、現在の時点から作成することも、 復元ウィンドウ 内の履歴時点から作成することもできます。復元ウィンドウは、ポイントインタイムリカバリを実行できる時間範囲 (2 日から 35 日) を指定します。リストア・ウィンドウは、データベース・インスタンスの作成時に定義されます。子インスタンスは、手動スナップショットやデータベース全体のエクスポートを待たずに、このリストア・ウィンドウ内の任意の時点で作成できます。

子インスタンスを作成すると、削除されるまでクエリに使用できます。親の復元ウィンドウに関連付けられた自動有効期限はありません。これにより、親の復元ウィンドウの有効期限が切れた場合でも、子インスタンスが作成された時点のデータに常にアクセスできるようになります。

子インスタンスは親から分離されます。子インスタンスで実行する読み取りまたは書き込みは、ソース インスタンスには影響しません。子インスタンスに加えられた変更にはコピーオンライトが使用されるため、変更は「デルタ」として保存されます。これにより、変更されていないデータが共有され、余分なストレージが最小限に抑えられます。

タイムトラベルしてデータを復元するための子インスタンスを作成する

子インスタンスの作成は、次のシナリオで役立ちます。

  • 偶発的なデータ損失の回復: 昨日の午前 10 時 23 分にクリティカル テーブルが削除された場合、午前 10 時 22 分に設定された子インスタンスを生成して、欠落しているデータのみを抽出してマージし直すことができます。
  • テストおよびQA環境: 過去 X 日間 (復元ウィンドウで定義されている) の任意の時点から 本番運用のような環境を複製して、スキーマの変更を検証するか、統合テストを実行します。
  • コンプライアンスと監査: 内部監査、財務調整またはフォレンジック分析のために、過去の日付のデータベース状態を反映する子インスタンスをプロビジョニングします。

ステップごとの指示

ステップ 1: (オプション) 親データベース インスタンスで復元ウィンドウを構成する

復元ウィンドウの有効な値は、2 日から 35 日までです。デフォルトのウィンドウは 7 日間です。データベース・インスタンスの作成時に、データベース・インスタンスのリストア・ウィンドウを指定できます。データベース ・インスタンスの作成を参照してください。

UI または API を使用して、データベース・インスタンスのリストア・ウィンドウを変更します。

  1. クリックアプリアイコン。右上隅の アプリを クリックし、 Lakebase Postgres を選択します。
  2. [プロビジョニング済み] をクリックして、 [プロビジョニング済みインスタンス] ページを開きます。
  3. 更新するデータベース・インスタンスを選択します。
  4. 右上隅の 編集 をクリックします。
  5. [詳細設定] で、復元ウィンドウの日数を設定します。
  6. 保存 をクリックします。

ステップ 2: 子インスタンスを作成する

子インスタンスの役割と権限は、選択した復元ポイントの親の役割と権限と同じです。これにより、ユーザーが親インスタンスで現在付与されている権限と一致しない権限を持つ可能性があります。Databricks ID ロールを表示 し、子インスタンスに対する古い特権を取り消します。

通常のデータベースインスタンスの作成時に「 親から作成 」を有効にして、子インスタンスを作成します。「 データベース・インスタンスの作成と管理」を参照してください。

  1. クリックアプリアイコン。右上隅の アプリを クリックし、 Lakebase Postgres を選択します。

  2. [プロビジョニング済み] をクリックして、 [プロビジョニング済みインスタンス] ページを開きます。

  3. [データベース インスタンスの作成]を クリックします。

  4. インスタンスを構成します。

    • 名前 : データベースインスタンス名を入力します (1 ~ 63 文字、文字とハイフンのみ)。
    • 容量 :コンピュートサイズ(自信:2CU)を選択してください。 インスタンス サイズを参照してください。
    • レスサーバーの使用ポリシー : サーバーレスの使用量と請求を属性にするための予算ポリシーを選択します (オプション)。 サーバレス予算ポリシーを参照してください。
  5. [詳細設定] を展開します。

  6. 親から作成を 有効にします。

  7. 子インスタンスの設定を構成します。

    • 親インスタンス名 : 子データベースを作成する親インスタンスの名前を入力します。
    • 親から次の時点までのデータを含める : データを取得する特定の履歴時点を選択します。
      • 現在の時点 : データベース インスタンスからの最新のデータを使用して子インスタンスを作成します。
      • 特定の日時 : データベース インスタンスの復元ウィンドウ内の特定の時点で子インスタンスを作成します。子インスタンスには、その特定の時点におけるすべてのデータが含まれます。
      • 特定のログ シーケンス番号 : 復元ウィンドウ内の特定の書き込み先行ログ (WAL) ログ シーケンス番号 (LSN) から子インスタンスを作成します。PostgreSQL はリカバリをサポートするために WAL を使用し、各 WAL レコードに LSN を割り当てます。子インスタンスには、その WAL LSN のすべてのデータが含まれます。WAL の詳細については、 「WAL 内部」を参照してください。現在の LSN 値を取得するには、 「バックアップ制御関数」を参照してください。
  8. 作成 をクリックします。

ステップ 3 (オプション): データを復元する

特定の時点で子インスタンスを作成した後、子インスタンスから本番運用インスタンスにデータを復元できます。 これは、偶発的なデータ損失や破損からの回復に役立ちます。

データを復元するには:

  1. 好みの PostgreSQL クライアントまたは接続方法を使用して子インスタンスに接続します。「接続とクエリ」を参照してください。

  2. 子インスタンスから本番運用インスタンスに必要なデータをコピーするスクリプトを作成します。 スクリプトは次のことを行う必要があります。

    • 子インスタンスから必要な特定のテーブルまたはデータをクエリします
    • 本番運用インスタンスでデータを挿入または更新する
    • 必要に応じて競合やデータ変換を処理する
  3. 正確性を確認するために、まずデータの小さなサブセットで復元操作をテストします。

  4. 完全な復元スクリプトを実行して、必要なデータをすべて本番運用にコピーして戻します。

  5. データを正常に復元し、本番運用インスタンスが正しいことを確認した後、子インスタンスを削除します。 インスタンスを削除するには、 「インスタンスの削除」を参照してください。

制限

  • データベース・インスタンスに対して一度に作成できる子インスタンスは 1 つだけです。
  • 親インスタンスは、子インスタンスを削除しない限り削除できません。
  • 子インスタンスは、短期間のテストまたはリカバリ用に設計されています。子または親に大幅な変更を加えると、システムが減少する可能性があります データ共有 子の完全なコピーが維持されます。 ストレージの使用量とコストは、スタンドアロン データベース インスタンスのそれに合わせて増加する可能性があります。