ポイントインタイム リカバリ(PITR)の概要

Spanner のポイントインタイム リカバリ(PITR)は、偶発的な削除や書き込みから保護します。たとえば、オペレーターがデータを誤って書き込みした場合や、アプリケーション ロールアウトによってデータベースが破損した場合に PTR を使用すると、最長で過去 7 日前までのデータを復元できます。データを長期間保持する必要がある場合は、バックアップと復元またはエクスポートとインポートを使用できます。

デフォルトでは、データベースにすべてのデータとスキーマのすべてのバージョンが 1 時間保持されます。version_retention_period オプションを使用すると、この制限を 7 日間まで延長できます。手順については、保持期間の設定をご覧ください。Spanner は、古いバージョンのデータをマイクロ秒単位で保存します。またデータベースは、古いデータを復元できる最も古いバージョンを表す earliest_version_time を保持します。

データを復元する方法

データを復元するには、次の 2 つの方法があります。

  • データベースの一部を復元するには、過去のクエリ条件とタイムスタンプを指定してステイル読み取りを実行し、結果をライブ データベースへ書き戻します。これは通常、ライブ データベースの手術に使用されます。たとえば、特定の行を誤って削除したり、データのサブセットを誤って更新したりした場合は、この方法で復元できます。手順については、データベースの一部を復元するをご覧ください。

  • データベース全体を復元するには、過去のタイムスタンプを指定してデータベースをバックアップまたはエクスポートし、新しいデータベースへ復元またはインポートします。これは通常、破損が発生する前にデータベースをある時点に戻す必要がある場合に、データ破損の問題から回復するために使用されます。データベースのバックアップまたはエクスポートには数時間かかる場合があり、既存のデータベースに復元またはインポートできないことに注意してください。手順については、データベース全体の復元をご覧ください。

パフォーマンスに関する注意事項

保持期間が長いデータベース、特にデータが頻繁に上書きされるデータベースは、より多くのシステム リソースを使用します。これは特にデータベースに十分なコンピューティング容量がプロビジョニングされていない場合、データベースのパフォーマンスに影響する可能性があります。データベースの上書きレートが非常に高い場合(たとえば、データベースが 1 日に複数回上書きされる場合)、保持期間を徐々に増やし、システムをモニタリングすることを検討してください。次の点に注意してください。

  • ストレージ使用率の増加ストレージ制限を超えないように、ストレージ アラートを設定することをおすすめします。保持期間を延長する場合は、データベースが古いデータを蓄積するにつれてストレージ使用量が徐々に増加することに注意してください。これは、前の保持期間で期限切れになった古いデータが、もう期限切れではないためです。たとえば、保持期間を 3 日から 7 日に延長した場合、データベース ストレージが安定するまで 4 日間待つ必要があります。また、ストレージの増加を見積もる手順も提供しています。

  • CPU 使用率とレイテンシの増加。Spanner は、追加のコンピューティング リソースを使用して、古いバージョンのデータを圧縮して維持します。インスタンスとデータベースをモニタリングして、レイテンシと CPU 使用率が許容レベルを維持するようにします。

  • スキーマ更新の実行時間をの増加。保持期間を伸ばすと、スキーマ バージョンを長期間保持しなければならないため、サーバー リソースが空くまでスキーマの更新が throttled になる可能性があります。スキーマ更新のベスト プラクティスに従い、スキーマ更新の制限内に収まっていることを確認してください。

料金

PITR 機能の使用に追加料金はかかりません。ただし、データベースのバージョン保持期間をデフォルトの 1 時間から延長すると、データベース ストレージとコンピューティング容量の費用が増加する可能性があります。オンデマンド バックアップの費用は影響を受けません。これは、データベースの 1 つのバージョンのみが保存されるためです。詳細については、パフォーマンスに関する考慮事項セクションをご覧ください。データベースのバージョン保持期間を延長する前に、データベース ストレージの予想される増加量を見積もることができます。

Spanner の課金に関する一般的な情報については、Spanner の料金をご覧ください。

次のステップ