Questa pagina descrive le operazioni di backup di Spanner e spiega come eseguire il backup di un database. Per saperne di più sui backup, consulta Panoramica dei backup.
Puoi eseguire il backup dei database utilizzando quanto segue:
Prima di iniziare
Gli esempi di gcloud CLI in questa pagina fanno le seguenti ipotesi:
- Hai già configurato gcloud CLI per l'utilizzo con Spanner. Se non hai mai utilizzato gcloud CLI con Spanner, consulta la guida introduttiva a Spanner con gcloud CLI.
Hai configurato gcloud CLI con il tuo progetto. Ad esempio:
gcloud config set core/project PROJECT_ID
Hai un'istanza denominata
test-instance
e un database denominatoexample-db
.
-
Per ottenere le autorizzazioni necessarie per creare e gestire i backup, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'istanza:
-
Crea, visualizza, aggiorna ed elimina i backup:
Amministratore backup Cloud Spanner (
roles/spanner.backupAdmin
) -
Crea e visualizza i backup:
Writer backup di Cloud Spanner (
roles/spanner.backupWriter
)
-
Crea, visualizza, aggiorna ed elimina i backup:
Amministratore backup Cloud Spanner (
Crea backup
Console
Nella console Google Cloud, vai alla pagina Istanze di Spanner.
Fai clic sull'istanza che contiene il database di cui vuoi eseguire il backup.
Fai clic sul database.
Nel riquadro di navigazione, fai clic su Backup/Ripristino.
Nella scheda Backup, fai clic su Crea backup.
Compila il modulo e fai clic su Crea.
Per verificare lo stato di avanzamento di un'operazione di backup, vedi Controllare l'avanzamento dell'operazione.
gcloud
Per creare un backup denominato example-db-backup-6
che scadrà tra 1 anno,
utilizza gcloud spanner backups create
:
gcloud spanner backups create example-db-backup-6 --instance=test-instance \
--database=example-db --retention-period=1y --async
Ecco alcune note sull'utilizzo:
- Per impostare la data di scadenza del backup, specifica il flag
--retention-period
o--expiration-date
. Per informazioni sulla sintassi delle date, consultagcloud topic datetimes
. - Il nome del backup deve essere univoco nell'istanza.
- Il comando viene restituito immediatamente a causa del flag
--async
. Senza il flag, il comando attenderà il completamento dell'operazione di backup. - Specifica il flag
--help
per ricevere assistenza per qualsiasi comando.
L'output è simile al seguente:
Create request issued for: [example-db-backup-6]
Check operation [projects/my-project/instances/test-instance/backups/example-db-backup-6/operations/_auto_op_234567] for status.
Per verificare lo stato di avanzamento di un'operazione di backup, vedi Controllare l'avanzamento dell'operazione.
Librerie client
Il seguente esempio di codice crea un backup in un punto version_time
specifico e ne attende il completamento. Al termine, verifica che il backup sia pronto e recupera alcune informazioni al riguardo, come il nome, le dimensioni e l'ora di creazione.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Copiare un backup
Console
Nella console Google Cloud, vai alla pagina Istanze di Spanner.
Fai clic sull'istanza che contiene il database da copiare.
Fai clic sul database.
Nel riquadro di navigazione, fai clic su Backup/Ripristino.
Nella tabella Backup, seleziona Azioni per il backup e fai clic su Copia.
Compila il modulo scegliendo un'istanza di destinazione, fornendo un nome e selezionando una data di scadenza per la copia di backup.
Fai clic su Copia.
Per verificare l'avanzamento di un'operazione di copia, consulta Verificare l'avanzamento dell'operazione.
Se l'operazione richiede troppo tempo, puoi annullarla. Per ulteriori informazioni, consulta Annullare un'operazione di istanza a lunga esecuzione.
gcloud
Per copiare un backup in un'istanza diversa dello stesso progetto, utilizza gcloud spanner backups copy
:
gcloud spanner backups copy \
--source-instance=test-instance \
--source-backup=example-db \
--destination-instance=backup-instance \
--destination-backup=copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Per copiare un backup in un'istanza diversa di un altro progetto:
gcloud spanner backups copy \
--source-backup=projects/my-project/instances/test-instance/backups/example-db \
--destination-backup=projects/backup-project/instances/backup-instance-eu/backups/copied-backup \
--expiration-date=2022-03-30T10:49:41Z
Note sull'utilizzo:
- Se scegli di copiare il backup in un'altra istanza dello stesso progetto, devi creare una nuova istanza (o averne una pronta) per il backup copiato.
Nell'esempio precedente, viene utilizzato
backup-instance
. Non puoi creare una nuova istanza nell'ambito dell'operazione di copia di backup. - Se scegli di copiare il backup in un progetto diverso, devi avere un altro progetto con la propria istanza pronto per il backup copiato. Nell'esempio precedente, viene utilizzato
backup-project
. Non puoi creare un nuovo progetto nell'ambito dell'operazione di copia di backup. - La scadenza del backup deve essere di almeno sei ore dal momento dell'elaborazione della richiesta di copia attuale e al massimo 366 giorni dopo il backup dell'origine
create_time
.
L'output è simile al seguente:
createTime: '2022-03-29T22:06:05.905823Z'
database: projects/my-project/instances/test-instance/databases/example-db
databaseDialect: GOOGLE_STANDARD_SQL
encryptionInfo:
encryptionType: GOOGLE_DEFAULT_ENCRYPTION
expireTime: '2022-03-30T10:49:41Z'
maxExpireTime: '2023-03-17T20:46:33.479336Z'
name: projects/backup-project/instances/backup-instance-eu/backups/copied-backup
sizeBytes: '7957667'
state: READY
versionTime: '2022-03-16T20:46:33.479336Z'
Per verificare l'avanzamento di un'operazione di copia, consulta Verificare l'avanzamento dell'operazione.
Librerie client
Il seguente esempio di codice copia un backup esistente. Puoi copiare il backup in un'istanza di un'altra regione
o di un progetto diverso. Al termine, l'esempio recupera e stampa alcune informazioni sul backup appena creato, come il nome, le dimensioni, lo stato del backup e version_time
.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Verificare l'avanzamento dell'operazione
Console
Nella console Google Cloud, vai alla pagina Istanze di Spanner.
Fai clic sull'istanza che contiene il database di cui vuoi visualizzare l'operazione di backup.
Fai clic sul database.
Nel riquadro di navigazione, fai clic su Operazioni. La pagina Operazioni mostra un elenco delle operazioni in esecuzione.
gcloud
Utilizza gcloud spanner operations describe
per controllare l'avanzamento di un'operazione.
Recupera l'ID operazione:
gcloud spanner operations list --instance=INSTANCE_NAME \ --database=DATABASE_NAME --type=BACKUP
Sostituisci quanto segue:
- INSTANCE_NAME con il nome istanza Spanner.
- DATABASE_NAME con il nome del database.
Note sull'utilizzo:
Per limitare l'elenco, specifica il flag
--filter
. Ad esempio:--filter="metadata.name:example-db"
elenca solo le operazioni su un database specifico.- In
--filter="error:*"
vengono elencate solo le operazioni di backup non riuscite.
Per informazioni sulla sintassi dei filtri, vedi
gcloud topic filters
. Per informazioni su come filtrare le operazioni di backup, consulta il campofilter
inListBackupOperationsRequest
.Il flag
--type
non è sensibile alle maiuscole.
L'output è simile al seguente:
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
Corsa di
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID \ --instance=INSTANCE_NAME \ --backup=BACKUP_NAME \
Sostituisci quanto segue:
- OPERATION_ID: l'ID dell'operazione che vuoi controllare.
- INSTANCE_NAME: il nome dell'istanza Spanner.
- BACKUP_NAME: il nome del backup di Spanner.
La sezione
progress
nell'output mostra la percentuale di completamento dell'operazione. L'output è simile al seguente: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 ...
Se l'operazione richiede troppo tempo, puoi annullarla. Per maggiori informazioni, consulta Annullare un'operazione di backup a lunga esecuzione.
Librerie client
Il seguente esempio di codice elenca tutte le operazioni in corso per la creazione di backup (operazioni
con CreateBackupMetadata
) e la copia dei backup
(operazioni con CopyBackupMetadata
)
filtrate da un determinato database.
Per informazioni sulla sintassi dei filtri, consulta il parametro filter
in
backupOperations.list
.
C++
C#
Per elencare tutte le operazioni di creazione di backup:
Per elencare tutte le operazioni di backup della copia:
Go
Java
Node.js
PHP
Python
Ruby
Per elencare tutte le operazioni di creazione di backup:
Per elencare tutte le operazioni di backup della copia:
Annullare un'operazione di backup
Console
La console Google Cloud non supporta l'annullamento di un'operazione di backup. Tuttavia, puoi annullare le operazioni che richiedono troppo tempo utilizzando Google Cloud CLI, REST o l'API RPC. Per maggiori informazioni, consulta Annullare un'operazione di istanza a lunga esecuzione.
gcloud
Utilizza gcloud spanner operations cancel
per annullare un'operazione di backup.
gcloud spanner operations cancel OPERATION_ID --instance=INSTANCE_NAME \ --database=DATABASE_NAME --backup=BACKUP
Sostituisci quanto segue:
- OPERATION_ID con l'ID operazione del backup.
- INSTANCE_NAME con il nome istanza Spanner.
- DATABASE_NAME con il nome del database.
- BACKUP con il nome del backup.
Librerie client
Il seguente esempio di codice crea un backup, annulla l'operazione di backup e
quindi attende che l'operazione di backup corrisponda a done
. Se l'operazione
è stata annullata correttamente, restituisce l'elemento cancelTime
e un messaggio di errore. Se l'operazione di backup è stata completata prima dell'annullamento, il backup esiste ed è possibile eliminarlo.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Recupera le informazioni di backup
Console
Nella console Google Cloud, vai alla pagina Istanze di Spanner.
Fai clic sull'istanza che contiene il database di cui vuoi visualizzare le informazioni di backup.
Fai clic sul database per aprire la pagina Panoramica.
Nel riquadro di navigazione, fai clic su Backup/Ripristino. Puoi visualizzare le informazioni sul backup selezionato nel database.
gcloud
Per informazioni su un backup, utilizza gcloud spanner backups describe
:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
L'output è simile al seguente:
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2021-02-04T02:05:43.268327Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Librerie client
Le librerie client non supportano il recupero delle informazioni di backup per un singolo backup. Tuttavia, puoi elencare tutti i backup e le relative informazioni in un'istanza. Per ulteriori informazioni, consulta Elencare i backup in un'istanza.
Elenca i backup in un'istanza
Console
Nella console Google Cloud, vai alla pagina Istanze di Spanner.
Fai clic sulla tua istanza per visualizzare tutti i backup disponibili e le relative informazioni.
Nel riquadro di navigazione, fai clic su Backup/Ripristino.
gcloud
Per elencare tutti i backup in un'istanza, utilizza gcloud spanner backups list
:
gcloud spanner backups list --instance=test-instance
L'output è simile al seguente:
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
Per limitare l'elenco, specifica il flag --filter
. Ad esempio, per filtrare l'elenco in modo da includere solo i backup ancora in fase di creazione, aggiungi --filter="state:creating"
. Per informazioni sulla sintassi dei filtri, vedi gcloud topic filters
.
Per informazioni su come filtrare i backup, consulta il campo filter
in ListBackupsRequest
.
Librerie client
Il seguente esempio di codice elenca i backup in una determinata istanza.
Puoi filtrare l'elenco dei backup restituiti (ad esempio, filtrando per nome, ora della versione o data di scadenza del backup) fornendo un'espressione di filtro. Per informazioni sulla sintassi dei filtri, consulta il parametro filter
in Elenco backup.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Aggiorna il periodo di scadenza del backup
Console
Vai alla pagina Istanze Spanner nella console Google Cloud.
Fai clic sull'istanza contenente il database per aprire la pagina Panoramica.
Fai clic sul database per aprire la pagina Panoramica.
Nel riquadro di navigazione, fai clic su Backup/Ripristino.
Fai clic sul pulsante Azioni per il backup selezionato, quindi seleziona Aggiorna metadati.
Seleziona la nuova data di scadenza.
Fai clic su Update (Aggiorna).
gcloud
Per aggiornare la data del periodo di scadenza di un backup,
utilizza gcloud spanner backups update-metadata
:
gcloud spanner backups update-metadata example-db-backup-6 \
--instance=test-instance --expiration-date=2020-05-05T00:00:00Z
L'output è simile al seguente:
createTime: '2020-02-04T02:05:43.920377Z'
database: projects/my-project/instances/test-instance/databases/example-db
expireTime: '2020-05-05T00:00:00Z'
name: projects/my-project/instances/test-instance/backups/example-db-backup-6
sizeBytes: '1000000000'
state: READY
Librerie client
Il seguente esempio di codice recupera la data di scadenza di un backup e la estende.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Eliminare un backup
Console
Vai alla pagina Istanze Spanner nella console Google Cloud.
Fai clic sull'istanza contenente il database per aprire la pagina Panoramica.
Fai clic sul database per aprire la pagina Panoramica.
Nel riquadro di navigazione, fai clic su Backup/Ripristino.
Fai clic sul pulsante Azioni per il backup selezionato, quindi seleziona Elimina.
Digita l'ID backup.
Fai clic su Elimina.
gcloud
Per eliminare un backup, utilizza gcloud spanner backups delete
:
gcloud spanner backups delete example-db-backup-1 --instance=test-instance
Devi confermare l'operazione:
You are about to delete backup [example-db-backup-1]
Do you want to continue (Y/n)? Y
Deleted backup [example-db-backup-1].
Librerie client
Il seguente esempio di codice elimina un backup e verifica che sia stato eliminato. L'eliminazione di un backup ancora in corso rimuove la risorsa di backup e annulla l'operazione di backup a lunga esecuzione.
C++
C#
Go
Java
Node.js
PHP
Python
Ruby