このページでは、Spanner のバックアップ スケジュール オペレーションと、データベースのバックアップ スケジュールを設定する方法について説明します。
始める前に
-
バックアップ スケジュールの作成と管理に必要な権限を取得するには、インスタンスに対する次の IAM ロールの付与を管理者に依頼してください。
-
バックアップ スケジュールの作成、表示、更新、削除:
Cloud Spanner バックアップ管理者(
roles/spanner.backupAdmin
) -
バックアップ スケジュールの作成、表示:
Cloud Spanner バックアップ書き込み(
roles/spanner.backupWriter
)
-
バックアップ スケジュールの作成、表示、更新、削除:
Cloud Spanner バックアップ管理者(
バックアップ スケジュールを作成する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[バックアップ スケジュールを作成] をクリックします。
フォームに記入し、[作成] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SCHEDULE_ID: バックアップ スケジュール ID。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: バックアップ スケジュールを作成するインスタンスの ID。
- DATABASE_ID: バックアップ スケジュールを作成するデータベースの ID。
-
RETENTION_DURATION: スケジュールによって作成されたバックアップの保持期間。たとえば、保持期間を 1 日にする場合は、
86400s
を使用します。 -
CRONTAB_EXPRESSION: バックアップ スケジュールの頻度を表す crontab 式。たとえば、バックアップ スケジュールの頻度を 12 時間ごとに設定する場合は、
0 12 * * *
を使用します。 -
BACKUP_TYPE: フル バックアップ スケジュールか増分バックアップ スケジュールか。指定可能な値は
full-backup
またはincremental-backup
です。 -
ENCRYPTION_TYPE: バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。有効な値は
USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules create SCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-duration=RETENTION_DURATION \ --cron="CRONTAB_EXPRESSION" \ --backup-type=BACKUP_TYPE \ --encryption-type=ENCRYPTION_TYPE
Windows(PowerShell)
gcloud spanner backup-schedules create SCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-duration=RETENTION_DURATION ` --cron="CRONTAB_EXPRESSION" ` --backup-type=BACKUP_TYPE ` --encryption-type=ENCRYPTION_TYPE
Windows(cmd.exe)
gcloud spanner backup-schedules create SCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-duration=RETENTION_DURATION ^ --cron="CRONTAB_EXPRESSION" ^ --backup-type=BACKUP_TYPE ^ --encryption-type=ENCRYPTION_TYPE
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: バックアップ スケジュールを作成するインスタンスの ID。
- DATABASE_ID: バックアップ スケジュールを作成するデータベースの ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
-
BACKUP_TYPE: フル バックアップ スケジュールか増分バックアップ スケジュールか。
指定可能な値は
fullBackupSpec
、incrementalBackupSpec
です。 -
ENCRYPTION_TYPE: バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。指定可能な値は
USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。 - RETENTION_DURATION: スケジュールによって作成されたバックアップの保持期間。
HTTP メソッドと URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules?backup_schedule_id=SCHEDULE_ID
リクエストの本文(JSON):
{ "retentionDuration": "RETENTION_DURATION", "spec": { "cronSpec": { "text": "0 2 * * *" } }, "encryptionConfig": { "encryptionType": "ENCRYPTION_TYPE" }, "BACKUP_TYPE": {} }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "86400s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "BACKUP_TYPE": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
クライアント ライブラリ
C#
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。C++
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。Go
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。Java
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。Node.js
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。PHP
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
Python
フル バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。バックアップ スケジュールを取得する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[スケジュール] タブをクリックして、すべてのバックアップ スケジュールとその情報を表示します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules describe SCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules describe SCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules describe SCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
次のようなレスポンスが返されます。
{ encryptionConfig: encryptionType: USE_DATABASE_ENCRYPTION incrementalBackupSpec: {} name: projects/my-project/instances/my-instance/databases/my-database/backupSchedules/my-schedule retentionDuration: 2592000s spec: cronSpec: creationWindow: 14400s text: 0 */4 * * * timeZone: UTC updateTime: '2024-09-13T10:24:18.754839Z' }
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
HTTP メソッドと URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "100000s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
クライアント ライブラリ
C#
C++
Go
Java
Node.js
PHP
Python
バックアップ スケジュールを一覧表示する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[スケジュール] タブをクリックして、すべてのバックアップ スケジュールとその情報を表示します。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules list \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules list ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules list ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
次のようなレスポンスが返されます。
Name | Backup type | Cron | Retention duration | Encryption type |
---|---|---|---|---|
my-full-schedule | FULL | 30 12 * * * | 2592000s | USE_DATABASE_ENCRYPTION |
my-incr-schedule | INCREMENTAL | 0 */4 * * * | 2592000s | USE_DATABASE_ENCRYPTION |
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
HTTP メソッドと URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "backupSchedules": [ { "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "172800s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 */12 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-09-09T07:21:43.946180Z" }, { "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "2592000s", "encryptionConfig": { "encryptionType": "CUSTOMER_MANAGED_ENCRYPTION", "kmsKeyName": "projects/PROJECT_ID/locations/us-central1/keyRings/cmek-demo/cryptoKeys/test-key" }, "spec": { "cronSpec": { "text": "30 12 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-09-17T18:27:53.868741Z" } ] }
クライアント ライブラリ
C#
C++
Go
Java
Node.js
PHP
Python
バックアップ スケジュールを更新する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
[スケジュール] タブをクリックします。
バックアップ スケジュールの [その他の操作] を選択し、[更新] をクリックします。
バックアップ スケジュールの頻度と保持時間を更新できます。フル バックアップ スケジュールの場合は、暗号化の種類を更新することもできます。
[保存] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SCHEDULE_ID: バックアップ スケジュール ID。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: バックアップ スケジュールを変更するインスタンスの ID。
- DATABASE_ID: バックアップ スケジュールを変更するデータベースの ID。
- RETENTION_DURATION: スケジュールによって作成されたバックアップの保持期間。
-
CRONTAB_EXPRESSION: バックアップ スケジュールの頻度を表す crontab 式。たとえば、バックアップ スケジュールの頻度を 12 時間ごとに設定する場合は、
0 12 * * *
を使用します。 -
ENCRYPTION_TYPE: バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。有効な値は
USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules update SCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ --retention-duration=RETENTION_DURATION \ --cron="CRONTAB_EXPRESSION" \ --encryption-type=ENCRYPTION_TYPE
Windows(PowerShell)
gcloud spanner backup-schedules update SCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` --retention-duration=RETENTION_DURATION ` --cron="CRONTAB_EXPRESSION" ` --encryption-type=ENCRYPTION_TYPE
Windows(cmd.exe)
gcloud spanner backup-schedules update SCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ --retention-duration=RETENTION_DURATION ^ --cron="CRONTAB_EXPRESSION" ^ --encryption-type=ENCRYPTION_TYPE
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: バックアップ スケジュールを変更するインスタンスの ID。
- DATABASE_ID: バックアップ スケジュールを変更するデータベースの ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
-
RETENTION_DURATION: スケジュールによって作成されたバックアップの保持期間。たとえば、保持期間を 1 日にするには、
86400s
を指定します。 -
ENCRYPTION_TYPE: バックアップ スケジュールによって作成されたバックアップの暗号化タイプ。指定可能な値は
USE_DATABASE_ENCRYPTION
、GOOGLE_DEFAULT_ENCRYPTION
、CUSTOMER_MANAGED_ENCRYPTION
です。CUSTOMER_MANAGED_ENCRYPTION
を使用する場合は、kmsKeyName
を指定する必要があります。バックアップ タイプがincremental-backup
の場合は、暗号化タイプがGOOGLE_DEFAULT_ENCRYPTION
である必要があります。
HTTP メソッドと URL:
PATCH https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID?updateMask=retention_duration,encryption_config,spec.cron_spec.text
リクエストの本文(JSON):
{ "retentionDuration": "RETENTION_DURATION", "spec": { "cronSpec": { "text": "0 2 * * *" } "encryptionConfig": { "encryptionType": "ENCRYPTION_TYPE" }, }, }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID", "retentionDuration": "86400s", "encryptionConfig": { "encryptionType": "USE_DATABASE_ENCRYPTION" }, "spec": { "cronSpec": { "text": "0 2 * * *", "timeZone": "UTC", "creationWindow": "14400s" } }, "fullBackupSpec": {}, "updateTime": "2024-05-22T11:13:51.835590Z" }
クライアント ライブラリ
C#
C++
Go
Java
Node.js
PHP
Python
バックアップ スケジュールを削除する
Console
Google Cloud コンソールで、Spanner [インスタンス] ページに移動します。
データベースが含まれているインスタンスをクリックします。
データベースをクリックします。
ナビゲーション メニューで [バックアップ/復元] をクリックします。
バックアップ スケジュールの [その他の操作] を選択し、[削除] をクリックします。
バックアップ スケジュールの名前を入力します。
[確認] をクリックします。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SCHEDULE_ID: バックアップ スケジュール ID。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: バックアップ スケジュールを削除するインスタンスの ID。
- DATABASE_ID: バックアップ スケジュールを削除するデータベースの ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules delete SCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules delete SCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules delete SCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: バックアップ スケジュールを削除するインスタンスの ID。
- DATABASE_ID: バックアップ スケジュールを削除するデータベースの ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
HTTP メソッドと URL:
DELETE https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID
リクエストを送信するには、次のいずれかのオプションを展開します。
成功したことを示すステータス コード(2xx)と空のレスポンスが返されます。
クライアント ライブラリ
C#
C++
Go
Java
Node.js
PHP
Python
IAM アクセス制御ポリシーを設定する
IAM アクセス ポリシーを設定して、バックアップ スケジュールにアクセスできるユーザーを指定できます。
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SCHEDULE_ID: バックアップ スケジュール ID。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules set-iam-policy SCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID \ policy.json
Windows(PowerShell)
gcloud spanner backup-schedules set-iam-policy SCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID ` policy.json
Windows(cmd.exe)
gcloud spanner backup-schedules set-iam-policy SCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID ^ policy.json
次のようなレスポンスが返されます。
Updated IAM policy for backupSchedule [SCHEDULE_ID]. bindings: - members: - user:test@google.com role: roles/editor etag: BwYi82k-fho= version: 1
policy.json
ファイルの例を次に示します。{ "version": 1, "etag": "BwYi8ypICC0=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] }
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
HTTP メソッドと URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID:setIamPolicy?alt=json
リクエストの本文(JSON):
{ "policy": { "version": 1, "etag": "BwYi8ypICC0=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ { "version": 1, "etag": "etag", "bindings": [ { "role": "roles/non-primitive", "members": [ "user:test@gmail.com" ] } ] } }
IAM アクセス制御ポリシーを取得する
gcloud
後述のコマンドデータを使用する前に、次のように置き換えます。
- SCHEDULE_ID: バックアップ スケジュール ID。
- PROJECT_ID: プロジェクト ID。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud spanner backup-schedules get-iam-policy SCHEDULE_ID \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --database=DATABASE_ID
Windows(PowerShell)
gcloud spanner backup-schedules get-iam-policy SCHEDULE_ID ` --project=PROJECT_ID ` --instance=INSTANCE_ID ` --database=DATABASE_ID
Windows(cmd.exe)
gcloud spanner backup-schedules get-iam-policy SCHEDULE_ID ^ --project=PROJECT_ID ^ --instance=INSTANCE_ID ^ --database=DATABASE_ID
次のようなレスポンスが返されます。
bindings: - members: - user:test@gmail.com role: roles/editor etag: BwYi82k-fho= version: 1
REST v1
リクエストのデータを使用する前に、次のように置き換えます。
- INSTANCE_ID: インスタンス ID。
- DATABASE_ID: データベース ID。
- SCHEDULE_ID: バックアップ スケジュール ID。
- PROJECT_ID: プロジェクト ID。
HTTP メソッドと URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID:getIamPolicy?alt=json
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ { "version": 1, "etag": "BwYbyZ9pc4o=", "bindings": [ { "role": "roles/editor", "members": [ "user:test@gmail.com" ] } ] } }