Informationen zu Cloud SQL-Sicherungen

Auf dieser Seite wird gezeigt, wie Sicherungen Ihrer Cloud SQL-Instanz funktionieren.

Eine Schritt-für-Schritt-Anleitung zur Planung von Sicherungen und zur Erstellung von On-Demand-Sicherungen finden Sie unter On-Demand- und automatische Sicherungen erstellen und verwalten.

Eine Übersicht über das Wiederherstellen von Daten aus einer Sicherung in einer Instanz finden Sie unter Instanz wiederherstellen – Übersicht.

Das bieten Sicherungen

Mit Sicherungen können Sie verloren gegangene Daten in Ihrer Cloud SQL-Instanz wiederherstellen. Wenn eine Instanz ein Problem hat, können Sie sie außerdem in einem vorherigen Zustand wiederherstellen. Dazu verwenden Sie die Sicherung, um sie zu überschreiben. Aktivieren Sie für jede Instanz, die wichtige Daten enthält, automatische Sicherungen. Durch Sicherungen werden Ihre Daten vor Verlust oder Schäden geschützt.

Was Sicherungen kosten

Standardmäßig speichert Cloud SQL für jede Instanz sieben automatische Sicherungen zusätzlich zu On-Demand-Sicherungen. Sie können konfigurieren, wie viele automatisierte Sicherungen beibehalten werden sollen (von 1 bis 365). Der Sicherungsspeicher kostet weniger als andere Instanztypen.

Sie können mehrere, aber nicht weniger als sieben automatische Sicherungen beibehalten.

Cloud SQL erstellt keine Sicherung einer Instanz, wenn Sie die Instanz beenden oder löschen. Wenn Sie eine Instanz löschen, werden die Daten 4 Tage lang aufbewahrt.

Weitere Informationen finden Sie auf der Seite „Preise“.

Sicherungen im Vergleich zu Exporten

Sicherungen werden von Cloud SQL gemäß Aufbewahrungsrichtlinien verwaltet und getrennt von der Cloud SQL-Instanz gespeichert. Cloud SQL-Sicherungen unterscheiden sich von einem Export, der in Cloud Storage hochgeladen wird, wo Sie den Lebenszyklus verwalten. Sicherungen betreffen die gesamte Datenbank. Für Exporte können Sie bestimmte Inhalte auswählen.

Sicherungs- und Wiederherstellungsvorgänge können nicht verwendet werden, um eine Datenbank auf eine neuere Version zu aktualisieren. Sie können Daten aus einer Sicherung nur in einer Instanz mit derselben Datenbankversion wiederherstellen.

Wenn Sie ein Upgrade auf eine neuere Version durchführen möchten, können Sie Ihre Datenbank exportieren und dann in eine neue Cloud SQL-Instanz importieren.

Größe von Sicherungen

Cloud SQL-Sicherungen sind inkrementell. Sie enthalten nur Daten, die sich nach der letzten Sicherung geändert haben. Die älteste Sicherung hat eine ähnliche Größe wie die Datenbank, aber die Größe der nachfolgenden Sicherungen hängt von der Änderungsrate Ihrer Daten ab. Sobald die älteste Sicherung gelöscht wurde, wird die nächstältere Sicherung vergrößert, damit immer eine vollständige Sicherung vorhanden ist.

Sicherungstypen

In Cloud SQL gibt es zwei Sicherungstypen:

On-Demand-Sicherungen

Sie können jederzeit eine Sicherung erstellen. Dies kann nützlich für Sie sein, wenn Sie einen riskanten Vorgang in Ihrer Datenbank ausführen oder wenn Sie eine Sicherung benötigen und nicht auf den nächsten Sicherungszeitraum warten möchten. Sie können bedarfsorientierte Sicherungen für jede Instanz erstellen, unabhängig davon, ob automatische Sicherungen für diese Instanz aktiviert sind oder nicht.

Bedarfsorientierte Sicherungen werden nicht wie automatische Sicherungen automatisch gelöscht. Sie bleiben erhalten, bis sie oder ihre Instanz gelöscht werden. Da sie nicht automatisch gelöscht werden, können On-Demand-Sicherungen langfristig Auswirkungen auf Ihre Abrechnungsgebühren haben.

Automatische Sicherungen

Automatische Sicherungen werden innerhalb eines vierstündigen Sicherungszeitraums täglich erstellt. Die Sicherungen werden während dieses Zeitraums gestartet. Planen Sie Sicherungen nach Möglichkeit so, dass sie durchgeführt werden, wenn Ihre Instanz die geringste Aktivität aufweist.

