Auf dieser Seite wird beschrieben, wie Sie Cloud Spanner Backup and Wiederherstellung mit der gcloud-Befehlszeilenschnittstelle verwenden.
Vorbereitung
Bei den Beispielen auf dieser Seite wird von folgenden Annahmen ausgegangen:
Sie haben das gcloud SDK bereits für die Verwendung mit Cloud Spanner eingerichtet. Wenn Sie gcloud noch nicht mit Cloud Spanner verwendet haben, lesen Sie Erste Schritte mit Cloud Spanner mit gcloud.
Sie haben gcloud mit einem Standardprojekt konfiguriert. Beispiel:
gcloud config set core/project my-project
Sie haben eine Instanz namens
test-instance
und eine Datenbank namensexample-db
.
Sicherung erstellen
So erstellen Sie eine Sicherung mit dem Namen example-db-backup-6
, die in einem Jahr ablaufen soll:
gcloud spanner backups create example-db-backup-6 --instance=test-instance \
--database=example-db --retention-period=1y --async
Hier sind einige Nutzungshinweise:
- Geben Sie zum Festlegen des Ablaufdatums der Sicherung entweder das Flag
--retention-period
oder--expiration-date
an. Informationen zur Datumssyntax finden Sie unter gcloud topic datetime. - Der Name der Sicherung muss in der Instanz eindeutig sein.
- Der Befehl wird aufgrund des Flags
--async
sofort zurückgegeben. Ohne das Flag wartet der Befehl auf den Abschluss des Sicherungsvorgangs. - Geben Sie das Flag
--help
an, um Hilfe für beliebige Befehle zu erhalten.
Folgendes wird ausgegeben:
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.
Im nächsten Abschnitt verwenden wir den Sicherungsvorgang, um den Fortschritt der Sicherung zu prüfen.
Weitere Informationen zu diesem Befehl finden Sie unter gcloud spanner backups create.
Sicherungsfortschritt ansehen
Verwenden Sie gcloud spanner operations describe, um den Fortschritt eines Sicherungsvorgangs zu verfolgen:
gcloud spanner operations describe _auto_op_234567 \ --instance=test-instance --backup=example-db-backup-6
Hier ist die Ausgabe:
done: true metadata: '@type': type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata database: projects/my-project/instances/test-instance/databases/example-db name: projects/my-project/instances/test-instance/backups/example-db-backup-6 progress: endTime: '2020-02-04T02:07:59.089820Z' progressPercent: 100 startTime: '2020-02-04T02:05:43.920377Z' name: projects/my-project/instances/test-instance/backups/example-db-backup-6/operations/_auto_op_234567 response: '@type': type.googleapis.com/google.spanner.admin.database.v1.Backup 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
Wenn Sie den Namen des Vorgangs nicht kennen, suchen Sie ihn mit gcloud spanner operations list:
gcloud spanner operations list --instance=test-instance --type=BACKUP
Verwendungshinweise:
Wenn Sie die Liste einschränken möchten, geben Sie das Flag
--filter
an.--filter="metadata.name:example-db"
listet beispielsweise nur die Sicherungsvorgänge für eine bestimmte Datenbank auf.- Beispielsweise listet
--filter="error:*"
nur die fehlgeschlagenen Sicherungsvorgänge auf.
Informationen zur Filtersyntax finden Sie unter gcloud topic filters. Informationen zum Filtern von Sicherungsvorgängen finden Sie im Feld
filter
in ListBackupOperationsRequest.Beim Flag
--type
wird nicht zwischen Groß- und Kleinschreibung unterschieden.
Hier ist die Ausgabe:
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
Datenbank aus einer Sicherung wiederherstellen
So stellen Sie eine Datenbank wieder her:
gcloud spanner databases restore --async \
--destination-instance=test-instance --destination-database=example-db-restored \
--source-instance=test-instance --source-backup=example-db-backup-6
Verwendungshinweise:
- Der Befehl wird aufgrund des Flags
--async
sofort zurückgegeben. Ohne das Flag wartet der Befehl auf den Abschluss des Wiederherstellungsvorgangs. - Wenn die Quell- und Zielinstanzen unterschiedlich sind, müssen sie dieselbe Instanzkonfiguration haben.
- Wenn die Zieldatenbank bereits vorhanden ist, schlägt der Vorgang fehl.
Hier ist die Ausgabe:
Restore database in progress. Operation name=projects/my-project/instances/test-instance/databases/example-db-restored-1/operations/_auto_op_bb8e360b256b04bf
Weitere Informationen zu diesem Befehl finden Sie unter gcloud spanner databases restore.
Wiederherstellung ansehen und Fortschritt optimieren
Verwenden Sie gcloud spanner operations describe, um den Fortschritt eines Wiederherstellungsvorgangs zu verfolgen:
gcloud spanner operations describe _auto_op_bb8e360b256b04bf \ --instance=test-instance --database=example-db-restored
Hier ist die Ausgabe:
done: true metadata: '@type': type.googleapis.com/google.spanner.admin.database.v1.RestoreDatabaseMetadata backupInfo: backup: projects/my-project/instances/test-instance/backups/example-db-backup-6 createTime: '2020-02-03T23:48:06.259296Z' sourceDatabase: projects/my-project/instances/test-instance/databases/example-db name: projects/my-project/instances/test-instance/databases/example-db-restored optimizeDatabaseOperationName: projects/my-project/instances/test-instance/databases/example-db-restored/operations/_auto_op_7702f3f19fa99616 progress: endTime: '2020-02-04T02:40:56.424382Z' progressPercent: 100 startTime: '2020-02-04T02:35:30.683330Z' sourceType: BACKUP name: projects/my-project/instances/test-instance/databases/example-db-restored/operations/_auto_op_91ff1f270832a22b response: '@type': type.googleapis.com/google.spanner.admin.database.v1.Database createTime: '2020-02-04T02:35:30.683330Z' name: projects/my-project/instances/test-instance/databases/example-db-restored restoreInfo: backupInfo: backup: projects/my-project/instances/test-instance/backups/example-db-backup-6 createTime: '2020-02-03T23:48:06.259296Z' sourceDatabase: projects/my-project/instances/test-instance/databases/example-db sourceType: BACKUP state: READY_OPTIMIZING
In der Ausgabe sehen Sie, dass der Wiederherstellungsvorgang abgeschlossen ist und jetzt den Status
READY_OPTIMIZING
hat, wie unter So funktioniert die Wiederherstellung beschrieben. Außerdem erhalten wiroptimizeDatabaseOperationName
, mit dem wir den Fortschritt des Optimierungsvorgangs verfolgen können.Verwenden Sie gcloud spanner operations describe, um den Fortschritt des Optimierungsvorgangs zu verfolgen:
gcloud-testing spanner operations describe _auto_op_7702f3f19fa99616 \ --instance=test-instance --database=example-db-restored
Hier ist die Ausgabe:
done: true metadata: '@type': type.googleapis.com/google.spanner.admin.database.v1.OptimizeRestoredDatabaseMetadata name: projects/my-project/instances/test-instance/databases/example-db-restored progress: endTime: '2020-02-04T22:11:21.731739Z' progressPercent: 100 startTime: '2020-02-04T22:10:48.308090Z' name: projects/my-project/instances/test-instance/databases/example-db-restored/operations/_auto_op_7702f3f19fa99616 response: '@type': type.googleapis.com/google.spanner.admin.database.v1.Database createTime: '2020-02-04T22:03:34.282186Z' name: projects/my-project/instances/test-instance/databases/example-db-restored restoreInfo: backupInfo: backup: projects/my-project/instances/test-instance/backups/example-db-backup-6 createTime: '2020-02-03T23:48:06.259296Z' sourceDatabase: projects/my-project/instances/test-instance/databases/example-db sourceType: BACKUP state: READY
Wenn Sie den Namen des Wiederherstellungs- oder Optimierungsvorgangs nicht kennen, suchen Sie ihn mit gcloud spanner operations list. Wenn sich die wiederhergestellte Datenbank nicht in derselben Instanz wie die Sicherung befindet, müssen Sie die Zielinstanz im Flag
instance
angeben:gcloud spanner operations list --instance=test-instance \ --type=DATABASE_RESTORE
Hier ist die Ausgabe:
OPERATION_ID DONE @TYPE RESTORED_DATABASE SOURCE_BACKUP START_TIME END_TIME _auto_op_7702f3f19fa99616 True OptimizeRestoredDatabaseMetadata example-db-restored 2020-02-04T02:40:56.424382Z 2020-02-04T02:41:37.765157Z _auto_op_91ff1f270832a22b True RestoreDatabaseMetadata example-db-restored example-db-backup-6 2020-02-04T02:35:30.683330Z 2020-02-04T02:40:56.424382Z
Sicherungsinformationen abrufen
So rufen Sie Informationen zu einer Sicherung ab:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
Hier ist die Ausgabe:
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
Weitere Informationen zu diesem Befehl finden Sie unter gcloud spanner backups describe.
Sicherungen auflisten
So listen Sie alle Sicherungen in einer Instanz auf:
gcloud spanner backups list --instance=test-instance
Hier ist die Ausgabe:
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
Wenn Sie die Liste einschränken möchten, geben Sie das Flag --filter
an. Beispielsweise listet --filter="state:creating"
nur die Sicherungen auf, die noch erstellt werden.
Informationen zur Filtersyntax finden Sie unter gcloud topic filters.
Informationen zum Filtern von Sicherungen finden Sie im Feld filter
in ListBackupsRequest.
Weitere Informationen zu diesem Befehl finden Sie unter gcloud spanner backups list.
Sicherungsmetadaten aktualisieren
So aktualisieren Sie das Ablaufdatum einer Sicherung:
gcloud spanner backups update-metadata example-db-backup-6 \
--instance=test-instance --expiration-date=2020-05-05T00:00:00Z
Hier ist die Ausgabe:
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
Weitere Einzelheiten zu diesem Befehl finden Sie unter gcloud spanner backups update-metadata.
Sicherung löschen
So löschen Sie eine Sicherung:
gcloud spanner backups delete example-db-backup-1 --instance=test-instance
Sie müssen den Vorgang bestätigen:
You are about to delete backup [example-db-backup-1]
Do you want to continue (Y/n)? Y
Deleted backup [example-db-backup-1].
Weitere Informationen zu diesem Befehl finden Sie unter gcloud spanner backups delete.