Esta página descreve as operações de programação de backup do Spanner e explica como configurar uma programação de backup para seu banco de dados.
Antes de começar
-
Para receber as permissões necessárias para criar e gerenciar programações de backup, peça ao administrador para conceder a você os seguintes papéis do IAM na instância:
-
Criar, visualizar, atualizar e excluir programações de backup:
Administrador de backup do Cloud Spanner (
roles/spanner.backupAdmin) -
Criar e visualizar programações de backup:
Gravador de backup do Cloud Spanner (
roles/spanner.backupWriter)
-
Criar, visualizar, atualizar e excluir programações de backup:
Administrador de backup do Cloud Spanner (
Criar uma programação de backup
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados.
Clique no banco de dados.
No menu de navegação, clique em Backup/restauração.
Clique em Criar programação de backup.
Preencha o formulário e clique em Criar.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SCHEDULE_ID: o ID da programação de backup.
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância em que você quer criar a programação de backup.
- DATABASE_ID: o ID do banco de dados em que você quer criar a programação de backup.
-
RETENTION_DURATION: a duração da retenção dos backups criados pela programação. Por exemplo, se você quiser que a duração da retenção seja de um dia, use
86400s. -
CRONTAB_EXPRESSION:
a expressão crontab para a frequência da programação de backup. Por exemplo, se você quiser que a frequência da programação de backup seja a cada 12 horas, use
0 12 * * *. -
BACKUP_TYPE:
se é uma programação de backup completo ou incremental. Os valores possíveis são
full-backupouincremental-backup. -
ENCRYPTION_TYPE:
o tipo de criptografia dos backups criados pela programação de backup.
Os valores válidos são
USE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONouCUSTOMER_MANAGED_ENCRYPTION. Se você usarCUSTOMER_MANAGED_ENCRYPTION, precisará especificar umkmsKeyName. Se o tipo de backup forincremental-backup, o tipo de criptografia precisará serGOOGLE_DEFAULT_ENCRYPTION.
Execute o seguinte comando:
Linux, macOS ou 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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância em que você quer criar a programação de backup.
- DATABASE_ID: o ID do banco de dados em que você quer criar a programação de backup.
- SCHEDULE_ID: o ID da programação de backup.
-
BACKUP_TYPE:
se é uma programação de backup completo ou incremental.
Os valores possíveis são
fullBackupSpecouincrementalBackupSpec. -
ENCRYPTION_TYPE: o tipo de criptografia dos backups
criados pela programação de backup. Os valores possíveis são
USE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONouCUSTOMER_MANAGED_ENCRYPTION. Se você usarCUSTOMER_MANAGED_ENCRYPTION, precisará especificar umkmsKeyName. Se o tipo de backup forincremental-backup, o tipo de criptografia precisa serGOOGLE_DEFAULT_ENCRYPTION. - RETENTION_DURATION: a duração da retenção dos backups criados pela programação.
Método HTTP e URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules?backup_schedule_id=SCHEDULE_ID
Corpo JSON da solicitação:
{
"retentionDuration": "RETENTION_DURATION",
"spec": {
"cronSpec": {
"text": "0 2 * * *"
}
},
"encryptionConfig": {
"encryptionType": "ENCRYPTION_TYPE"
},
"BACKUP_TYPE": {}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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"
}
Bibliotecas de cliente
C#
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Para criar uma programação de backup incremental, consulte o exemplo de código a seguir:C++
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Para criar uma programação de backup incremental, consulte o exemplo de código a seguir:Go
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Para criar uma programação de backup incremental, consulte o exemplo de código a seguir:Java
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Para criar uma programação de backup incremental, consulte o exemplo de código a seguir:Node.js
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Para criar uma programação de backup incremental, consulte o exemplo de código a seguir:PHP
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Python
Para criar uma programação de backup completo, consulte o exemplo de código a seguir:
Para criar uma programação de backup incremental, consulte o exemplo de código a seguir:Receber uma programação de backup
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados.
Clique no banco de dados.
No menu de navegação, clique em Backup/restauração.
Clique na guia Programações para conferir todas as programações de backup e as informações delas.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
- SCHEDULE_ID: o ID da programação de backup.
Execute o seguinte comando:
Linux, macOS ou 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
Você receberá uma resposta semelhante a esta:
{
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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
- SCHEDULE_ID: o ID da programação de backup.
Método HTTP e URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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"
}
Bibliotecas de cliente
C#
C++
Go
Java
Node.js
PHP
Python
Listar programações de backup
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados.
Clique no banco de dados.
No menu de navegação, clique em Backup/restauração.
Clique na guia Programações para conferir todas as programações de backup e as informações delas.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
Execute o seguinte comando:
Linux, macOS ou 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
Você receberá uma resposta semelhante a esta:
| 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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
Método HTTP e URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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"
}
]
}
Bibliotecas de cliente
C#
C++
Go
Java
Node.js
PHP
Python
Atualizar uma programação de backup
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados.
Clique no banco de dados.
No menu de navegação, clique em Backup/restauração.
Clique na guia Programações.
Selecione Mais ações para sua programação de backup e clique em Atualizar.
É possível atualizar a frequência e o tempo de retenção da programação de backup. Se for uma programação de backup completa, também é possível atualizar o tipo de criptografia.
Clique em Salvar.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SCHEDULE_ID: o ID da programação de backup.
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância em que você quer modificar a programação de backup.
- DATABASE_ID: o ID do banco de dados em que você quer modificar a programação de backup.
- RETENTION_DURATION: a duração da retenção dos backups criados pela programação.
-
CRONTAB_EXPRESSION:
a expressão crontab para a frequência da programação de backup. Por exemplo, se você quiser que a frequência da programação de backup seja a cada 12 horas, use
0 12 * * *. -
ENCRYPTION_TYPE:
o tipo de criptografia dos backups criados pela programação de backup.
Os valores válidos são
USE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONouCUSTOMER_MANAGED_ENCRYPTION. Se você usarCUSTOMER_MANAGED_ENCRYPTION, precisará especificar umkmsKeyName. Se o tipo de backup forincremental-backup, o tipo de criptografia precisará serGOOGLE_DEFAULT_ENCRYPTION.
Execute o seguinte comando:
Linux, macOS ou 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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância em que você quer modificar a programação de backup.
- DATABASE_ID: o ID do banco de dados em que você quer modificar a programação de backup.
- SCHEDULE_ID: o ID da programação de backup.
-
RETENTION_DURATION: a duração da retenção dos backups criados pela programação. Por exemplo, se você quiser que a duração da retenção seja de um dia,
especifique
86400s. -
ENCRYPTION_TYPE:
o tipo de criptografia dos backups criados pela programação de backup.
Os valores possíveis são
USE_DATABASE_ENCRYPTION,GOOGLE_DEFAULT_ENCRYPTIONouCUSTOMER_MANAGED_ENCRYPTION. Se você usarCUSTOMER_MANAGED_ENCRYPTION, precisará especificar umkmsKeyName. Se o tipo de backup forincremental-backup, o tipo de criptografia precisará serGOOGLE_DEFAULT_ENCRYPTION.
Método HTTP e 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
Corpo JSON da solicitação:
{
"retentionDuration": "RETENTION_DURATION",
"spec": {
"cronSpec": {
"text": "0 2 * * *"
}
"encryptionConfig": {
"encryptionType": "ENCRYPTION_TYPE"
},
},
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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"
}
Bibliotecas de cliente
C#
C++
Go
Java
Node.js
PHP
Python
Excluir uma programação de backup
Console
No console Google Cloud , acesse a página Instâncias do Spanner.
Clique na instância que contém o banco de dados.
Clique no banco de dados.
No menu de navegação, clique em Backup/restauração.
Selecione Mais ações para sua programação de backup e clique em Excluir.
Digite o nome da programação de backup.
Clique em Confirmar.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SCHEDULE_ID: o ID da programação de backup.
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância em que você quer excluir a programação de backup.
- DATABASE_ID: o ID do banco de dados em que você quer excluir a programação de backup.
Execute o seguinte comando:
Linux, macOS ou 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
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância em que você quer excluir a programação de backup.
- DATABASE_ID: o ID do banco de dados em que você quer excluir a programação de backup.
- SCHEDULE_ID: o ID da programação de backup.
Método HTTP e URL:
DELETE https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
Bibliotecas de cliente
C#
C++
Go
Java
Node.js
PHP
Python
Definir política de controle de acesso do IAM
É possível definir uma política de acesso do IAM para especificar quem tem acesso à programação de backup.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SCHEDULE_ID: o ID da programação de backup.
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
Execute o seguinte comando:
Linux, macOS ou 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
Você receberá uma resposta semelhante a esta:
Updated IAM policy for backupSchedule [SCHEDULE_ID]. bindings: - members: - user:test@google.com role: roles/editor etag: BwYi82k-fho= version: 1
policy.json que pode ser usado com este
comando da CLI gcloud:
{
"version": 1,
"etag": "BwYi8ypICC0=",
"bindings": [
{
"role": "roles/editor",
"members": [
"user:test@gmail.com"
]
}
]
}
REST v1
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
- SCHEDULE_ID: o ID da programação de backup.
Método HTTP e URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID:setIamPolicy?alt=json
Corpo JSON da solicitação:
{
"policy": {
"version": 1,
"etag": "BwYi8ypICC0=",
"bindings": [
{
"role": "roles/editor",
"members": [
"user:test@gmail.com"
]
}
]
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
{
"version": 1,
"etag": "etag",
"bindings": [
{
"role": "roles/non-primitive",
"members": [
"user:test@gmail.com"
]
}
]
}
}
Acessar política de controle de acesso do IAM
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- SCHEDULE_ID: o ID da programação de backup.
- PROJECT_ID: o ID do projeto;
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
Execute o seguinte comando:
Linux, macOS ou 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
Você receberá uma resposta semelhante a esta:
bindings: - members: - user:test@gmail.com role: roles/editor etag: BwYi82k-fho= version: 1
REST v1
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- INSTANCE_ID: o ID da instância
- DATABASE_ID: o ID do banco de dados.
- SCHEDULE_ID: o ID da programação de backup.
- PROJECT_ID: o ID do projeto;
Método HTTP e URL:
POST https://spanner.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID/backupSchedules/SCHEDULE_ID:getIamPolicy?alt=json
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
{
"version": 1,
"etag": "BwYbyZ9pc4o=",
"bindings": [
{
"role": "roles/editor",
"members": [
"user:test@gmail.com"
]
}
]
}
}