Auf dieser Seite wird beschrieben, wie Sie die Sicherung und Wiederherstellung von Spanner mit der Google Cloud CLI verwenden.
Vorbereitung
Bei den Beispielen auf dieser Seite wird von folgenden Annahmen ausgegangen:
Sie haben bereits die gcloud CLI zur Verwendung mit Spanner eingerichtet. Wenn Sie die Google Cloud CLI mit Spanner noch nicht verwendet haben, lesen Sie Erste Schritte mit Spanner mit der Google Cloud CLI.
Sie haben die Google Cloud CLI 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
Verwenden Sie gcloud spanner backups create
, um eine Sicherung mit dem Namen example-db-backup-6
zu erstellen und sie in einem Jahr ablaufen zu lassen:
gcloud spanner backups create example-db-backup-6 --instance=test-instance \
--database=example-db --retention-period=1y --async
Hier sind einige Nutzungshinweise:
- Geben Sie das Flag
--retention-period
oder--expiration-date
an, um das Ablaufdatum der Sicherung festzulegen. Informationen zur Datumssyntax finden Sie unter gcloud topic datetimes. - 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, bis der Sicherungsvorgang abgeschlossen ist. Geben Sie das Flag
--help
an, um Hilfe für beliebige Befehle zu erhalten.Die Ausgabe sieht dann ungefähr so aus:
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.
Informationen zum Prüfen des Fortschritts eines Sicherungsvorgangs finden Sie unter Vorgangsfortschritt prüfen.
Sicherung kopieren
So kopieren Sie eine Sicherung in eine andere Instanz im selben Projekt:
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
So kopieren Sie eine Sicherung in eine andere Instanz in einem anderen Projekt:
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
Verwendungshinweise:
- Wenn Sie die Sicherung in eine andere Instanz im selben Projekt kopieren, müssen Sie eine neue Instanz für die kopierte Sicherung erstellen (oder bereits eine haben).
Im vorherigen Beispiel wurde
backup-instance
verwendet. Sie können während des Sicherungskopiervorgangs keine neue Instanz erstellen. - Wenn Sie die Sicherung in ein anderes Projekt kopieren, muss ein anderes Projekt mit einer eigenen Instanz für die kopierte Sicherung bereit sein. Im vorherigen Beispiel wurde
backup-project
verwendet. Während des Sicherungskopiervorgangs können Sie kein neues Projekt erstellen. - Die Ablaufzeit der Sicherung muss mindestens sechs Stunden ab dem Zeitpunkt der Verarbeitung der aktuellen Kopieranfrage und darf maximal 366 Tage nach der Quellsicherung
create_time
liegen.
Die Ausgabe sieht dann ungefähr so aus:
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'
Informationen zum Prüfen des Fortschritts eines Kopiervorgangs finden Sie unter Vorgangsfortschritt prüfen.
Datenbank aus einer Sicherung wiederherstellen
Verwenden Sie gcloud spanner databases restore
, um eine Datenbank wiederherzustellen:
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.
Die Ausgabe sieht dann ungefähr so aus:
Restore database in progress. Operation name=projects/my-project/instances/test-instance/databases/example-db-restored-1/operations/_auto_op_bb8e360b256b04bf
Informationen zum Verfolgen des Fortschritts eines Wiederherstellungsvorgangs finden Sie unter Vorgangsfortschritt prüfen.
Fortschritt des Vorgangs prüfen
Verwenden Sie gcloud spanner operations describe
, um den Fortschritt eines Vorgangs zu prüfen.
Rufen Sie die Vorgangs-ID ab:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=BACKUP
Ersetzen Sie Folgendes:
- INSTANCE-NAME durch den Namen der Spanner-Instanz.
- DATABASE-NAME durch den Namen der Datenbank.
Verwendungshinweise:
Wenn Sie die Liste einschränken möchten, geben Sie das Flag
--filter
an. Beispiel:--filter="metadata.name:example-db"
listet nur die Vorgänge in einer bestimmten Datenbank auf.--filter="error:*"
listet 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.
Die Ausgabe sieht dann ungefähr so aus:
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 ```
Führen Sie
gcloud spanner operations describe
aus.gcloud spanner operations describe OPERATION-ID \ --instance=INSTANCE-NAME \ --backup=BACKUP-NAME \
Ersetzen Sie Folgendes:
- OPERATION-ID: Die Vorgangs-ID des Vorgangs, den Sie prüfen möchten.
- INSTANCE-NAME: Der Name der Spanner-Instanz.
- BACKUP-NAME: Der Name der Spanner-Sicherung.
Der Abschnitt
progress
in der Ausgabe zeigt den Prozentsatz des abgeschlossenen Vorgangs an. Die Ausgabe sieht dann ungefähr so aus: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 ...
Wenn der Vorgang zu lange dauert, können Sie ihn abbrechen. Weitere Informationen finden Sie unter Einen Sicherungsvorgang mit langer Ausführungszeit abbrechen.
Sicherungsinformationen abrufen
So rufen Sie Informationen zu einer Sicherung ab:
gcloud spanner backups describe example-db-backup-6 --instance=test-instance
Die Ausgabe sieht dann ungefähr so aus:
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
Die Ausgabe sieht dann ungefähr so aus:
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
Die Ausgabe sieht dann ungefähr so aus:
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 Informationen 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
.