Während des Sicherungszeitraums finden jeden Tag automatische Sicherungen statt, wenn Ihre Instanz ausgeführt wird. Nach dem Beenden der Instanz wird eine zusätzliche automatische Sicherung erstellt, um alle Änderungen, die vor der Beendigung der Instanz vorgenommen wurden, zu schützen. Standardmäßig werden bis zu sieben der letzten Sicherungen aufbewahrt. Automatische Sicherungen werden angehalten, wenn Ihre Instanz länger als 36 Stunden unterbrochen ist. Sie können konfigurieren, wie viele automatisierte Sicherungen beibehalten werden sollen, aber nicht weniger als den Standardwert (sieben) behalten.

Speicherort von Sicherungen

Für Sicherungen sind die folgenden Speicherorte verfügbar:

Standardspeicherorte für Sicherungen

Wenn Sie keinen Speicherort angeben, werden die Sicherungen an einem multiregionalen Standort gespeichert, der geografisch dem Standort Ihrer Cloud SQL-Instanz am nächsten ist. Beispiel: Wenn sich Ihre Cloud SQL-Instanz in us-central1 befindet, werden die Sicherungen standardmäßig am multiregionalen Speicherort us gespeichert. Ein Standardspeicherort wie australia-southeast1 liegt jedoch außerhalb eines multiregionalen Bereichs. Der nächstgelegene multiregionale Standort ist asia.

Benutzerdefinierte Speicherorte für Sicherungen

Mit Cloud SQL können Sie einen benutzerdefinierten Speicherort für Ihre Sicherungsdaten auswählen. Dies ist hilfreich, wenn Ihre Organisation Vorschriften zur Datenaufbewahrung einhalten muss, die Sie dazu verpflichten, Ihre Sicherungen innerhalb eines bestimmten geografischen Gebiets aufzubewahren. Wenn für Ihre Organisation diese Art von Anforderung besteht, wird wahrscheinlich eine Organisationsrichtlinie zur Beschränkung von Ressourcenstandorten verwendet. Sollten Sie in diesem Fall versuchen, einen geografischen Standort zu nutzen, der nicht der Richtlinie entspricht, wird auf der Seite Sicherungen eine entsprechende Warnung angezeigt. Bei einer solchen Warnung müssen Sie den Speicherort der Sicherung in einen gemäß der Richtlinie zulässigen Speicherort ändern.

Eine vollständige Liste der gültigen regionalen Werte finden Sie unter Instanzstandorte. Eine vollständige Liste multiregionaler Werte finden Sie unter Multi-regional locations.

Weitere Informationen finden Sie unter Benutzerdefinierten Speicherort für Sicherungen festlegen und Speicherorte für Sicherungen aufrufen.

Automatische Sicherungsaufbewahrung

Die automatische Sicherungsaufbewahrung kann auf mehr, aber nicht weniger als den Standardwert (sieben) festgelegt werden.

Siehe Automatische Sicherungsaufbewahrung einrichten.

Kann ich eine Sicherung exportieren?

Nein, Sie können Sicherungen nicht exportieren. Sie können nur Instanzdaten exportieren. Weitere Informationen finden Sie unter Daten aus Cloud SQL exportieren.

Spezielles Nutzerkonto für Sicherungen

Cloud SQL erstellt für jede Instanz den speziellen Datenbanknutzer cloudsqladmin mit einem eindeutigen, instanzspezifischen Passwort. Für automatische Sicherungen meldet sich Cloud SQL als Nutzer cloudsqladmin an.

Auswirkungen von Sicherungen auf Instanzvorgänge

Schreibvorgänge und andere Vorgänge werden durch Sicherungsvorgänge nicht beeinträchtigt.

Einschränkungen der Sicherungsrate

Cloud SQL begrenzt die Rate der Sicherungsvorgänge auf dem Datenlaufwerk. Es sind maximal fünf Sicherungsvorgänge pro 50 Minuten pro Instanz und Projekt zulässig. Wenn ein Sicherungsvorgang fehlschlägt, wird er nicht auf dieses Kontingent angerechnet. Wenn Sie das Limit erreichen, schlägt der Vorgang mit einer Fehlermeldung fehl, die Sie darüber informiert, wann Sie es noch einmal versuchen können.

Sehen wir uns an, wie Cloud SQL die Ratenbegrenzung für Sicherungen ausführt.

Cloud SQL verwendet Tokens aus einem Bucket, um zu ermitteln, wie viele Sicherungsvorgänge gleichzeitig verfügbar sind. Jede Instanz hat einen Bucket. Der Bucket kann maximal fünf Tokens für Sicherungsvorgänge verwenden. Alle 10 Minuten wird dem Bucket ein neues Token hinzugefügt. Wenn der Bucket voll ist, läuft das Token über.

Jedes Mal, wenn Sie einen Sicherungsvorgang ausführen, wird ein Token aus dem Bucket gewährt. Wenn der Vorgang erfolgreich ist, wird das Token aus dem Bucket entfernt. Wenn der Vorgang fehlschlägt, wird das Token an den Bucket zurückgegeben. Dies wird im folgenden Diagramm veranschaulicht:

Funktionsweise von Tokens

Fehlerbehebung

