このページでは、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
完全バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。
増分バックアップ スケジュールを作成するには、次のサンプルコードをご覧ください。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
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
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
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
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" ] } ] } }