Wiederherstellung zu einem bestimmten Zeitpunkt (PITR) verwenden

Auf dieser Seite wird gezeigt, wie Sie mit der Wiederherstellung zu einem bestimmten Zeitpunkt (PITR) Ihre primäre Cloud SQL-Instanz wiederherstellen.

Weitere Informationen zur PITR finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt (PITR).

Wenn Sie eine Cloud SQL Enterprise Plus-Instanz erstellen, ist PITR standardmäßig aktiviert, unabhängig von der verwendeten Methode. Wenn Sie die Funktion deaktivieren möchten, müssen Sie dies manuell tun.

Wenn Sie eine Cloud SQL Enterprise-Instanz erstellen, ist PITR standardmäßig deaktiviert, unabhängig von der verwendeten Methode. Wenn Sie die Funktion in diesem Fall aktivieren möchten, müssen Sie dies manuell tun.

Logspeicher für PITR

Am 31. Mai 2024 haben wir die Speicherung von Transaktionslogs für PITR in Cloud Storage eingeführt. Seit der Einführung gelten die folgenden Bedingungen:

  • Bei PITR-fähigen Cloud SQL-Instanzen, die vor diesem Datum erstellt wurden, wurden PITR-Transaktionslogs auf dem Laufwerk gespeichert. PITR-Transaktionslogs für die meisten dieser Instanzen wurden inzwischen zu Cloud Storage migriert. Informationen zum Prüfen des Logspeicherorts für eine bestimmte Instanz finden Sie unter Speicherort von Transaktionslogs prüfen, die für PITR verwendet werden.

  • Alle Cloud SQL-Instanzen, die an oder nach diesem Datum mit aktivierter PITR erstellt werden, speichern diese Logs in Cloud Storage.

Diese Logs werden regelmäßig aktualisiert und belegen Speicherplatz. Cloud SQL löscht Transaktionslogs mit den zugehörigen automatischen Sicherungen automatisch. Dies geschieht, nachdem der für den Parameter transactionLogRetentionDays festgelegte Wert erreicht wurde. Weitere Informationen zu diesem Parameter finden Sie unter Logs und Festplattennutzung.

Bei Instanzen, die Transaktionslogs nur auf dem Laufwerk speichern, können Sie Cloud SQL so konfigurieren, dass die Logs in Cloud Storage gespeichert werden. Dazu müssen Sie zuerst PITR deaktivieren und dann wieder aktivieren. Sie können Logs nicht von Cloud Storage zurück auf die Festplatte verschieben.

Damit Logs für Ihre Instanz in Cloud Storage statt auf dem Laufwerk gespeichert werden, führen Sie die folgenden Schritte aus:

Logs und Laufwerksnutzung

Bei Instanzen mit Transaktionslogs in Cloud Storage werden die Logs in derselben Region wie die primäre Instanz gespeichert. Für diesen Logspeicher (bis zu 35 Tage für Cloud SQL Enterprise Plus und sieben Tage für Cloud SQL Enterprise, die maximale Länge für die Wiederherstellung zu einem bestimmten Zeitpunkt) fallen keine zusätzlichen Kosten pro Instanz an.

Cloud SQL generiert regelmäßig Transaktionslogs, die Speicherplatz belegen. Cloud SQL löscht die Transaktionslogs automatisch mit den zugehörigen automatischen Sicherungen. Dies geschieht, nachdem der Wert erreicht wurde, den Sie für den Parameter transactionLogRetentionDays festgelegt haben. Mit diesem Parameter wird die Anzahl der Tage angegeben, für die Cloud SQL Transaktionslogs aufbewahrt. Bei Cloud SQL Enterprise Plus kann die Anzahl der Tage für aufbewahrte Transaktionslogs zwischen 1 und 35 festgelegt werden. Für die Cloud SQL Enterprise-Version kann der Wert zwischen 1 und 7 festgelegt werden.

