このページでは、Spanner の復元オペレーションと、データベースを復元する方法について説明します。Spanner でのデータベース復元の詳細については、復元の概要をご覧ください。
Spanner データベースを復元するには、次のいずれかを使用します。
始める前に
このページの gcloud CLI の例では、次のことを前提としています。
- Spanner で使用する gcloud CLI をすでに設定している。Spanner で Google Cloud CLI を初めて使用する場合は、Google Cloud CLI を使用した Spanner のスタートガイドをご覧ください。
プロジェクトで Google Cloud CLI を構成しました。次に例を示します。
gcloud config set core/project PROJECT_ID
test-instance
という名前のインスタンスとexample-db
という名前のデータベースがあります。
-
バックアップからデータベースを復元するために必要な権限を取得するには、インスタンスに対する Cloud Spanner 復元管理者 (
roles/spanner.restoreAdmin
)IAM ロールを付与するよう管理者に依頼してください。
バックアップからのデータベースの復元
Console
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックして、[概要] ページを開きます。
データベースをクリックして [概要] ページを開きます。
ナビゲーション パネルで [バックアップ / 復元] をクリックします。
選択したバックアップの [アクション] ボタンをクリックし、[復元] を選択します。
フォームに入力し、[復元] ボタンをクリックします。
オペレーションの進行状況を確認するには、オペレーション ページに表示される進行状況インジケータを確認します。
オペレーションに時間がかかりすぎる場合、キャンセルできます。詳細については、長時間実行インスタンス オペレーションをキャンセルするをご覧ください。
gcloud
データベースを復元するには、gcloud spanner databases restore
を使用します。
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6 \
--encryption_type=google-managed-encryption
使用上の注意:
- このコマンドは、
--async
フラグが指定されているためすぐに戻ります。フラグを指定しなければ、このコマンドは復元オペレーションが完了するまで待機します。 - ソースと宛先のインスタンスが異なる場合は、同じインスタンス構成にする必要があります。
- 宛先にデータベースがすでに存在する場合、オペレーションは失敗します。
encryption_type
の有効な値は、USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。
クライアント ライブラリ
次のコードサンプルでは、指定されたバックアップからデータベースを復元し、復元オペレーション(RestoreDatabaseMetadata
によるオペレーション)の完了を待機します。復元されたデータベースは、バックアップと同じインスタンス内に作成されます。完了すると、サンプルはデータベースからいくつかの復元情報を取得して表示します。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby