このページでは、Spanner のバックアップ オペレーションについて説明します。 バックアップの詳細については、バックアップの概要をご覧ください。
始める前に
-
イメージの管理バックアップに必要な権限を取得するには、インスタンスに対する次の IAM ロールの付与を管理者に依頼してください。
-
バックアップの作成、表示、更新、削除: Cloud Spanner バックアップ管理者(
roles/spanner.backupAdmin
) -
バックアップの作成と表示: Cloud Spanner バックアップ書き込み(
roles/spanner.backupWriter
)
-
バックアップの作成、表示、更新、削除: Cloud Spanner バックアップ管理者(
このページの gcloud CLI の例では、次のことを前提としています。
- Spanner で使用する gcloud CLI をすでに設定している。Spanner で gcloud CLI を初めて使用する場合は、gcloud CLI を使用した Spanner のスタートガイドをご覧ください。
プロジェクトで gcloud CLI を構成している。次に例を示します。
gcloud config set core/project PROJECT_ID
バックアップをコピーする
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
コピーするデータベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション パネルで [バックアップ/復元] をクリックします。
[バックアップ] テーブルで、バックアップの [アクション] を選択し、[コピー] をクリックします。
宛先インスタンスを選択、名前を指定し、バックアップ コピーの有効期限を選択して、フォームに入力します。
[コピー] をクリックします。
コピー オペレーションの進行状況を確認するには、オペレーションの進行状況を確認するをご覧ください。
オペレーションに時間がかかりすぎる場合、キャンセルできます。詳細については、長時間実行インスタンス オペレーションをキャンセルするをご覧ください。
gcloud
バックアップは、同じプロジェクト内の別のインスタンスまたは別のプロジェクト内の別のインスタンスにコピーできます。
同じプロジェクト内でバックアップをコピーする
同じプロジェクト内の別のインスタンスにバックアップをコピーする場合は、コピーしたバックアップ用に新しいインスタンスを作成する(または準備が完了しているインスタンスが存在する)必要があります。 バックアップ コピー オペレーションの一部として新しいインスタンスを作成することはできません。また、バックアップの有効期限は、現在のコピー リクエストが処理されてから 6 時間以上後、かつソース バックアップの create_time
から 366 日以内であることが必要です。
後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- SOURCE_INSTANCE_ID: ソースの Spanner インスタンス ID。
- SOURCE_DATABASE_ID: ソースの Spanner データベース ID。
- SOURCE_BACKUP_NAME: Spanner バックアップ名。
- DESTINATION_INSTANCE_ID: ターゲット Spanner インスタンス ID。
- DESTINATION_BACKUP_NAME: 宛先の Spanner バックアップ名。
- EXPIRATION_DATE: 有効期限のタイムスタンプ。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backups copy \ --source-instance=INSTANCE_ID \ --source-backup=SOURCE_BACKUP_NAME \ --destination-instance=DESTINATION_INSTANCE_ID \ --destination-backup=DESTINATION_BACKUP_NAME \ --expiration-date=EXPIRATION_DATE
Windows(PowerShell)
gcloud spanner backups copy ` --source-instance=INSTANCE_ID ` --source-backup=SOURCE_BACKUP_NAME ` --destination-instance=DESTINATION_INSTANCE_ID ` --destination-backup=DESTINATION_BACKUP_NAME ` --expiration-date=EXPIRATION_DATE
Windows(cmd.exe)
gcloud spanner backups copy ^ --source-instance=INSTANCE_ID ^ --source-backup=SOURCE_BACKUP_NAME ^ --destination-instance=DESTINATION_INSTANCE_ID ^ --destination-backup=DESTINATION_BACKUP_NAME ^ --expiration-date=EXPIRATION_DATE
次のようなレスポンスが返されます。
createTime: '2022-03-29T22:06:05.905823Z' database: projects/PROJECT_ID/instances/INSTANCE_ID/databases/SOURCE_DATABASE_ID databaseDialect: GOOGLE_STANDARD_SQL encryptionInfo: encryptionType: GOOGLE_DEFAULT_ENCRYPTION expireTime: '2022-03-30T10:49:41Z' maxExpireTime: '2023-03-17T20:46:33.479336Z' name: projects/PROJECT_ID/instances/DESTINATION_INSTANCE_ID/backups/DESTINATION_BACKUP_NAME sizeBytes: '7957667' state: READY versionTime: '2022-03-16T20:46:33.479336Z'
別のプロジェクトにバックアップをコピーする
別のプロジェクトにバックアップをコピーする場合は、コピーしたバックアップ用に独自のインスタンスが準備されている別のプロジェクトが必要です。バックアップ コピー オペレーションの一部として新しいプロジェクトを作成することはできません。また、バックアップの有効期限は、現在のコピー リクエストが処理されてから 6 時間以上後、かつソース バックアップ create_time
から 366 日以内であることが必要です。
後述のコマンドデータを使用する前に、次のように置き換えます。
- SOURCE_PROJECT_ID: ソース プロジェクト ID
- SOURCE_INSTANCE_ID: ソース Spanner インスタンス ID。
- SOURCE_DATABASE_ID: ソースの Spanner データベース ID。
- SOURCE_BACKUP_NAME: Spanner バックアップ名。
- DESTINATION_PROJECT_ID: 宛先プロジェクトの ID。
- DESTINATION_INSTANCE_ID: ターゲットの Spanner インスタンス ID。
- DESTINATION_BACKUP_NAME: 宛先の Spanner バックアップ名。
- EXPIRATION_DATE: 有効期限のタイムスタンプ。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backups copy \ --source-backup=projects/SOURCE_PROJECT_ID/instances/INSTANCE_ID/backups/SOURCE_BACKUP_NAME \ --destination-backup=projects/DESTINATION_PROJECT_ID/instances/DESTINATION_INSTANCE_ID/backups/DESTINATION_BACKUP_NAME \ --expiration-date=EXPIRATION_DATE
Windows(PowerShell)
gcloud spanner backups copy ` --source-backup=projects/SOURCE_PROJECT_ID/instances/INSTANCE_ID/backups/SOURCE_BACKUP_NAME ` --destination-backup=projects/DESTINATION_PROJECT_ID/instances/DESTINATION_INSTANCE_ID/backups/DESTINATION_BACKUP_NAME ` --expiration-date=EXPIRATION_DATE
Windows(cmd.exe)
gcloud spanner backups copy ^ --source-backup=projects/SOURCE_PROJECT_ID/instances/INSTANCE_ID/backups/SOURCE_BACKUP_NAME ^ --destination-backup=projects/DESTINATION_PROJECT_ID/instances/DESTINATION_INSTANCE_ID/backups/DESTINATION_BACKUP_NAME ^ --expiration-date=EXPIRATION_DATE
次のようなレスポンスが返されます。
createTime: '2022-03-29T22:06:05.905823Z' database: projects/SOURCE_PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID databaseDialect: GOOGLE_STANDARD_SQL encryptionInfo: encryptionType: GOOGLE_DEFAULT_ENCRYPTION expireTime: '2022-03-30T10:49:41Z' maxExpireTime: '2023-03-17T20:46:33.479336Z' name: projects/DESTINATION_PROJECT_ID/instances/DESTINATION_INSTANCE_ID/backups/DESTINATION_BACKUP_NAME sizeBytes: '7957667' state: READY versionTime: '2022-03-16T20:46:33.479336Z'
コピー オペレーションの進行状況を確認するには、オペレーションの進行状況を確認するをご覧ください。
クライアント ライブラリ
次のコードサンプルは、既存のバックアップをコピーします。バックアップを別のリージョンまたはプロジェクトのインスタンスにコピーできます。完了すると、サンプルは、新しく作成されたコピーされたバックアップに関する情報(名前、サイズ、バックアップの状態、version_time
など)を取得して表示します。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
オペレーションの進行状況を確認する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
バックアップ オペレーションを表示するデータベースを含むインスタンスをクリックします。
データベースをクリックします。
ナビゲーション パネルで [オペレーション] をクリックします。[オペレーション] ページに現在実行中のオペレーションのリストが表示されます。
gcloud
gcloud spanner operations describe
を使用してオペレーションの進行状況を確認します。
オペレーション ID を取得します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- INSTANCE_NAME: Spanner インスタンス名。
- DATABASE_NAME: Spanner データベース名。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner operations list --instance=INSTANCE_NAME \ --database=DATABASE_NAME --type=backup
Windows(PowerShell)
gcloud spanner operations list --instance=INSTANCE_NAME ` --database=DATABASE_NAME --type=backup
Windows(cmd.exe)
gcloud spanner operations list --instance=INSTANCE_NAME ^ --database=DATABASE_NAME --type=backup
次のようなレスポンスが返されます。
OPERATION_ID DONE @TYPE BACKUP SOURCE_DATABASE START_TIME END_TIME _auto_op_123456 True CreateBackupMetadata example-db-backup-7 example-db 2020-02-04T02:12:38.075515Z 2020-02-04T02:22:40.581170Z _auto_op_234567 True CreateBackupMetadata example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2020-02-04T02:07:59.089820Z
使用上の注意:
表示内容を限定するには、
--filter
フラグを指定します。次に例を示します。--filter="metadata.name:example-db"
は、特定のデータベースのオペレーションのみを一覧表示します。--filter="error:*"
には、失敗したバックアップ オペレーションのみが一覧表示されます。
フィルタ構文の詳細については、
gcloud topic filters
をご覧ください。バックアップ オペレーションのフィルタリングについては、ListBackupOperationsRequest
のfilter
フィールドをご覧ください。--type
フラッグでは、大文字と小文字は区別されません。
gcloud spanner operations describe
を実行します。後述のコマンドデータを使用する前に、次のように置き換えます。
- OPERATION_ID: オペレーション ID。
- INSTANCE_NAME: Spanner インスタンス名。
- DATABASE_NAME: Spanner データベース名。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner operations describe OPERATION_ID \ --instance=INSTANCE_NAME \ --backup=BACKUP_NAME \
Windows(PowerShell)
gcloud spanner operations describe OPERATION_ID ` --instance=INSTANCE_NAME ` --backup=BACKUP_NAME `
Windows(cmd.exe)
gcloud spanner operations describe OPERATION_ID ^ --instance=INSTANCE_NAME ^ --backup=BACKUP_NAME ^
次のようなレスポンスが返されます。
done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
progress
セクションに完了したオペレーションの割合が表示されます。オペレーションに時間がかかりすぎる場合、キャンセルできます。詳細については、長時間実行バックアップ オペレーションをキャンセルするをご覧ください。
クライアント ライブラリ
次のコードサンプルは、特定のデータベースでフィルタリングされた、バックアップの作成(CreateBackupMetadata
によるオペレーション)とバックアップのコピー(CopyBackupMetadata
によるオペレーション)の進行中のオペレーションを一覧表示します。
フィルタリング構文の詳細については、backupOperations.list
の filter
パラメータをご覧ください。
C++
C#
すべてのバックアップ作成オペレーションを一覧表示するには:
すべてのバックアップ作成オペレーションを一覧表示するには:
Go
Java
Node.js
PHP
Python
Ruby
すべてのバックアップ作成オペレーションを一覧表示するには:
すべてのバックアップ作成オペレーションを一覧表示するには:
バックアップ オペレーションをキャンセルする
Console
Google Cloud コンソールでは、バックアップ オペレーションのキャンセルはサポートされていません。ただし、時間がかかりすぎるオペレーションは、Google Cloud CLI、REST、または RPC API を使用してキャンセルできます。詳細については、長時間実行インスタンス オペレーションをキャンセルするをご覧ください。
gcloud
オペレーション ID を取得します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- INSTANCE_NAME: Spanner インスタンス名。
- DATABASE_NAME: Spanner データベース名。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner operations list --instance=INSTANCE_NAME \ --database=DATABASE_NAME --type=backup
Windows(PowerShell)
gcloud spanner operations list --instance=INSTANCE_NAME ` --database=DATABASE_NAME --type=backup
Windows(cmd.exe)
gcloud spanner operations list --instance=INSTANCE_NAME ^ --database=DATABASE_NAME --type=backup
次のようなレスポンスが返されます。
OPERATION_ID DONE @TYPE BACKUP SOURCE_DATABASE START_TIME END_TIME _auto_op_123456 True CreateBackupMetadata example-db-backup-7 example-db 2020-02-04T02:12:38.075515Z 2020-02-04T02:22:40.581170Z _auto_op_234567 True CreateBackupMetadata example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2020-02-04T02:07:59.089820Z
使用上の注意:
表示内容を限定するには、
--filter
フラグを指定します。次に例を示します。--filter="metadata.name:example-db"
は、特定のデータベースのオペレーションのみを一覧表示します。--filter="error:*"
には、失敗したバックアップ オペレーションのみが一覧表示されます。
フィルタ構文の詳細については、
gcloud topic filters
をご覧ください。バックアップ オペレーションのフィルタリングについては、ListBackupOperationsRequest
のfilter
フィールドをご覧ください。--type
フラッグでは、大文字と小文字は区別されません。
gcloud spanner operations cancel
を使用してバックアップ オペレーションをキャンセルします。後述のコマンドデータを使用する前に、次のように置き換えます。
- OPERATION_ID: オペレーション ID。
- INSTANCE_NAME: Spanner インスタンス名。
- DATABASE_NAME: Spanner データベース名。
- BACKUP_NAME: Spanner バックアップ名。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME \ --database=DATABASE_NAME --backup=BACKUP_NAME
Windows(PowerShell)
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME ` --database=DATABASE_NAME --backup=BACKUP_NAME
Windows(cmd.exe)
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME ^ --database=DATABASE_NAME --backup=BACKUP_NAME
クライアント ライブラリ
次のコードサンプルでは、バックアップを作成し、バックアップ オペレーションをキャンセルし、バックアップ オペレーションが done
になるまで待機します。オペレーションが正常にキャンセルされた場合は、cancelTime
とエラー メッセージが返されます。バックアップ オペレーションがキャンセルされる前に完了した場合、バックアップは存在し、削除できます。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
バックアップ情報の取得
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
バックアップ情報を表示するデータベースを含むインスタンスをクリックします。
データベースをクリックして [概要] ページを開きます。
ナビゲーション パネルで [バックアップ/復元] をクリックします。選択したバックアップのバックアップ情報は、データベースで確認できます。
gcloud
バックアップに関する情報を取得するには、gcloud spanner backups describe
を使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: Spanner インスタンス ID
- DATABASE_ID: Spanner データベース ID。
- BACKUP_NAME: Spanner バックアップ名。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backups describe BACKUP_NAME --instance=INSTANCE_ID
Windows(PowerShell)
gcloud spanner backups describe BACKUP_NAME --instance=INSTANCE_ID
Windows(cmd.exe)
gcloud spanner backups describe BACKUP_NAME --instance=INSTANCE_ID
次のようなレスポンスが返されます。
createTime: '2020-02-04T02:05:43.920377Z' database: projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID expireTime: '2021-02-04T02:05:43.268327Z' name: projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME sizeBytes: '1000000000' state: READY
クライアント ライブラリ
クライアント ライブラリは、単一のバックアップのバックアップ情報の取得をサポートしていません。ただし、インスタンス内のすべてのバックアップとその情報を一覧表示できます。詳細については、インスタンス内のバックアップを一覧表示するをご覧ください。
インスタンス内のバックアップを一覧表示する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
インスタンスをクリックして、使用可能なすべてのバックアップとその情報を表示します。
ナビゲーション パネルで [バックアップ / 復元] をクリックします。
gcloud
インスタンス内のすべてのバックアップを一覧表示するには、gcloud spanner backups list
を使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- INSTANCE_ID: Spanner インスタンス ID
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backups list --instance=INSTANCE_ID
Windows(PowerShell)
gcloud spanner backups list --instance=INSTANCE_ID
Windows(cmd.exe)
gcloud spanner backups list --instance=INSTANCE_ID
次のようなレスポンスが返されます。
BACKUP SOURCE_DATABASE CREATION_TIME EXPIRATION_TIME STATE BACKUP_SIZE_IN_BYTES IN_USE_BY example-db-backup-6 example-db 2020-02-04T02:05:43.920377Z 2021-02-04T02:05:43.268327Z CREATING example-db-backup-4 example-db 2020-02-04T01:21:20.873839Z 2021-02-04T01:21:20.530151Z READY 32 example-db-backup-3 example-db 2020-02-03T23:59:18.936433Z 2021-02-03T23:59:18.203083Z READY 32 example-db-backup-5 example-db 2020-02-03T23:48:06.259296Z 2021-02-03T23:48:05.830937Z READY 32 example-db-backup-2 example-db 2020-01-30T19:49:00.616338Z 2021-01-30T19:49:00.283917Z READY 32 example-db-backup-1 example-db 2020-01-30T19:47:09.492551Z 2021-01-30T19:47:09.097804Z READY 32
表示内容を限定するには、--filter
フラグを指定します。たとえば、作成中のバックアップのみを表示するようにリストをフィルタするには、--filter="state:creating"
を追加します。フィルタ構文の詳細については、gcloud topic filters
をご覧ください。バックアップのフィルタリングについては、ListBackupsRequest
の filter
フィールドをご覧ください。
クライアント ライブラリ
次のコードサンプルでは、特定のインスタンスのバックアップを一覧表示します。
フィルタ式を指定して、返されるバックアップのリストをフィルタリングできます(名前やバージョン時間、バックアップの有効期限などでフィルタリング)。フィルタリング構文の詳細については、リストのバックアップのfilter
パラメータをご覧ください。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
バックアップの有効期限を更新する
Console
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックして、[概要] ページを開きます。
データベースをクリックして [概要] ページを開きます。
ナビゲーション パネルで [バックアップ / 復元] をクリックします。
選択したバックアップの [アクション] ボタンをクリックし、[メタデータを更新] を選択します。
新しい有効期限を選択します。
[更新] をクリックします。
gcloud
バックアップの有効期限を更新するには、gcloud spanner backups update-metadata
を使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- BACKUP_ID: Spanner バックアップ ID。
- INSTANCE_ID: Spanner インスタンス ID
- EXPIRATION_DATE: 有効期限のタイムスタンプ。
- DATABASE_ID: Spanner データベース ID
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backups update-metadata BACKUP_ID \ --instance=INSTANCE_ID \ --expiration-date=EXPIRATION_DATE
Windows(PowerShell)
gcloud spanner backups update-metadata BACKUP_ID ` --instance=INSTANCE_ID ` --expiration-date=EXPIRATION_DATE
Windows(cmd.exe)
gcloud spanner backups update-metadata BACKUP_ID ^ --instance=INSTANCE_ID ^ --expiration-date=EXPIRATION_DATE
次のようなレスポンスが返されます。
createTime: '2020-02-04T02:05:43.920377Z' database: projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID expireTime: '2020-05-05T00:00:00Z' name: projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_ID sizeBytes: '1000000000' state: READY
クライアント ライブラリ
次のコードサンプルでは、バックアップの有効期限を取得して延長します。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
バックアップを削除する
Console
Google Cloud コンソールで、[Spanner インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックして、[概要] ページを開きます。
データベースをクリックして [概要] ページを開きます。
ナビゲーション パネルで [バックアップ / 復元] をクリックします。
選択したバックアップの [アクション] ボタンをクリックし、[削除] を選択します。
バックアップ ID を入力します。
[削除] をクリックします。
gcloud
バックアップを削除するには、gcloud spanner backups delete
を使用します。
後述のコマンドデータを使用する前に、次のように置き換えます。
- INSTANCE_ID: Spanner インスタンス ID
- BACKUP_NAME: Spanner バックアップ名。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backups delete BACKUP_NAME --instance=INSTANCE_ID
Windows(PowerShell)
gcloud spanner backups delete BACKUP_NAME --instance=INSTANCE_ID
Windows(cmd.exe)
gcloud spanner backups delete BACKUP_NAME --instance=INSTANCE_ID
次のようなレスポンスが返されます。
You are about to delete backup BACKUP_NAME Do you want to continue (Y/n)? Y Deleted backup BACKUP_NAME.
クライアント ライブラリ
次のコードサンプルでは、バックアップを削除し、削除されたことを確認します。 進行中のバックアップを削除すると、バックアップ リソースが削除され、長時間実行バックアップ オペレーションがキャンセルされます。
C++
C#
Go
Java
Node.js
PHP
Python
Ruby