Wenn für diesen Parameter kein Wert festgelegt ist, wird die standardmäßige Aufbewahrungsdauer für Transaktionslogs von 14 Tagen für Cloud SQL Enterprise Plus-Instanzen und 7 Tagen für Cloud SQL Enterprise-Instanzen festgelegt. Weitere Informationen zum Anwenden dieser Einstellung finden Sie unter Aufbewahrung von Transaktionslogs festlegen.

Wie viel Speicherplatz die Transaktionslogs belegen, können Sie anhand des Messwerts bytes_used_by_data_type für die Instanz ermitteln. Der Wert für den Datentyp gibt die Größe der Transaktionsprotokolle auf der Festplatte zurück. Bei Instanzen, die Transaktionslogs speichern, die für PITR auf dem Laufwerk verwendet werden, löscht Cloud SQL Daten täglich dauerhaft vom Laufwerk, um die PITR-Einstellung transactionLogRetentionDays zu erfüllen. Weitere Informationen finden Sie unter Aufbewahrung automatischer Sicherungen.

Beschränkungen

Wenn für Ihre Instanz die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist und die Größe Ihrer Transaktionslogs auf dem Laufwerk ein Problem für die Instanz verursacht, gelten die folgenden Einschränkungen:

  • Sie können die Wiederherstellung zu einem bestimmten Zeitpunkt deaktivieren und wieder aktivieren, damit Cloud SQL Logs in Cloud Storage in derselben Region wie die Instanz speichert. Cloud SQL löscht jedoch alle vorhandenen Logs, sodass Sie keine PITR-Operation vor dem Zeitpunkt ausführen können, zu dem Sie PITR wieder aktiviert haben.
  • Sie können die Speichergröße der Instanz erhöhen, die erhöhte Speichernutzung der Größe des Transaktionslogs könnte jedoch nur temporär sein.
  • Damit unerwartete Speicherprobleme vermieden werden, empfehlen wir die Aktivierung von automatischen Speichererweiterungen. Diese Empfehlung gilt nur, wenn für Ihre Instanz PITR aktiviert ist und Ihre Logs auf dem Laufwerk gespeichert sind.
  • Wenn Sie Logs löschen und Speicherplatz zurückgewinnen möchten, können Sie PITR deaktivieren, ohne es wieder zu aktivieren. Durch Reduzierung des verwendeten Speicherplatzes wird die Größe des für die Instanz bereitgestellte Laufwerks nicht verringert.
  • Die Logs werden einmal täglich, nicht kontinuierlich gelöscht. Das Festlegen der Logaufbewahrung auf zwei Tage bedeutet, dass mindestens zwei Tage an Logs und höchstens Logs von drei Tagen aufbewahrt werden. Wir empfehlen, die Anzahl der Sicherungen auf eine mehr als die Anzahl von Tagen für die Logaufbewahrung festzulegen.

    Wenn Sie beispielsweise 7 für den Wert des Parameters transactionLogRetentionDays angeben, legen Sie für den Parameter backupRetentionSettings die Anzahl der retainedBackups auf 8 fest.

Weitere Informationen zur PITR finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt.

Datenbankwiederherstellungsmodell für PITR

Wenn Sie die Wiederherstellung zu einem bestimmten Zeitpunkt für eine Instanz aktivieren, legt Cloud SQL das Wiederherstellungsmodell der vorhandenen und nachfolgenden Datenbanken automatisch auf das vollständige Wiederherstellungsmodell fest.

Weitere Informationen zu SQL Server-Wiederherstellungsmodellen finden Sie in der Microsoft-Dokumentation.

PITR aktivieren

Wenn Sie eine neue Instanz in der Google Cloud Konsole erstellen, wird die Einstellung Automatisierte Back-ups automatisch aktiviert.