Problem Fehlerbehebung
Der Status des aktuellen Vorgangs wird nicht angezeigt. Die Google Cloud Console meldet erfolgreiche oder fehlgeschlagene Vorgänge nur, wenn diese abgeschlossen sind. Es werden keine Warnungen oder andere Updates angezeigt.

Führen Sie den Befehl gcloud sql operations list aus, um alle Vorgänge für die angegebene Cloud SQL-Instanz aufzulisten.

Sie möchten wissen, wer einen On-Demand-Sicherungsvorgang ausgelöst hat. Auf der Benutzeroberfläche wird nicht der Nutzer angezeigt, der einen Vorgang gestartet hat.

Suchen Sie in den Logs und filtern Sie nach Text, um den Nutzer zu finden. Möglicherweise müssen Sie Audit-Logs für private Informationen verwenden. Zu den relevanten Logdateien gehören:

  • cloudsql.googleapis.com/sqlagent.out
  • cloudsql.googleapis.com/sqlserver.err
  • Wenn Cloud-Audit-Logs aktiviert ist und Sie die erforderlichen Berechtigungen zum Aufrufen von Logs haben, ist möglicherweise auch cloudaudit.googleapis.com/activity verfügbar.
Nach dem Löschen einer Instanz können Sie keine Sicherung mehr vornehmen. Der Kulanzzeitraum für eine Cloud SQL-Instanzbereinigung beträgt vier Tage, mit Ausnahme von Lesereplikaten, die sofort gelöscht werden. Während dieser Zeit kann der Kundensupport die Instanz neu erstellen. Wenn die Instanz neu erstellt wird, werden auch ihre Sicherungen neu erstellt. Nachdem die Instanzen dauerhaft gelöscht wurden, ist keine Datenwiederherstellung mehr möglich.

Wenn Sie einen Exportvorgang durchgeführt haben, können Sie eine neue Instanz erstellen und dann mit einem Importvorgang die Datenbank neu erstellen. Exporte werden in Cloud Storage geschrieben und Importe werden von dort gelesen.

Eine automatische Sicherung bleibt viele Stunden hängen und kann nicht abgebrochen werden. Sicherungen können je nach Datenbankgröße sehr lange dauern.

Wenn Sie den Vorgang wirklich abbrechen müssen, können Sie den Kundensupport bitten, einen Neustart der Instanz zu erzwingen (force restart).

Ein Wiederherstellungsvorgang kann fehlschlagen, wenn ein oder mehrere Nutzer, auf die in der SQL-Dumpdatei verwiesen wird, nicht vorhanden sind. Vor dem Wiederherstellen eines SQL-Dumps müssen alle Datenbanknutzer, die Inhaber von Objekten in der Dumpdatenbank sind oder Berechtigungen dafür haben, in der Zieldatenbank vorhanden sein. Andernfalls kann der Wiederherstellungsvorgang die Objekte nicht mit den ursprünglichen Eigentumsrechten oder Berechtigungen neu erstellen.

Erstellen Sie die Datenbanknutzer, bevor Sie den SQL-Dump wiederherstellen.

Sie möchten die Anzahl der Tage für die Aufbewahrung automatischer Sicherungen von sieben auf 30 Tage oder länger erhöhen. Es werden nur sieben Sicherungen aufbewahrt. Sicherungen werden aufgrund ihrer Größe und der Aufbewahrungskosten regelmäßig gelöscht. Leider bedeutet dies, dass die jeweils aktuell sichtbaren Sicherungen die einzigen automatischen Sicherungen sind, aus denen Sie wiederherstellen können.

Wenn Sie Sicherungen unbegrenzt aufbewahren möchten, können Sie eine On-Demand-Sicherung erstellen, da diese nicht auf dieselbe Weise wie automatische Sicherungen gelöscht wird. On-Demand-Sicherungen werden für unbegrenzte Zeit aufbewahrt. Das heißt, sie bleiben so lange erhalten, bis sie gelöscht werden, oder bis die Instanz gelöscht wird, zu der sie gehören. Da diese Art der Sicherung nicht automatisch gelöscht wird, kann sich dies auf die Abrechnung auswirken.

Eine automatische Sicherung ist fehlgeschlagen und Sie haben keine E-Mail-Benachrichtigung erhalten. Benachrichtigungen werden bei Sicherungsfehlern nicht unterstützt.

Wenn eine automatische Sicherung fehlschlägt, wird auf der Seite Details der Cloud SQL-Instanz die Meldung Operation error angezeigt.

Sie können den Status einer Sicherung mit den Befehlen REST API oder gcloud ermitteln. Listen Sie beispielsweise zuerst die Sicherungen für eine Instanz auf und beschreiben Sie dann eine bestimmte Sicherung anhand ihrer ID:


gcloud sql backups list \
--project=PROJECT_ID \
--instance=INSTANCE_ID
   

gcloud sql backups describe BACKUP-ID \
--instance=INSTANCE_ID
    

Nächste Schritte