Spanner Omni バックアップを復元する

Spanner Omni データベースのバックアップを新しいデータベースに復元できます。復元されたデータベースには、バックアップの versionTime における 元のデータベースのすべてのデータとスキーマ情報が含まれます。これには、ALTER DATABASE SET OPTIONS コマンドで設定したすべてのデータベース オプションが含まれます。

復元されたデータベースには次の項目は含まれません。

  • IAM 権限。復元が完了したら、適切な IAM 権限を適用する必要があります。

  • 変更ストリームの内部データ。

  • 行削除ポリシーで定義された有効期間(TTL)。復元が完了したら、これらのポリシーを再構成する必要があります。

  • データベースの事前分割時に作成した分割ポイント。

Spanner Omni のプレビュー版では、バックアップと復元はサポートされていません。バックアップを作成してバックアップから復元できる機能を入手するには、Google に連絡して Spanner Omni のフル バージョンへの早期アクセスをリクエストしてください。

復元の仕組み

Spanner Omni データベースを復元する場合は、ソース バックアップと新しいターゲット データベースを指定する必要があります。既存のデータベースに復元することはできません。

復元プロセスは高可用性を提供します。ターゲット内のリージョンとゾーンのクォーラムの大部分が使用可能であれば、データベースを復元できます。

復元の状態

復元されたデータベースは、2 つの長時間実行オペレーションによって追跡される 3 つの状態に順次移行します。

状態 説明
CREATING Spanner Omni は、新しいデータベースを作成し、バックアップからファイルをマウントして復元を開始します。この状態では、復元されたデータベースはまだ使用できません。完了すると、データベースを使用できるようになります。

注: Spanner Omni では、復元中にバックアップを削除することはできません。復元が完了してデータベースが READY 状態になったら削除できます。
READY_OPTIMIZING バックアップをマウントすると、Spanner Omni は保存サイズを最適化しながら新しいデータベースにデータのコピーを開始します。このプロセスでデータベースの使用準備が完了します。

注意:
  • 読み取りレイテンシが通常よりも若干高くなる場合があります。
  • ストレージ指標には、バックアップではなく、新しいデータベースのサイズが表示されます。転送中に、結果にすべてのデータの合計サイズが反映されないことがあります。
  • この状態では、マウントされたバックアップを削除できません。
READY コピーと最適化のオペレーションが完了すると、データベースは READY 状態に移行します。データベースは完全に復元され、バックアップは不要になります。

CREATING 状態の進行状況を追跡するには、長時間実行復元オペレーションをクエリで取得します。このオペレーションは RestoreDatabaseMetadata オブジェクトを返します。READY_OPTIMIZING 状態では、オペレーションは OptimizeRestoredDatabaseMetadata オブジェクトを返します。

アクセス制御(IAM)

次のロールは、Spanner Omni の復元オペレーションに必要な権限を提供します。

IAM ロール 権限
roles/spanner.restoreAdmin バックアップから復元する権限。
roles/spanner.admin 復元オペレーションと他のすべての Spanner Omni リソースに対する完全アクセス権。
owner 復元オペレーションに対する完全アクセス権。
editor 復元オペレーションに対する完全アクセス権。
viewer 復元オペレーションを表示する権限。バックアップの作成、更新、削除、コピーはできません。

バックアップからのデータベースの復元

データベースを復元するには、spanner databases restore コマンドを使用します。

spanner databases restore \
  --destination-database=RESTORE_DATABASE_NAME \
  --source-backup=BACKUP_NAME \
  --async