Mit dem folgenden Verfahren wird PITR für eine vorhandene primäre Instanz aktiviert.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Rufen Sie das Dreipunkt-Menü Dreipunkt-Symbol der Instanz auf, für die Sie die Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren möchten, und klicken Sie auf Bearbeiten.
  3. Maximieren Sie unter Instanz anpassen den Abschnitt Datenschutz.
  4. Klicken Sie auf das Kästchen Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren.
  5. Geben Sie im Feld Tage mit Logs die Anzahl der Tage ein, für die Logs aufbewahrt werden sollen (1–35 für die Cloud SQL Enterprise Plus-Version oder 1–7 für die Cloud SQL Enterprise-Version).
  6. Klicken Sie auf Speichern.

gcloud

  1. Rufen Sie die Instanzübersicht auf:
    gcloud sql instances describe INSTANCE_NAME
  2. Wenn im Abschnitt backupConfiguration enabled: false angezeigt wird, aktivieren Sie geplante Sicherungen:
    gcloud sql instances patch INSTANCE_NAME \
    --backup-start-time=HH:MM

    Dabei geben Sie den Parameter backup-start-time im 24-Stunden-Zeitformat und in der Zeitzone UTC±00 an.

  3. PITR aktivieren:
    gcloud sql instances patch INSTANCE_NAME \
    --enable-point-in-time-recovery

    Wenn Sie die Wiederherstellung zu einem bestimmten Zeitpunkt auf einer primären Instanz aktivieren, können Sie auch die Anzahl der Tage konfigurieren, für die Sie Transaktionslogs aufbewahren möchten. Fügen Sie dazu den folgenden Parameter hinzu:

    --retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
  4. Bestätigen Sie die Änderung:
    gcloud sql instances describe INSTANCE_NAME

    Im Abschnitt backupConfiguration wird pointInTimeRecoveryEnabled: true angezeigt, ob die Änderung erfolgreich war.

Terraform

Verwenden Sie eine Terraform-Ressource, um die PITR zu aktivieren.

Wiederherstellung zu einem bestimmten Zeitpunkt für Cloud SQL Enterprise Plus aktivieren

Verwenden Sie das folgende Terraform-Codebeispiel, um eine Cloud SQL Enterprise Plus-Instanz mit aktivierter PITR zu erstellen:
# Creates a SQL SERVER Enterprise Plus edition instance. Unless specified otherwise, PITR is enabled by default.
resource "google_sql_database_instance" "enterprise_plus" {
  name             = "sqlserver-enterprise-plus-instance-pitr"
  region           = "asia-northeast1"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    backup_configuration {
      enabled = true
    }
  }
  # Setting the `deletion_protection` flag to true ensures you can't accidentally delete the instance
  # using Terraform. Setting the `deletion_protection_enabled` flag to true protects the instance at the
  # Google Cloud level.
  deletion_protection = false
}

PITR für Cloud SQL Enterprise-Version aktivieren

Verwenden Sie das folgende Terraform-Codebeispiel, um eine Cloud SQL Enterprise-Instanz mit aktivierter PITR zu erstellen:
# Creates a SQL SERVER Enterprise edition instance with PITR enabled. Unless specified otherwise,
# PITR is disabled by default.
resource "google_sql_database_instance" "enterprise" {
  name             = "sqlserver-enterprise-instance-pitr"
  region           = "asia-northeast1"
  database_version = "SQLSERVER_2019_ENTERPRISE"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier    = "db-custom-4-26624"
    edition = "ENTERPRISE"
    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
    }
  }
  # Setting the `deletion_protection` flag to true ensures you can't accidentally delete the instance
  # using Terraform. Setting the `deletion_protection_enabled` flag to true protects the instance at the
  # Google Cloud level.
  deletion_protection = false
}

Änderungen anwenden

Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.

Cloud Shell vorbereiten

  1. Rufen Sie Cloud Shell auf.
  2. Legen Sie das Standardprojekt Google Cloud fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

    Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

Verzeichnis vorbereiten

Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

  1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

    Kopieren Sie den Beispielcode in das neu erstellte main.tf.

    Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

  3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
  4. Speichern Sie die Änderungen.
  5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
    terraform init

    Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

    terraform init -upgrade

Änderungen anwenden

  1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
    terraform plan

    Korrigieren Sie die Konfiguration nach Bedarf.

  2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply

    Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

  3. Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

