Questa pagina descrive le operazioni di backup di Spanner e spiega come eseguire 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. utilizzando 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 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 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 l'avanzamento di un'operazione di backup, vedi Verifica l'avanzamento dell'operazione.
gcloud
Per creare un backup denominato example-db-backup-6
e farlo scadere 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
--retention-period
o--expiration-date
. Per informazioni sulla sintassi delle date, vedigcloud topic datetimes
. - Il nome del backup deve essere univoco nell'istanza.
- Il comando viene restituito immediatamente a causa del flag
--async
. Senza il parametro 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 l'avanzamento di un'operazione di backup, vedi Verifica l'avanzamento dell'operazione.
Librerie client
Il seguente esempio di codice crea un backup in un punto version_time
specifico
e poi attende il suo completamento. Al termine, verifica che il backup sia
pronto e recupera alcune informazioni su quest'ultimo, come il nome,
creare l'ora.
C++
C#
Vai
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, vedi Verifica l'avanzamento dell'operazione.
Se l'operazione richiede troppo tempo, puoi annullarla. Per ulteriori informazioni, vedi Annulla un'operazione dell'istanza a lunga esecuzione.
gcloud
Per copiare un backup in un'istanza diversa dello stesso progetto,
usa 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'istanza diversa nello 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 altro progetto, devi avere un altro
con la propria istanza pronta per il backup copiato. Nella precedente
Ad esempio, 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 in cui
la richiesta di copia corrente viene elaborata e non più di 366 giorni dopo la data di origine
esegui il backup di
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, vedi Verifica l'avanzamento dell'operazione.
Librerie client
Il seguente esempio di codice copia un backup esistente. Puoi copiare il backup
in un'istanza in una regione o in un progetto differente. Al termine, i dati di esempio
recupera e stampa alcune informazioni sul backup copiato appena creato,
come il nome, le dimensioni, lo stato del backup e version_time
.
C++
C#
Vai
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 le operazioni in esecuzione.
gcloud
Utilizza gcloud spanner operations describe
lo stato di 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 l'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, controlla 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 da eseguire controllo.
- INSTANCE_NAME: il nome dell'istanza Spanner.
- BACKUP_NAME: il nome del backup di Spanner.
La sezione
progress
nell'output mostra la percentuale dell'operazione completato. 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 ulteriori informazioni, vedi Annulla un'operazione di backup a lunga esecuzione.
Librerie client
Nell'esempio di codice seguente sono elencate tutte le operazioni in corso per la creazione di backup (operazioni
con CreateBackupMetadata
) e copiando i backup
(operazioni con CopyBackupMetadata
)
filtrato in base a 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:
Vai
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 API Google Cloud CLI, REST o RPC. Per ulteriori 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 l'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 sia done
. Se l'operazione fosse
annullato correttamente, restituisce cancelTime
e un messaggio di errore. Se
l'operazione di backup è stata completata prima dell'annullamento e il backup esiste ed è possibile eliminarlo.
C++
C#
Vai
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 il backup per il backup selezionato nel database.
gcloud
Per ottenere informazioni su un backup,
usa 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 Per saperne di più, 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,
usa 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
per 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, versione
ora di scadenza o data di scadenza del backup) fornendo un'espressione di filtro. Per
informazioni sulla sintassi dei filtri, consulta il parametro filter
in
Elenco dei backup.
C++
C#
Vai
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 Aggiornare i metadati.
Seleziona la nuova data di scadenza.
Fai clic su Aggiorna.
gcloud
Per aggiornare la data del periodo di scadenza di un backup:
usa 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#
Vai
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:
usa 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#
Vai
Java
Node.js
PHP
Python
Ruby