ポイントインタイム リカバリ(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 の料金をご覧ください。

次のステップ