Änderungen löschen

So löschen Sie das Projekt:

  1. Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument deletion_protection auf false.
    deletion_protection =  "false"
  2. Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
    terraform apply
  1. Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und yes an der Eingabeaufforderung eingeben:

    terraform destroy

REST Version 1

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das die Instanz enthält
  • INSTANCE_NAME: der Name der primären Instanz oder der Lesereplikatinstanz, die Sie für Hochverfügbarkeit konfigurieren
  • START_TIME: die Uhrzeit (in Stunden und Minuten)

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

JSON-Text anfordern:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die ID oder Projektnummer des Google Cloud Projekts, das die Instanz enthält
  • INSTANCE_NAME: der Name der primären Instanz oder der Lesereplikatinstanz, die Sie für Hochverfügbarkeit konfigurieren
  • START_TIME: die Uhrzeit (in Stunden und Minuten)

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

JSON-Text anfordern:

{
  "settings":
  {
    "backupConfiguration":
    {
      "startTime": "START_TIME",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Neuesten Wiederherstellungszeitpunkt abrufen

Für eine verfügbare Instanz können Sie die Wiederherstellung zu einem bestimmten Zeitpunkt bis zum neuesten Zeitpunkt durchführen. Wenn die Instanz nicht verfügbar ist und die Instanzlogs in Cloud Storage gespeichert sind, können Sie die neueste Wiederherstellungszeit abrufen und die Wiederherstellung zu einem bestimmten Zeitpunkt gemäß jenem Zeitstand ausführen. In beiden Fällen können Sie die Instanz in einer anderen primären oder sekundären Zone wiederherstellen. Dazu geben Sie Werte für die bevorzugten Zonen an.

gcloud

Rufen Sie den neuesten Zeitpunkt ab, gemäß dem Sie eine nicht verfügbare Cloud SQL-Instanz wiederherstellen können.

Ersetzen Sie INSTANCE_NAME durch den Namen der abgefragten Instanz.

gcloud sql instances get-latest-recovery-time INSTANCE_NAME

REST Version 1

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID
  • INSTANCE_NAME: der Name der Instanz, für die Sie den neuesten Wiederherstellungszeitpunkt abfragen

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#getLatestRecoveryTime",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

REST v1beta4

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: die Projekt-ID
  • INSTANCE_NAME: der Name der Instanz, für die Sie den neuesten Wiederherstellungszeitpunkt abfragen

HTTP-Methode und URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "kind": "sql#getLatestRecoveryTime",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Perform PITR

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Rufen Sie das Dreipunkt-Menü Dreipunkt-Symbol der Instanz auf, die Sie wiederherstellen möchten, und klicken Sie auf Klon erstellen.
  3. Optional können Sie auf der Seite Klon erstellen die ID des neuen Klon aktualisieren.
  4. Wählen Sie Von einem früheren Zeitpunkt klonen aus.
  5. Geben Sie eine PITR-Zeit ein.
  6. Wählen Sie Alle Datenbanken aus oder geben Sie einen Datenbanknamen an.
    Wenn Sie einen Datenbanknamen angeben, kann nur einer ausgewählt werden. Standardmäßig gilt PITR für alle Datenbanken.
  7. Klicken Sie auf Klon erstellen.

gcloud

Erstellen Sie einen Klon mithilfe der Wiederherstellung zu einem bestimmten Zeitpunkt.

Ersetzen Sie Folgendes:

  • SOURCE_INSTANCE_NAME: der Name der Instanz, von der aus Sie wiederherstellen möchten.
  • NEW_INSTANCE_NAME: der Name für den Klon.
  • TIMESTAMP: die UTC-Zeitzone für die Quellinstanz im Format RFC 3339. Beispiel: 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time 'TIMESTAMP'

REST Version 1

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • target-instance-id: die ID der Zielinstanz
  • source-instance-id: die ID der Quellinstanz
  • restore-timestamp der Zeitpunkt, zu dem wiederhergestellt werden soll

In der JSON-Anfrage können Sie optional bis zu einem bestimmten Datenbanknamen so angeben: "databaseNames": "my-database"

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone

JSON-Text anfordern:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • target-instance-id: die ID der Zielinstanz
  • source-instance-id: die ID der Quellinstanz
  • restore-timestamp der Zeitpunkt, zu dem wiederhergestellt werden soll

In der JSON-Anfrage können Sie optional bis zu einem bestimmten Datenbanknamen so angeben: "databaseNames": "my-database"

HTTP-Methode und URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone

JSON-Text anfordern:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

PITR deaktivieren

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Rufen Sie das Dreipunkt-Menü Dreipunkt-Symbol der Instanz auf, die Sie deaktivieren möchten, und wählen Sie Bearbeiten aus.
  3. Maximieren Sie unter Instanz anpassen den Abschnitt Datenschutz.
  4. Entfernen Sie das Häkchen von der Option Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren.
  5. Klicken Sie auf Speichern.

gcloud

  1. Wiederherstellung zu einem bestimmten Zeitpunkt deaktivieren:
    gcloud sql instances patch INSTANCE_NAME \
    --no-enable-point-in-time-recovery
  2. Bestätigen Sie die Änderung:
    gcloud sql instances describe INSTANCE_NAME

    Im Abschnitt backupConfiguration wird pointInTimeRecoveryEnabled: false angezeigt, ob die Änderung erfolgreich war.

REST Version 1

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die Projekt-ID
  • instance-id: die Instanz-ID

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON-Text anfordern:

{
  "settings":
  {
    "backupConfiguration":
    {
      "enabled": false,
      "pointInTimeRecoveryEnabled": false
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Speicherort der für PITR verwendeten Transaktionslogs prüfen

Sie können prüfen, wo Ihre Cloud SQL-Instanz die Transaktionslogs speichert, die für PITR verwendet werden.

gcloud

Verwenden Sie den folgenden Befehl, um festzustellen, ob Ihre Instanz Logs für PITR auf der Festplatte oder in Cloud Storage speichert:

   gcloud sql instances describe INSTANCE_NAME
   

Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz.

Bei mehreren Instanzen im selben Projekt können Sie auch den Speicherort der Transaktionsprotokolle prüfen. Verwenden Sie den folgenden Befehl, um den Speicherort für mehrere Instanzen zu ermitteln:

   gcloud sql instances list --show-transactional-log-storage-state
   

Beispielantwort:

NAME  DATABASE_VERSION         LOCATION       TRANSACTIONAL_LOG_STORAGE_STATE
my_01 SQLSERVER_2019_STANDARD  us-central-1   DISK
my_02 SQLSERVER_2019_STANDARD  us-central-1   CLOUD_STORAGE
...
   

In der Ausgabe des Befehls enthält das Feld transactionalLogStorageState oder die Spalte TRANSACTIONAL_LOG_STORAGE_STATE Informationen dazu, wo die Transaktionslogs für PITR für die Instanz gespeichert werden. Folgende Speicherstatus für das Transaktionsprotokoll sind möglich:

  • DISK: Die Instanz speichert die für PITR verwendeten Transaktionslogs auf der Festplatte.
  • CLOUD_STORAGE: Die Instanz speichert die für PITR verwendeten Transaktionslogs in Cloud Storage.

Aufbewahrung von Transaktionslogs festlegen

So legen Sie die Anzahl der Tage fest, für die Transaktionslogs aufbewahrt werden sollen:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Rufen Sie das Dreipunkt-Menü Dreipunkt-Symbol der Instanz auf, für die Sie das Transaktionslog festlegen möchten, und wählen Sie Bearbeiten aus.
  3. Maximieren Sie unter Instanz anpassen den Abschnitt Datenschutz.
  4. Maximieren Sie im Abschnitt Wiederherstellung zu einem bestimmten Zeitpunkt aktivieren die Option Erweiterte Optionen.
  5. Geben Sie die Anzahl der Tage ein (von 1 bis 35 für die Cloud SQL Enterprise Plus-Version oder 1 bis 7 für die Cloud SQL Enterprise-Version).
  6. Klicken Sie auf Speichern.

gcloud

Legen Sie die Anzahl der Tage für die Aufbewahrung von Transaktionslogs für die Instanz fest.

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: Der Name der Instanz, für die Sie das Transaktionslog festlegen möchten.
  • DAYS_TO_RETAIN: Die Anzahl der Tage, für die Transaktionslogs beibehalten werden sollen. Bei Cloud SQL Enterprise Plus liegt der gültige Bereich zwischen 1 und 35 Tagen, wobei der Standardwert 14 Tage beträgt. Bei Cloud SQL Enterprise liegt der gültige Bereich zwischen 1 und 7 Tagen, wobei der Standardwert 7 Tage beträgt.

    Wenn Sie keinen Wert angeben, verwendet Cloud SQL den Standardwert. Dies ist nur gültig, wenn die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist. Wenn Sie Transaktionslogs länger speichern möchten, ist mehr Speicherplatz erforderlich.

  gcloud sql instances patch INSTANCE_NAME 
--retained-transaction-log-days=DAYS_TO_RETAIN

REST Version 1

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Projekt-ID.
  • INSTANCE_ID: Instanz-ID.
  • DAYS_TO_RETAIN: die Anzahl der Tage, für die Transaktionslogs aufbewahrt werden sollen. Bei Cloud SQL Enterprise Plus liegt der gültige Bereich zwischen 1 und 35 Tagen, wobei der Standardwert 14 Tage beträgt. Bei Cloud SQL Enterprise liegt der gültige Bereich zwischen 1 und 7 Tagen, wobei der Standardwert 7 Tage beträgt.

    Wenn kein Wert angegeben ist, wird der Standardwert verwendet. Dies ist nur gültig, wenn die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist. Wenn Sie Transaktionslogs länger speichern möchten, ist mehr Speicherplatz erforderlich.

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON-Text anfordern:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

REST v1beta4

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Projekt-ID.
  • INSTANCE_ID: Instanz-ID.
  • DAYS_TO_RETAIN: die Anzahl der Tage, für die Transaktionslogs aufbewahrt werden sollen. Bei Cloud SQL Enterprise Plus liegt der gültige Bereich zwischen 1 und 35 Tagen, wobei der Standardwert 14 Tage beträgt. Bei Cloud SQL Enterprise liegt der gültige Bereich zwischen 1 und 7 Tagen, wobei der Standardwert 7 Tage beträgt.

    Wenn kein Wert angegeben ist, wird der Standardwert verwendet. Dies ist nur gültig, wenn die Wiederherstellung zu einem bestimmten Zeitpunkt aktiviert ist. Wenn Sie Transaktionslogs länger speichern möchten, ist mehr Speicherplatz erforderlich.

HTTP-Methode und URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON-Text anfordern:

{
  "settings":
  {
    "backupConfiguration":
    {
      "transactionLogRetentionDays": "DAYS_TO_RETAIN"
    }
  }
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Sie sollten in etwa folgende JSON-Antwort erhalten:

Fehlerbehebung

Problem Fehlerbehebung

argument --point-in-time: Failed to parse date/time:
Unknown string format: 2021-0928T30:54:03.094;
received: 2021-0928T30:54:03.094Z

ODER

Invalid value at 'body.clone_context.point_in_time'
(type.googleapis.com/google.protobuf.Timestamp), Field 'pointInTime',
Invalid time format: Failed to parse input,

Der von Ihnen angegebene Zeitstempel ist ungültig.

HTTP Error 400: Successful backup required for carrying out the operation was not found.

ODER

Successful backup required for carrying out the operation was not found. or Time where no backups can be found.

Der angegebene Zeitstempel gilt für einen Zeitpunkt, an dem keine Sicherungen oder binlog-Koordinaten gefunden wurden.

Nächste Schritte