Auf dieser Seite erfahren Sie, wie Sie Ihre AlloyDB Omni-Daten mit dem AlloyDB Omni Kubernetes-Operator sichern und wiederherstellen. Dazu sind grundlegende Kenntnisse zum Aktualisieren eines Kubernetes-Clusters mit Manifestdateien und dem kubectl
-Befehlszeilentool erforderlich. Weitere Informationen zum Installieren und Ausführen von AlloyDB Omni in einem Kubernetes-Cluster finden Sie unter AlloyDB Omni in Kubernetes installieren.
Wenn Sie die kontinuierliche Sicherung und Wiederherstellung von AlloyDB Omni aktivieren möchten, müssen Sie für jeden Datenbankcluster einen Sicherungsplan erstellen. Sicherungen werden gemäß den in der backupPlan
-Ressource definierten Sicherungszeitplänen erstellt. Wenn im Sicherungsplan kein Sicherungszeitplan definiert ist, werden standardmäßig täglich fortlaufende Sicherungen erstellt. Sie können Sicherungen von jedem Zeitstempel im Wiederherstellungszeitraum mit sekundengenauer Granularität wiederherstellen oder klonen.
Informationen zum Sichern und Wiederherstellen Ihrer AlloyDB Omni-Daten in Nicht-Kubernetes-Bereitstellungen finden Sie unter Barman für AlloyDB Omni einrichten und pgBackRest für AlloyDB Omni einrichten.
Sicherungen aktivieren und planen
Kontinuierliche Sicherungen werden aktiviert, wenn Sie eine Sicherungsplanressource für Ihren Datenbankcluster erstellen. Sie müssen für jeden Datenbankcluster eine backupPlan
-Ressource erstellen, um die kontinuierliche Sicherung für diesen Cluster zu aktivieren. Diese Sicherungsplanressource definiert die folgenden Parameter:
Der Speicherort, an dem der AlloyDB Omni-Operator Sicherungen speichert. Dies kann lokal in Ihrem Kubernetes-Cluster oder in einem Cloud Storage-Bucket erfolgen.
Eine Option zum Festlegen mehrerer Sicherungszeitpläne, mit denen automatisch
full
-,incremental
- unddifferential
-Sicherungen erstellt werden. Sie können diesen Zeitplan jederzeit pausieren, auch wenn Sie den Sicherungsplan zum ersten Mal definieren. Wenn ein Sicherungsplan pausiert wird, werden keine geplanten Sicherungen erstellt. Sie können ihn aber weiterhin verwenden, um Sicherungen manuell zu erstellen.Wenn keine Sicherungszeitpläne angegeben sind, wird standardmäßig „0 0 * * *“ verwendet. Dadurch wird täglich um Mitternacht (Ortszeit) eine vollständige Sicherung erstellt.
Eine Aufbewahrungsdauer für gespeicherte Sicherungen. Das kann einen Tag oder bis zu 90 Tage dauern. Der Standardwert ist 14.
Sie können Back-ups von primären oder Standby-Kubernetes-Clustern erstellen, indem Sie für das Feld
backupSourceStrategy
den Wertprimary
oderstandby
angeben. Um die Leistung des primären Clusters zu steigern, können Sie Sicherungsvorgänge auslagern, indem Sie sie über einen Standby-Cluster planen.
Ihr Datenbankcluster kann mehrere Sicherungspläne mit jeweils eigenem Namen und eigener Konfiguration haben. Wenn Sie mehrere backupPlan
-Ressourcen mit unterschiedlichen Sicherungszeitplänen für einen Datenbankcluster erstellen, müssen Sie für jede Sicherungsressource einen eindeutigen Sicherungsspeicherort definieren.
Plan zum lokalen Speichern von Sicherungen erstellen
Wenn Sie Sicherungen aktivieren möchten, die lokal gespeichert werden, wenden Sie das folgende Manifest an:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: BackupPlan
metadata:
name: BACKUP_PLAN_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
backupSchedules:
full: "FULL_CRON_SCHEDULE"
differential: "DIFF_CRON_SCHEDULE"
incremental: "INCR_CRON_SCHEDULE"
backupRetainDays: RETENTION_DAYS
backupSourceStrategy: SOURCE_STRATEGY
paused: PAUSED_BOOLEAN
Ersetzen Sie Folgendes:
BACKUP_PLAN_NAME
: Ein Name für diese Sicherungsplanressource, z. B.backup-plan-1
.NAMESPACE
: der Kubernetes-Namespace für diesen Sicherungsplan. Er muss mit dem Namespace des Datenbankclusters übereinstimmen.DB_CLUSTER_NAME
: der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.FULL_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen einer vollständigen Sicherung mit allen Daten imcron
-Format. Wenn Sie beispielsweise „0 0 * * 0“ festlegen, wird jeden Sonntag um 00:00 Uhr eine vollständige Sicherung erstellt.DIFF_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen von Sicherungen, die anfangs Vollsicherungen sind. Nachfolgende Sicherungen sind differenziell und basieren auf zwischenzeitlichen Änderungen an den Daten imcron
-Format. Wenn Sie beispielsweise „0 22 * * 3“ festlegen, wird jeden Mittwoch um 22:00 Uhr eine differenzielle Sicherung erstellt.INCR_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen von Sicherungen, die Daten enthalten, die sich seit der letzten vollständigen, differenziellen oder inkrementellen Sicherung geändert haben. Sie wird im Formatcron
angegeben. Wenn Sie beispielsweise „0 21 * * *“ festlegen, wird täglich um 21:00 Uhr eine inkrementelle Sicherung erstellt.RETENTION_DAYS
: Die Anzahl der Tage, für die der AlloyDB Omni-Operator diese Sicherung beibehält. Muss eine Ganzzahl zwischen1
und90
sein. Der Standardwert ist14
.SOURCE_STRATEGY
: bestimmt, ob Back-ups vom primären oder Standby-Kubernetes-Cluster erstellt werden. Der Standardwert istprimary
. Sie können einen der folgenden Werte auswählen:primary
: Back-ups werden vom primären Kubernetes-Cluster erstellt.standby
: Back-ups werden vom Standby-Kubernetes-Cluster erstellt. Wenn keine Standby-Instanz verfügbar ist, wenn das FeldSOURCE_STRATEGY
aufstandby
gesetzt ist, wird die Sicherung stattdessen vom primären Kubernetes-Cluster erstellt.
PAUSED_BOOLEAN
: Gibt an, ob der Sicherungsplan pausiert ist. Geben Sie einen der folgenden Werte an:true
: Sicherungen werden pausiert und es werden keine geplanten Sicherungen erstellt.false
: Der AlloyDB Omni-Operator erstellt Sicherungen gemäß dem voncronSchedule
angegebenen Zeitplan. Dies ist der Standardwert, wenn er nicht explizit auftrue
gesetzt wird.
Der Standardwert ist
false
.
Plan erstellen, in dem Back-ups in Cloud Storage gespeichert werden
So aktivieren Sie Sicherungen, die in Cloud Storage gespeichert werden:
Erstellen Sie einen Cloud Storage-Bucket. Notieren Sie sich den Namen, den Sie diesem Bucket zuweisen. Sie benötigen ihn in einem späteren Schritt.
Erstellen Sie ein Dienstkonto, um dem Bucket Back-ups hinzuzufügen.
Weisen Sie dem Dienstkonto die IAM-Rolle (Identity and Access Management)
storage.objectAdmin
zu.Erstellen Sie einen Schlüssel für das Dienstkonto. Dadurch wird der private Schlüssel in Ihre lokale Umgebung heruntergeladen.
Benennen Sie die heruntergeladene Schlüsseldatei in
key.json
um.Erstellen Sie ein Kubernetes-Secret, das den privaten Schlüssel enthält:
kubectl create secret generic SECRET_NAME --from-file=KEY_PATH -n NAMESPACE
Ersetzen Sie Folgendes:
SECRET_NAME
: der Name des Kubernetes-Secrets, das Sie erstellen, z. B.gcs-key
.KEY_PATH
: der lokale Dateisystempfad zur Dateikey.json
, die Sie in den vorherigen Schritten heruntergeladen haben.NAMESPACE
: der Namespace des Datenbankclusters.
Wenden Sie das folgende Manifest an:
apiVersion: alloydbomni.dbadmin.goog/v1 kind: BackupPlan metadata: name: BACKUP_PLAN_NAME namespace: NAMESPACE spec: dbclusterRef: DB_CLUSTER_NAME backupSchedules: full: "FULL_CRON_SCHEDULE" differential: "DIFF_CRON_SCHEDULE" incremental: "INCR_CRON_SCHEDULE" backupRetainDays: RETENTION_DAYS backupSourceStrategy: SOURCE_STRATEGY paused: PAUSED_BOOLEAN backupLocation: type: GCS gcsOptions: bucket: BUCKET_URL key: BACKUP_PATH secretRef: name: SECRET_NAME namespace: NAMESPACE
Ersetzen Sie Folgendes:
BACKUP_PLAN_NAME
: Ein Name für diese Sicherungsplanressource, z. B.backup-plan-1
.NAMESPACE
: der Kubernetes-Namespace für diesen Sicherungsplan. Er muss mit dem Namespace des Datenbankclusters übereinstimmen.DB_CLUSTER_NAME
: der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.FULL_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen einer vollständigen Sicherung mit allen Daten imcron
-Format. Wenn Sie beispielsweise „0 0 * * 0“ festlegen, wird jeden Sonntag um 00:00 Uhr eine vollständige Sicherung erstellt.DIFF_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen von Sicherungen, die anfangs Vollsicherungen sind. Nachfolgende Sicherungen sind differenziell und basieren auf zwischenzeitlichen Änderungen an den Daten imcron
-Format. Wenn Sie beispielsweise „0 22 * * 3“ festlegen, wird jeden Mittwoch um 22:00 Uhr eine differenzielle Sicherung erstellt.INCR_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen von Sicherungen, die Daten enthalten, die sich seit der letzten vollständigen, differenziellen oder inkrementellen Sicherung geändert haben. Sie wird im Formatcron
angegeben. Wenn Sie beispielsweise „0 21 * * *“ festlegen, wird täglich um 21:00 Uhr eine inkrementelle Sicherung erstellt.RETENTION_DAYS
: Die Anzahl der Tage, für die der AlloyDB Omni-Operator diese Sicherung beibehält. Muss eine Ganzzahl zwischen1
und90
sein. Der Standardwert ist14
.SOURCE_STRATEGY
: bestimmt, ob Back-ups vom primären oder Standby-Kubernetes-Cluster erstellt werden. Der Standardwert istprimary
. Sie können einen der folgenden Werte auswählen:primary
: Back-ups werden vom primären Kubernetes-Cluster erstellt.standby
: Back-ups werden vom Standby-Kubernetes-Cluster erstellt. Wenn keine Standby-Instanz verfügbar ist, wenn das FeldSOURCE_STRATEGY
aufstandby
gesetzt ist, wird die Sicherung stattdessen vom primären Kubernetes-Cluster erstellt.
PAUSED_BOOLEAN
: Gibt an, ob der Sicherungsplan pausiert ist. Geben Sie einen der folgenden Werte an:true
: Sicherungen werden pausiert und es werden keine geplanten Sicherungen erstellt.false
: Der AlloyDB Omni-Operator erstellt Sicherungen gemäß dem voncronSchedule
angegebenen Zeitplan. Dies ist der Standardwert, wenn er nicht explizit auftrue
gesetzt wird.
Der Standardwert ist
false
.
BUCKET_URL
: Der Name des Cloud Storage-Buckets, den Sie in einem früheren Schritt erstellt haben. Dies ist nicht die vollständige URL zum Bucket. Stellen Sie dem Bucket-Namen nichtgs://
voran.BACKUP_PATH
: Der Pfad des Verzeichnisses, in das der AlloyDB Omni-Operator Sicherungen schreibt, innerhalb des Cloud Storage-Bucket. Der Pfad muss absolut sein und mit/
beginnen.SECRET_NAME
: Der Name, den Sie für das Kubernetes-Secret ausgewählt haben, das Sie in einem früheren Schritt erstellt haben.
Sicherungen in S3-kompatiblem Speicher erstellen
Mit dem Feld s30options
können Sie Sicherungen an S3-kompatible Endpunkte senden.
Die Schritte in der folgenden Anleitung sind allgemein gehalten. Eine spezifische Anleitung für Ihren Anwendungsfall finden Sie in der Dokumentation Ihres S3-Anbieters.
So aktivieren Sie Sicherungen auf Ihrem S3-kompatiblen Speicher:
- Erstellen Sie einen S3-Storage-Bucket. Notieren Sie sich den Namen, den Sie diesem Bucket zuweisen, da Sie ihn in einem späteren Schritt verwenden.
- Um auf den S3-Speicher-Bucket zuzugreifen, erstellen Sie ein Hauptkonto, z. B. ein Dienstkonto oder einen Nutzer. Erkundigen Sie sich bei Ihrem S3-Anbieter, ob Sie dem Hauptkonto eine vordefinierte Rolle oder Richtlinie zuweisen müssen.
- Gewähren Sie dem Hauptkonto, das Sie im vorherigen Schritt erstellt haben, Lese-/Schreibzugriff. Mit diesem Schritt können Sie Daten in den S3-Speicher-Bucket lesen und schreiben.
- Erstellen Sie einen Zugriffsschlüssel für den erstellten Principal. Der Zugriffsschlüssel enthält eine Schlüssel-ID und ein Schlüssel-Secret. Bei diesem Vorgang wird der Schlüssel in Ihre lokale Umgebung heruntergeladen.
Erstellen Sie ein Kubernetes-Secret, das den Schlüssel enthält:
kubectl create secret generic SECRET_NAME --from-literal=access-key-id=KEY_ID --from-literal=access-key=KEY -n NAMESPACE
Ersetzen Sie Folgendes:
SECRET_NAME
: der Name des Kubernetes-Secrets, das Sie erstellen, z. B.s3-key
.KEY_ID
: Die Schlüssel-ID Ihres Zugriffsschlüssels.KEY
: Das Schlüssel-Secret Ihres Zugriffsschlüssels.NAMESPACE
: der Bereich, in dem der Secret-Name gespeichert wird. Dieser Wert muss eindeutig sein.
Wenden Sie das folgende Manifest an:
apiVersion: alloydbomni.dbadmin.goog/v1 kind: BackupPlan metadata: name: BACKUP_PLAN_NAME namespace: NAMESPACE spec: dbclusterRef: DB_CLUSTER_NAME backupSchedules: full: "FULL_CRON_SCHEDULE" differential: "DIFF_CRON_SCHEDULE" incremental: "INCR_CRON_SCHEDULE" backupRetainDays: RETENTION_DAYS backupSourceStrategy: SOURCE_STRATEGY paused: PAUSED_BOOLEAN backupLocation: type: S3 s3Options: bucket: BUCKET_NAME region: REGION endpoint: S3ENDPOINT key: BACKUP_PATH secretRef: namespace: NAMESPACE name: SECRET_NAME certRef: name: CA_BUNDLE_SECRET_NAME namespace: NAMESPACE
Ersetzen Sie Folgendes:
BACKUP_PLAN_NAME
: ein Name für diese Sicherungsplanressource, z. B.backup-plan-1
.NAMESPACE
: der Kubernetes-Namespace für diesen Sicherungsplan. Der Namespace muss mit dem Namespace des Datenbankclusters übereinstimmen.DB_CLUSTER_NAME
: Der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.FULL_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen einer vollständigen Sicherung mit allen Daten imcron
-Format. Wenn Sie beispielsweise jeden Sonntag um 00:00 Uhr eine vollständige Sicherung erstellen möchten, legen SieFULL_CRON_SCHEDULE
auf0 0 * * 0
fest.DIFF_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen von Sicherungen, die anfangs vollständige Sicherungen sind. Nachfolgende Sicherungen sind differenziell und basieren auf zwischenzeitlichen Änderungen an den Daten imcron
-Format. Wenn Sie beispielsweise jeden Mittwoch um 22:00 Uhr eine differenzielle Sicherung erstellen möchten, legen Sie0 22 * * 3
fest .INCR_CRON_SCHEDULE
: Ein Sicherungszeitplan zum Erstellen von Sicherungen, die Daten enthalten, die sich seit der letzten vollständigen, differenziellen oder inkrementellen Sicherung geändert haben. Dies wird imcron
-Format ausgedrückt. Wenn Sie beispielsweise jeden Tag um 21:00 Uhr eine inkrementelle Sicherung erstellen möchten, legen Sie dies auf0 21 * * *
fest .RETENTION_DAYS
: Die Anzahl der Tage, für die der AlloyDB Omni Kubernetes-Operator diese Sicherung beibehält. Dieser Parameter muss eine Ganzzahl zwischen1
und90
sein. Der Standardwert ist14
.SOURCE_STRATEGY
: bestimmt, ob Back-ups vom primären oder Standby-Kubernetes-Cluster erstellt werden. Der Standardwert istprimary
. Sie können einen der folgenden Werte auswählen:primary
: Back-ups werden vom primären Kubernetes-Cluster erstellt.standby
: Back-ups werden vom Standby-Kubernetes-Cluster erstellt. Wenn keine Standby-Instanz verfügbar ist, wenn das FeldSOURCE_STRATEGY
aufstandby
gesetzt ist, wird die Sicherung stattdessen vom primären Kubernetes-Cluster erstellt.
PAUSED_BOOLEAN
: Gibt an, ob der Sicherungsplan pausiert ist. Geben Sie einen der folgenden Werte an:true
: Sicherungen werden pausiert und es werden keine geplanten Sicherungen erstellt.false
: der Standardwert. Der AlloyDB Omni-Operator erstellt Sicherungen gemäß dem Zeitplan, der voncronSchedule
angegeben wird. Dies ist der Standardwert, wenn er nicht explizit auftrue
gesetzt wird.
BUCKET_NAME
: Der Name des von Ihnen erstellten S3-Storage-Buckets. Der Bucket-Name ist nicht die vollständige URL zum Bucket. Stellen Sie dem Bucket-Namen nichtgs://
voran.REGION
: Die Region, in der der S3-Bucket gespeichert ist.S3ENDPOINT
: Der Endpunkt für den S3-Storage-Bucket.BACKUP_PATH
: der Pfad des Verzeichnisses, in das der AlloyDB Omni-Operator Backups im S3-Speicher-Bucket schreibt. Der Pfad muss absolut sein und mit/
beginnen.NAMESPACE
: der Bereich, in dem der Secret-Name eindeutig sein muss.SECRET_NAME
: der Name, den Sie für das Kubernetes-Secret ausgewählt haben, das Sie erstellt haben.CA_BUNDLE_SECRET_NAME
: Ein Pool von PEM-codierten CA-Zertifikaten, die der S3-Server zum Validieren des Zertifikats verwendet. Achten Sie darauf, dass das Bundle im Secret unter einem Schlüssel namensca.crt
enthalten ist.Im folgenden Beispiel wird gezeigt, wie Sie ein Secret erstellen, das das Zertifikat enthält. Dabei ist
PEM_FILE_PATH
der Pfad zurca
-Bundle-Datei:kubectl create secret generic CERT_SECRET_NAME -n NAMESPACE --from-file=ca.crt=PEM_FILE_PATH
Manuelle Sicherung erstellen
Sie können jederzeit manuell eine Sicherungsressource erstellen und dabei einen beliebigen Sicherungsplan verwenden, den Sie bereits auf einen Datenbankcluster angewendet haben. Der AlloyDB Omni-Operator wendet den Speicherort und die Aufbewahrungsdauer des ausgewählten Sicherungsplans auf die neue manuelle Sicherung an.
Wenn Sie manuell ein Backup von einem primären oder Standby-Kubernetes-Cluster erstellen möchten, müssen Sie die Quelldatenbankinstanz für das Backup mit dem Feld backupSourceRole
angeben und das folgende Manifest anwenden:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: Backup
metadata:
name: BACKUP_NAME
namespace: NAMESPACE
spec:
dbclusterRef: DB_CLUSTER_NAME
backupPlanRef: BACKUP_PLAN_NAME
manual: true
backupSourceRole: SOURCE_ROLE
physicalBackupSpec:
backupType: BACKUP_TYPE
Ersetzen Sie Folgendes:
BACKUP_NAME
: Ein Name für dieses Backup, z. B.backup-1
.NAMESPACE
: Der Kubernetes-Namespace dieser Wiederherstellung. Er muss mit dem Namespace des Datenbankclusters übereinstimmen.BACKUP_PLAN_NAME
: der Name der Sicherungsplanressource, zu der diese Sicherung gehört. Er muss mit dem Namen übereinstimmen, den Sie beim Erstellen des Sicherungsplans ausgewählt haben.DB_CLUSTER_NAME
: der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.SOURCE_ROLE
: Gibt die Rolle der Quelldatenbankinstanz an, aus der die manuelle Sicherung erstellt wird. Der Standardwert istprimary
. Sie können einen der folgenden Werte auswählen:primary
: Konfigurieren Sie die Sicherung über den primären Kubernetes-Cluster.standby
: Konfigurieren Sie die Sicherung über den Standby-Kubernetes-Cluster.
BACKUP_TYPE
: Gibt den Typ der manuellen Sicherung an, die Sie erstellen möchten. Wählen Sie einen der folgenden Werte aus:full
: Erstellt eine vollständige Sicherung mit allen Daten.diff
: Erstellt eine differenzielle Sicherung, die von der letzten vollständigen Sicherung abhängt. Nachfolgende Sicherungen sind differenziell und basieren auf zwischenzeitlichen Änderungen an den Daten.incr
: erstellt eine inkrementelle Sicherung, die von der vorherigen vollständigen oder differenziellen Sicherung abhängt, um Daten einzuschließen, die sich seit der letzten vollständigen oder differenziellen Sicherung geändert haben.
Sicherungen überwachen und auflisten
Ihre Sicherungspläne und Sicherungen sind alle Ressourcen in Ihrem Kubernetes-Cluster. Verwenden Sie den Befehl kubectl
get
, um Informationen dazu aufzurufen.
Zusammenfassung eines Sicherungsplans ansehen
Führen Sie den folgenden Befehl aus, um Informationen zu den Sicherungsplänen Ihres Datenbankclusters aufzurufen:
kubectl get backupplan.alloydbomni.dbadmin.goog -n NAMESPACE
Ersetzen Sie NAMESPACE
durch den Namespace des Datenbankclusters.
Die Ausgabe sollte so aussehen:
NAME PHASE LASTBACKUPTIME NEXTBACKUPTIME
backup-plan-prod Ready 2023-10-26T17:26:43Z 2023-10-27T00:00:00Z
Eine Liste der Sicherungen aufrufen
Führen Sie den folgenden Befehl aus, um eine Liste der für Ihren Datenbankcluster verfügbaren Sicherungen aufzurufen:
kubectl get backup.alloydbomni.dbadmin.goog -n NAMESPACE
Ersetzen Sie NAMESPACE
durch den Namespace des Datenbankclusters.
Die Ausgabe sollte so aussehen:
NAME PHASE COMPLETETIME TYPE
backup-plan-prod-20231026172643 Succeeded 2023-10-26T17:26:53Z full
manual-backup-1 Succeeded 2023-10-26T18:15:27Z full
manual-backup-2 InProgress full
Jede Zeile in der Ausgabetabelle steht für eine Sicherungsressource mit den folgenden Attributen:
- Der Name der Sicherung.
- Der Status der Sicherung.
Succeeded
gibt an, dass die Sicherung wiederhergestellt werden kann. - Der Zeitstempel der Erstellung der Sicherung.
Aus einer Sicherung wiederherstellen
Mit AlloyDB können Sie Daten aus einzelnen Sicherungen wiederherstellen oder einen Cluster mit einer Sicherung von einem bestimmten Zeitpunkt aus klonen.
Aus einer benannten Sicherung wiederherstellen
So stellen Sie Daten aus einer Sicherung wieder her und ersetzen die Daten in Ihrem Datenbankcluster durch die Daten in der Sicherung:
Alle Sicherungen auflisten, deren Phase
Succeeded
ist.kubectl get backup.alloydbomni.dbadmin.goog -n NAMESPACE | grep Succeeded
Ersetzen Sie
NAMESPACE
durch den Namespace des Datenbankclusters.Wenn mindestens ein guter Sicherungskandidat vorhanden ist, sieht die Ausgabe in etwa so aus:
backup-plan-prod-20231026172643 Succeeded 2023-10-26T17:26:53Z manual-backup-1 Succeeded 2023-10-26T18:15:27Z
Wählen Sie eine der im vorherigen Schritt aufgeführten Sicherungen aus, aus der Sie Daten wiederherstellen möchten. Notieren Sie sich den Namen, den Sie im nächsten Schritt benötigen.
Wenden Sie das folgende Manifest an:
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Restore metadata: name: RESTORE_NAME namespace: NAMESPACE spec: sourceDBCluster: DB_CLUSTER_NAME backup: BACKUP_NAME
Ersetzen Sie Folgendes:
RESTORE_NAME: Ein Name, der für die Datenwiederherstellungsressource verwendet werden soll, die durch dieses Manifest erstellt wird, z. B.
restore-1
.DB_CLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.
BACKUP_NAME: der Name der Sicherung, die Sie im vorherigen Schritt ausgewählt haben.
Cluster von einem bestimmten Zeitpunkt klonen
Mit dem AlloyDB Omni-Operator können Sie Clusterdaten zu einem beliebigen Zeitpunkt innerhalb eines Wiederherstellungszeitraums klonen. Die Länge des Wiederherstellungszeitraums wird direkt durch den Aufbewahrungszeitraum bestimmt.
Wenn Ihr Aufbewahrungszeitraum beispielsweise auf 14 Tage festgelegt ist, können Sie keine Daten wiederherstellen, die älter als 14 Tage sind. Sie können Daten zu einem beliebigen Zeitpunkt innerhalb des Wiederherstellungszeitraums wiederherstellen. Der AlloyDB Omni-Operator behält Sicherungen und Logs einen Tag länger als den angegebenen Wert bei.
Behalten Sie das Wiederherstellungsfenster im Blick, um den Wiederherstellungspunkt zu ermitteln:
kubectl get backupplan.alloydbomni.dbadmin.goog BACKUP_NAME -n NAMESPACE -o json | jq .status.recoveryWindow
Im Folgenden finden Sie ein Beispiel für eine Antwort:
recoveryWindow: begin: "2024-01-31T02:54:35Z"
Der Zeitstempelwert im RFC 3339-Zeitstempelformat wird in der Wiederherstellungsressource verwendet.
Erstellen Sie das folgende Manifest für die Wiederherstellungsressource und wenden Sie es an:
apiVersion: alloydbomni.dbadmin.goog/v1 kind: Restore metadata: name: RESTORE_NAME namespace: NAMESPACE spec: sourceDBCluster: DB_CLUSTER_NAME pointInTime: "DATE_AND_TIME_STAMP" clonedDBClusterConfig: dbclusterName: NEW_DB_CLUSTER_NAME
Ersetzen Sie Folgendes:
RESTORE_NAME: Ein Name, der für die Datenwiederherstellungsressource verwendet werden soll, die durch dieses Manifest erstellt wird, z. B.
restore-1
.DB_CLUSTER_NAME: Der Name Ihres Datenbankclusters, den Sie beim Erstellen zugewiesen haben.
DATE_AND_TIME_STAMP: Der RFC 3339-Zeitstempel mit einer Granularität von einer Minute des kontinuierlichen Back-ups, aus dem Sie die Daten wiederherstellen möchten, z. B.
2024-03-05T15:32:10Z
.NEW_DB_CLUSTER_NAME: Der Name des neuen Datenbankclusters.
Wiederherstellungsstatus ansehen
So sehen Sie den Fortschritt des Wiederherstellungsvorgangs:
kubectl get restore.alloydbomni.dbadmin.goog -n NAMESPACE
Ersetzen Sie
NAMESPACE
durch den Namespace des Datenbankclusters.Wenn Sie den Befehl kontinuierlich ausführen möchten, fügen Sie das Flag
-Aw
hinzu.Die Ausgabe sollte so aussehen:
NAME PHASE COMPLETETIME RESTOREDPOINTINTIME restore-1 RestoreInProgress
Wenn in der Ausgabetabelle in der Spalte
PHASE
der WertProvisionSucceeded
angezeigt wird, ist die Wiederherstellung abgeschlossen.So sehen Sie den Fortschritt der Wiederherstellung oder des Klonens des Datenbankclusters:
kubectl get dbclusters -A -n NAMESPACE
Ersetzen Sie
NAMESPACE
durch den Namespace des Datenbankclusters.Wenn Sie den Befehl kontinuierlich ausführen möchten, fügen Sie das Flag
-Aw
hinzu.Die Ausgabe sollte so aussehen:
NAMESPACE NAME PRIMARYENDPOINT PRIMARYPHASE DBCLUSTERPHASE default db-cluster-1 10.128.0.55 Ready DBClusterReady
Wenn der Wert der Spalte
DBCLUSTERPHASE
in der AusgabetabelleDBClusterReady
lautet, ist der wiederhergestellte oder geklonte Datenbankcluster einsatzbereit.
Sicherung löschen
Normalerweise müssen Sie Sicherungen nicht manuell löschen. Der AlloyDB Omni-Operator löscht automatisch Sicherungen, die älter als der Aufbewahrungszeitraum sind, den Sie beim Erstellen eines Sicherungsplans angeben.
Wenn Sie eine Sicherung manuell löschen möchten, muss sie die folgenden Anforderungen erfüllen:
Die Sicherung ist nicht die einzige Sicherung, die für den zugehörigen Sicherungsplan gespeichert ist. Für den AlloyDB Omni-Operator ist mindestens eine Sicherung pro Sicherungsplan erforderlich.
Die Sicherung ist nicht von anderen Sicherungen abhängig. Beispiele: Eine vollständige Sicherung mit differenziellen oder inkrementellen Sicherungen, die von ihr abhängen, oder eine inkrementelle Sicherung mit differenziellen Sicherungen, die von ihr abhängen.
Führen Sie den folgenden Befehl aus, um eine Sicherung zu löschen:
kubectl delete backup.alloydbomni.dbadmin.goog/BACKUP_NAME -n NAMESPACE
Ersetzen Sie Folgendes:
BACKUP_NAME
: Der Name der zu löschenden Sicherung.NAMESPACE
: der Namespace des Datenbankclusters.
Größe eines Sicherungslaufwerks ändern
Führen Sie die folgenden Schritte aus, um die Größe der lokalen Festplatte zu ändern, auf der Ihre Backups im Kubernetes-Cluster gespeichert sind:
Aktualisieren Sie das Feld
resources.disks
des DBCluster-Manifests so:spec: primarySpec: resources: disks: - name: BACKUP_DISK size: 10Gi
Ersetzen Sie
BACKUP_DISK
durch den Namen des Laufwerks, auf dem Ihre Sicherungen gespeichert sind.Wenden Sie das Manifest an, um das Update zu erzwingen.
Der AlloyDB Omni-Operator wendet die aktualisierten Spezifikationen sofort auf Ihren DBCluster an.
Die folgenden Einschränkungen gelten für das Ändern des Sicherungslaufwerks eines laufenden Datenbankclusters:
- Sie können die Größe eines Laufwerks nur erhöhen, wenn die angegebene
storageClass
die Volumenerweiterung unterstützt. - Sie können die Größe eines Laufwerks nicht verringern.
Sicherungsplan aktualisieren
Jeder Sicherungsplan ist eine Kubernetes-Ressource. Führen Sie einen der folgenden Schritte aus, um die Konfiguration zu aktualisieren:
Bearbeiten Sie die Manifestdatei des Sicherungsplans und wenden Sie sie noch einmal an.
Führen Sie den Befehl
kubectl patch
aus.
Wenn Sie beispielsweise einen laufenden Sicherungsplan pausieren möchten, ändern Sie das Attribut paused
des Manifests in true
und wenden Sie das Manifest dann noch einmal an.
Sicherungsplan löschen
Führen Sie den folgenden Befehl aus, um einen Sicherungsplan zu löschen und alle zugehörigen Sicherungsressourcen zu entfernen:
kubectl delete backupplan.alloydbomni.dbadmin.goog/BACKUP_PLAN_NAME -n NAMESPACE
Ersetzen Sie Folgendes:
BACKUP_PLAN_NAME
: der Name des Sicherungsplans, der gelöscht werden soll.NAMESPACE
: der Namespace des Datenbankclusters.
Wenn Sie einen Sicherungsplan pausieren möchten, ohne ihn zu löschen, legen Sie das Attribut paused
der Ressource des Sicherungsplans auf true
fest. In einem pausierten Sicherungsplan werden weiterhin Sicherungen gespeichert und manuelle Sicherungen können erstellt werden.