Usa il recupero point-in-time (PITR)

Questa pagina descrive come utilizzare il recupero point-in-time (PITR) per ripristinare l'istanza Cloud SQL principale.

Per scoprire di più sul PITR, consulta: Recupero point-in-time (PITR).

Per impostazione predefinita, PITR è abilitato quando crei un'istanza della versione Cloud SQL Enterprise Plus, indipendentemente o meno di creare l'istanza utilizzando la console Google Cloud gcloud CLI, Terraform o l'API Cloud SQL Admin.

Se crei un'istanza della versione Cloud SQL Enterprise nella console Google Cloud, il PITR viene sono abilitate per impostazione predefinita. In caso contrario, se crei l'istanza utilizzando gcloud CLI, Terraform o l'API Cloud SQL Admin, devi attivare manualmente il PITR.

Spazio di archiviazione dei log per PITR

Cloud SQL utilizza l'archiviazione WAL (write-ahead logging) per il PITR.

Il 9 gennaio 2023 abbiamo lanciato la memorizzazione dei log di scrittura anticipata per la RPI in Cloud Storage. Da questo lancio, si applicano le seguenti condizioni:

  • Tutte le istanze della versione Cloud SQL Enterprise Plus archiviano i log di scrittura anticipata in Cloud Storage. Solo le istanze della versione Cloud SQL Enterprise Plus di cui esegui l'upgrade dalla versione Cloud SQL Enterprise e aveva PITR abilitato prima del 9 gennaio 2023 continua per archiviare i rispettivi log su disco.
  • Le istanze Cloud SQL Enterprise create con il PITR abilitato prima del 9 gennaio 2023 continueranno a memorizzare i log sul disco.
  • Se dopo il 15 agosto 2024 esegui l'upgrade di un'istanza della versione Cloud SQL Enterprise che archivia log delle transazioni per PITR su disco alla versione Cloud SQL Enterprise Plus, quindi l'upgrade il processo cambia la posizione di archiviazione dei log delle transazioni utilizzati per il PITR in Cloud Storage per te. Per ulteriori informazioni, consulta Eseguire l'upgrade di un'istanza alla versione Cloud SQL Enterprise Plus utilizzando l'upgrade in situ.
  • Tutte le istanze Cloud SQL Enterprise Edition create con il PITR abilitato dopo il 9 gennaio 2023 archiviano i log in Cloud Storage.

Per le istanze che archiviano i log write-ahead solo su disco, puoi: cambiare la posizione di archiviazione dei log delle transazioni utilizzati per il PITR da disco a Cloud Storage mediante gcloud CLI o l'API Cloud SQL Admin tempi di inattività. Per ulteriori informazioni, consulta Passare lo spazio di archiviazione dei log delle transazioni a Cloud Storage.

Periodo di conservazione dei log

Per vedere se un'istanza archivia i log utilizzati per PITR in Cloud Storage, usa Controlla la posizione di archiviazione dei log delle transazioni utilizzati per il PITR.

Dopo aver utilizzato un client PostgreSQL come psql o pgAdmin per collegarti a un database dell'istanza, esegui il seguente comando: show archive_command. Se eventuali log di scrittura anticipata sono archiviati in Cloud Storage, viene visualizzato -async_archive -remote_storage.

Tutte le altre istanze esistenti con PITR abilitato a conservare i log su disco.

Se i log sono archiviati in Cloud Storage, Cloud SQL carica i log ogni cinque minuti o meno. Di conseguenza, se un Cloud SQL se l'istanza è disponibile, l'istanza può essere recuperata all'ora più recente. Tuttavia, se l'istanza non è disponibile, l'obiettivo del punto di ripristino è in genere di massimo cinque minuti. Utilizza l'interfaccia a riga di comando gcloud o l'API Admin per controllare l'ora più recente fino alla quale puoi ripristinare l'istanza ed esegui il recupero fino a quell'ora.

I log di scrittura anticipata utilizzati con la copia incrementale in tempo reale vengono eliminati automaticamente con il backup automatico associato, in genere dopo il raggiungimento del valore impostato per transactionLogRetentionDays. Si tratta del numero di giorni di log delle transazioni che Cloud SQL conserva per il recupero point-in-time. Per la versione Cloud SQL Enterprise Plus, il numero di giorni di log delle transazioni conservati può essere impostato da 1 a 35 e per Cloud SQL Enterprise, il valore può essere impostato da 1 a 7.

Quando ripristini un backup su un'istanza Cloud SQL prima di abilitarlo PITR, perderai i log write-ahead che ti consentono l'operabilità di PITR.

Per le istanze con chiave di crittografia gestita dal cliente (CMEK), i log write-ahead vengono criptati utilizzando la versione più recente della CMEK. Per eseguire un ripristino, devono essere disponibili tutte le versioni della chiave più recenti per il numero di giorni configurato per il parametro retained-transaction-log-days.

Per le istanze con log di scrittura anticipata archiviati in Cloud Storage, i log vengono archiviati nella stessa regione dell'istanza principale. Questo spazio di archiviazione (fino a 35 giorni per la versione Cloud SQL Enterprise Plus e sette giorni per la versione Cloud SQL Enterprise, la durata massima per il PITR) non genera costi aggiuntivi per istanza.

Log e utilizzo del disco

Se per l'istanza è abilitato PITR e se la dimensione i log write-ahead sul disco causano un problema all'istanza:

  • Puoi cambiare la località di archiviazione dei log utilizzati per PITR dal disco a Cloud Storage senza tempi di inattività utilizzando gcloud CLI o l'API Cloud SQL Admin.

  • Puoi eseguire l'upgrade dell'istanza alla versione Cloud SQL Enterprise Plus.

  • Puoi aumentare la dimensione dello spazio di archiviazione dell'istanza, ma la capacità dell'utilizzo del disco potrebbe essere temporaneo.

  • Ti consigliamo di attivare aumento automatico dello spazio di archiviazione per evitare problemi di archiviazione imprevisti. Questo consiglio si applica solo se nella tua istanza è attivata la funzionalità PITR e i log sono archiviati su disco.

  • Puoi disattivare la copia incrementale a livello di blocco se vuoi eliminare i log e recuperare lo spazio di archiviazione. La riduzione dei log di scrittura anticipata utilizzati non riduce le dimensioni del disco provisioned per l'istanza.

  • I log vengono eliminati definitivamente una volta al giorno, non in modo continuo. Se imposti la conservazione dei log su due giorni, vengono conservati almeno due giorni di log e al massimo tre giorni di log. Ti consigliamo di impostare il numero di backup su un valore superiore ai giorni di conservazione dei log.

    Ad esempio, se specifichi 7 per il valore del parametro transactionLogRetentionDays, imposta il numero di retainedBackups su 8 per il parametro backupRetentionSettings.

Attivare PITR

Quando crei una nuova istanza nella console Google Cloud, sia Backup automatici sia Attiva il recupero point-in-time vengono attivati automaticamente.

La procedura riportata di seguito consente di attivare il PITR su un'istanza principale esistente.

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Apri il menu Altre azioni Icona Altre azioni. per l'istanza su cui vuoi attivare la copia incrementale in tempo reale e fai clic su Modifica.
  3. In Personalizza la tua istanza, espandi la Sezione Protezione dei dati.
  4. Seleziona la casella di controllo Abilita recupero point-in-time.
  5. Nel campo Giorni di log, inserisci il numero di giorni in cui conservare i log, compreso tra 1 e 35 per la versione Cloud SQL Enterprise Plus oppure 1-7 per Cloud SQL Enterprise.
  6. Fai clic su Salva.

gcloud

  1. Visualizza la panoramica dell'istanza:
    gcloud sql instances describe INSTANCE_NAME
  2. Se nella sezione backupConfiguration viene visualizzato enabled: false, attiva i backup pianificati:
    gcloud sql instances patch INSTANCE_NAME \
    --backup-start-time=HH:MM

    Specifica il parametro backup-start-time utilizzando l'opzione 24 ore nel fuso orario UTC±00.

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

    Se attivi la PITR su un'istanza principale, puoi anche configurare il numero di giorni per i quali vuoi conservare i log delle transazioni aggiungendo il seguente parametro:

    --retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
  4. Conferma la modifica:
    gcloud sql instances describe INSTANCE_NAME

    Nella sezione backupConfiguration, puoi vedere pointInTimeRecoveryEnabled: true se la modifica è andata a buon fine.

Terraform

Per attivare la PITR, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "postgres_instance_pitr" {
  name             = ""
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier = "db-custom-2-7680"
    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
      start_time                     = "20:55"
      transaction_log_retention_days = "3"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Applica le modifiche

Per applicare la configurazione Terraform a un progetto Google Cloud, completa i passaggi nella le sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.

    Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione di Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice di esempio in ogni sezione o passaggio.

    Copia il codice campione nel nuovo oggetto main.tf.

    Se vuoi, copia il codice da GitHub. Opzione consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Facoltativamente, per utilizzare la versione più recente del provider Google, includi -upgrade :

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o che l'aggiornamento soddisfi le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes alla richiesta:
    terraform apply

    Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". per creare un nuovo messaggio email.

  3. Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti create o aggiornate da Terraform.

Elimina le modifiche

Per eliminare le modifiche, procedi nel seguente modo:

  1. Per disattivare la protezione dall'eliminazione, imposta l'argomento deletion_protection su false nel file di configurazione Terraform.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il seguente comando e inserendo yes al prompt:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la tua configurazione Terraform eseguendo questo comando e inserendo yes al prompt:

    terraform destroy

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
  • INSTANCE_NAME: il nome dell'istanza principale o della replica di lettura che stai configurando per l'alta disponibilità
  • START_TIME: l'ora (in ore e minuti)

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
  • INSTANCE_NAME: il nome dell'istanza principale o della replica di lettura che stai configurando per l'alta disponibilità
  • START_TIME: l'ora (in ore e minuti)

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Esegui il PITR su un'istanza non disponibile

Console

Ti consigliamo di recuperare un'istanza non disponibile in una zona diversa per i seguenti motivi:

  • La zona in cui è configurata l'istanza non è accessibile. Questa istanza ha uno stato FAILED.
  • L'istanza è in fase di manutenzione. Questa istanza ha uno stato MAINTENANCE.

Per recuperare un'istanza non disponibile, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Trova la riga dell'istanza da clonare.
  3. Nella colonna Azioni, fai clic sul Menu Altre azioni.
  4. Fai clic su Crea clone.
  5. Nella pagina Crea un clone, completa le seguenti azioni:
    1. Nel campo ID istanza, aggiorna l'ID istanza, se necessario.
    2. Fai clic su Clona da un momento precedente.
    3. Nel campo Punto nel tempo, seleziona una data e un'ora da cui vuoi clonare i dati. In questo modo viene recuperato lo stato dell'istanza da quel momento in poi.
    4. Fai clic su Crea clone.
  6. Durante l'inizializzazione della copia, tornerai alla pagina dell'elenco delle istanze.

gcloud

Ti consigliamo di recuperare un'istanza non disponibile in una zona diversa perché la zona in cui è configurata l'istanza non è accessibile.

gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \
--point-in-time DATE_AND_TIME_STAMP \
--preferred-zone ZONE_NAME \
--preferred-secondary-zone SECONDARY_ZONE_NAME

L'account utente o di servizio che esegue gcloud sql instances clone deve avere l'autorizzazione cloudsql.instances.clone. Per ulteriori informazioni sulle autorizzazioni necessarie per eseguire i comandi gcloud CLI, consulta Autorizzazioni Cloud SQL.

REST v1

Ti consigliamo di recuperare un'istanza non disponibile in una zona diversa perché la zona in cui è configurata l'istanza non è accessibile.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto.
  • SOURCE_INSTANCE_NAME: il nome dell'istanza di origine.
  • TARGET_INSTANCE_NAME: il nome dell'istanza di destinazione (cloned).
  • DATE_AND_TIME_STAMP: un timestamp per l'istanza di origine nel fuso orario UTC e nel formato RFC 3339 (ad esempio
    2012-11-15T16:19:00.094Z).
  • ZONE_NAME: facoltativo. Il nome della zona principale per l'istanza di destinazione. Viene utilizzato per specificare una zona principale diversa per l'istanza Cloud SQL che vuoi clonare. Per un'istanza regionale, questa zona sostituisce la zona principale, ma la zona secondaria rimane invariata rispetto all'istanza.
  • SECONDARY_ZONE_NAME: facoltativo. Il nome della zona secondaria per l'istanza di destinazione. Viene utilizzato per specificare una zona secondaria diversa per l'istanza Cloud SQL a livello di regione che vuoi clonare.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone

Corpo JSON della richiesta:

{
  "cloneContext":
  {
    "destinationInstanceName": "TARGET_INSTANCE_NAME",
    "pointInTime": "DATE_AND_TIME_STAMP",
    "preferredZone": "ZONE_NAME",
    "preferredSecondaryZone": "SECONDARY_ZONE_NAME"
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

L'account utente o di servizio che utilizza il metodo dell'API instances.clone deve disporre dell'autorizzazione cloudsql.instances.clone. Per saperne di più sulle autorizzazioni necessarie per utilizzare i metodi API, consulta Autorizzazioni Cloud SQL.

REST v1beta4

Potresti voler recuperare un'istanza non disponibile in una zona diversa perché la zona in cui è configurata l'istanza non è accessibile.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto.
  • SOURCE_INSTANCE_NAME: il nome dell'istanza di origine.
  • TARGET_INSTANCE_NAME: il nome dell'istanza di destinazione (cloned).
  • DATE_AND_TIME_STAMP: un indicatore di data e ora per l'istanza di origine in Il fuso orario UTC e nel formato RFC 3339 (ad es.
    2012-11-15T16:19:00.094Z).
  • ZONE_NAME: facoltativo. Il nome della zona principale per l'istanza di destinazione. Viene utilizzato per specificare diversa per l'istanza Cloud SQL che vuoi clonare. Per un'istanza regionale, questa zona sostituisce la zona principale, ma la zona secondaria rimane invariata rispetto all'istanza.
  • SECONDARY_ZONE_NAME: facoltativo. Il nome della zona secondaria per l'istanza di destinazione. Viene utilizzato per specificare una zona secondaria diversa per l'istanza Cloud SQL a livello di regione che vuoi clonare.

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone

Corpo JSON della richiesta:

{
  "cloneContext":
  {
    "destinationInstanceName": "TARGET_INSTANCE_NAME",
    "pointInTime": "DATE_AND_TIME_STAMP",
    "preferredZone": "ZONE_NAME",
    "preferredSecondaryZone": "SECONDARY_ZONE_NAME"
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

L'account utente o di servizio che utilizza il metodo API instances.clone deve disporre dell'autorizzazione cloudsql.instances.clone. Per ulteriori informazioni sulle autorizzazioni richieste per utilizzare i metodi dell'API, consulta Autorizzazioni Cloud SQL.

Visualizza l'ultima data di recupero

Per un'istanza disponibile, puoi eseguire il PITR fino all'ora più recente. Se l'istanza non è disponibile e i log dell'istanza sono archiviati in Cloud Storage, puoi recuperare l'ora di recupero più recente ed eseguire il PITR fino a quel momento. In entrambi i casi, puoi ripristinare l'istanza a una zona principale o secondaria diversa fornendo i valori per le zone preferite.

gcloud

Visualizza l'ora più recente fino alla quale puoi recuperare un'istanza Cloud SQL non disponibile.

Sostituisci INSTANCE_NAME con il nome dell'istanza su cui stai eseguendo la query.

gcloud sql instances get-latest-recovery-time INSTANCE_NAME

REST v1

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_NAME: il nome dell'istanza per cui stai eseguendo una query per ottenere l'ora di recupero più recente

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

REST v1beta4

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_NAME: il nome dell'istanza per cui stai eseguendo una query per ottenere l'ora di recupero più recente

Metodo HTTP e URL:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

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

Esegui PITR

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Apri il menu Altre azioni Icona Altre azioni. per l'istanza da ripristinare e fai clic su Crea clone.
  3. (Facoltativo) Nella pagina Crea un clone, aggiorna l'ID del nuovo clone.
  4. Seleziona Clona da un momento specifico precedente.
  5. Inserisci un'ora PITR.
  6. Fai clic su Crea clone.

gcloud

Crea un clone utilizzando PITR.

Sostituisci quanto segue:

  • SOURCE_INSTANCE_NAME: il nome dell'istanza da cui eseguire il ripristino.
  • NEW_INSTANCE_NAME: il nome del clone.
  • TIMESTAMP - Fuso orario UTC per l'istanza di origine in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time 'TIMESTAMP'

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID progetto
  • target-instance-id: l'ID istanza di destinazione
  • source-instance-id: l'ID dell'istanza di origine
  • restore-timestamp Il punto nel tempo fino al quale eseguire il ripristino

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • target-instance-id: l'ID istanza di destinazione
  • source-instance-id: l'ID dell'istanza di origine
  • restore-timestamp Il punto nel tempo fino al quale eseguire il ripristino

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Disattivare il ripristino dei punti di ripristino incrementali

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Apri il menu Altre azioni Icona Altre azioni. per l'istanza che vuoi disattivare e seleziona Modifica.
  3. In Personalizza la tua istanza, espandi la sezione Protezione dei dati.
  4. Deseleziona Abilita recupero point-in-time.
  5. Fai clic su Salva.

gcloud

  1. Disattiva il recupero point-in-time:
    gcloud sql instances patch INSTANCE_NAME \
    --no-enable-point-in-time-recovery
  2. Conferma la modifica:
    gcloud sql instances describe INSTANCE_NAME

    Nella sezione backupConfiguration, vedrai pointInTimeRecoveryEnabled: false se la modifica è andata a buon fine.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • project-id: l'ID progetto
  • instance-id: l'ID istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Controlla la posizione di archiviazione dei log delle transazioni utilizzati per la copia incrementale in tempo reale

Puoi controllare dove l'istanza Cloud SQL memorizza i log delle transazioni utilizzati per il PITR.

gcloud

Per determinare se l'istanza memorizza i log per il PITR su disco o su Cloud Storage, utilizza il seguente comando:

   gcloud sql instances describe INSTANCE_NAME
   

Sostituisci INSTANCE_NAME con il nome dell'istanza.

Puoi anche controllare la posizione di archiviazione dei log delle transazioni per più istanze nello stesso progetto. Per determinare la posizione di più istanze, utilizza il seguente comando:

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

Esempio di risposta:

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

Nell'output del comando, il campo transactionalLogStorageState o la colonna TRANSACTIONAL_LOG_STORAGE_STATE fornisce informazioni su dove vengono archiviati i log delle transazioni per la PITR per l'istanza. I possibili stati di archiviazione dei log delle transazioni sono i seguenti:

  • DISK: l'istanza archivia i log delle transazioni utilizzata per il PITR su disco. Se esegui l'upgrade di un'istanza dalla versione Cloud SQL Enterprise a Cloud SQL Enterprise Plus, passa automaticamente il percorso di archiviazione dei log a Cloud Storage. Per ulteriori informazioni, consulta Eseguire l'upgrade di un'istanza alla versione Cloud SQL Enterprise Plus utilizzando l'upgrade in situ. Tu puoi anche scegliere di cambiare la posizione di archiviazione utilizzando gcloud CLI l'API Cloud SQL Admin senza eseguire l'upgrade della versione dell'istanza e senza e che si verifichino tempi di inattività. Per ulteriori informazioni, consulta Passare lo spazio di archiviazione dei log delle transazioni a Cloud Storage.
  • SWITCHING_TO_CLOUD_STORAGE: l'istanza è la posizione di archiviazione dei log delle transazioni PITR in Cloud Storage.
  • SWITCHED_TO_CLOUD_STORAGE: l'istanza ha completato il trasferimento della posizione di archiviazione dei log delle transazioni PITR dal disco a Cloud Storage.
  • CLOUD_STORAGE: l'istanza memorizza i log delle transazioni utilizzati per la PITR in Cloud Storage.

Passa l'archiviazione dei log delle transazioni in Cloud Storage

Se l'istanza archivia i log delle transazioni utilizzati per PITR disco, quindi puoi cambiare la posizione di archiviazione Cloud Storage senza tempi di inattività. La procedura complessiva di cambio della posizione di archiviazione richiede circa la durata del periodo di conservazione dei log delle transazioni (giorni). Non appena inizi il passaggio, i log delle transazioni iniziano ad accumularsi in Cloud Storage. Durante l'operazione, puoi controllare lo stato dell'intero processo utilizzando il comando descritto in Verificare la posizione di archiviazione dei log delle transazioni utilizzati per la PITR.

Al termine della procedura complessiva di passaggio a Cloud Storage, Cloud SQL utilizza i log delle transazioni di Cloud Storage per il PITR.

gcloud

Per impostare la posizione di archiviazione su Cloud Storage, utilizza il seguente comando:

   gcloud sql instances patch INSTANCE_NAME \
      --switch-transaction-logs-to-cloud-storage
   

Sostituisci INSTANCE_NAME con il nome dell'istanza. L'istanza deve essere un'istanza principale e non un'istanza di replica. La risposta è simile alla seguente:

The following message is used for the patch API method.
{"name": "INSTANCE_NAME", "project": "PROJECT_NAME", "switchTransactionalLogsToCloudStorageEnabled": "true"}

Patching Cloud SQL instance...done.
Updated
[https://sqladmin.prod.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME].
   

Se il comando restituisce un errore, vedi Se possibile, risolvi i problemi relativi al passaggio a Cloud Storage passaggi successivi.

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto.
  • INSTANCE_ID: l'ID istanza. L'istanza deve essere un'istanza principale e non una di replica.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
   "switchTransactionLogsToCloudStorageEnabled": true
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Se la richiesta restituisce un errore, consulta Risolvere i problemi relativi al passaggio a Cloud Storage per possibili passaggi successivi.

REST v1beta4

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto.
  • INSTANCE_ID: l'ID istanza. L'istanza deve essere un'istanza principale e non una di replica.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
   "switchTransactionLogsToCloudStorageEnabled": true
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Se la richiesta restituisce un errore, consulta Se possibile, risolvi i problemi relativi al passaggio a Cloud Storage passaggi successivi.

Imposta la conservazione dei log delle transazioni

Per impostare il numero di giorni in cui conservare i log write-ahead:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Apri il menu Altre azioni Icona Altre azioni. per l'istanza vuoi impostare il log delle transazioni e seleziona Modifica.
  3. In Personalizza la tua istanza, espandi la sezione Protezione dei dati .
  4. Nella sezione Abilita recupero point-in-time, espandi Opzioni avanzate.
  5. Inserisci il numero di giorni in cui conservare i log, compreso tra 1 e 35 per la versione Cloud SQL Enterprise Plus oppure 1-7 per Cloud SQL Enterprise.
  6. Fai clic su Salva.

gcloud

Modifica l'istanza per impostare il numero di giorni per la conservazione dei log di scrittura anticipata.

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza su cui vuoi impostare il log delle transazioni.
  • DAYS_TO_RETAIN: il numero di giorni di log delle transazioni da conservare. Per la versione Cloud SQL Enterprise Plus, l'intervallo valido è compreso tra 1 e 35 giorni, con un valore predefinito di 14 giorni. Per la versione Cloud SQL Enterprise, l'intervallo valido è tra 1 e 7 giorni, con un valore predefinito di 7 giorni.

    Se non viene specificato alcun valore, viene utilizzato il valore predefinito. È valido solo quando il PITR è abilitato. Conservare più giorni di log delle transazioni richiede uno spazio di archiviazione più grande.

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

REST v1

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto.
  • INSTANCE_ID: l'ID istanza.
  • DAYS_TO_RETAIN: il numero di giorni per conservare i log delle transazioni. Per la versione Cloud SQL Enterprise Plus, l'intervallo valido è compreso tra 1 e 35 giorni, con un valore predefinito di 14 giorni. Per la versione Cloud SQL Enterprise, l'intervallo valido è compreso tra 1 e 7 giorni, con un valore predefinito di 7 giorni.

    Se non viene specificato alcun valore, viene utilizzato il valore predefinito. È valido solo quando il PITR è abilitato. Conservare più giorni di log delle transazioni richiede uno spazio di archiviazione maggiore.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto.
  • INSTANCE_ID: l'ID istanza.
  • DAYS_TO_RETAIN: il numero di giorni per conservare i log delle transazioni. Per la versione Cloud SQL Enterprise Plus, l'intervallo valido è compreso tra 1 e 35 giorni, con un valore predefinito di 14 giorni. Per la versione Cloud SQL Enterprise, l'intervallo valido è compreso tra 1 e 7 giorni, con un valore predefinito di 7 giorni.

    Se non viene specificato alcun valore, viene utilizzato il valore predefinito. È valido solo quando il PITR è abilitato. Conservare più giorni di log delle transazioni richiede uno spazio di archiviazione maggiore.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Risoluzione dei problemi

Problema Risoluzione dei problemi

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

OPPURE

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

Il timestamp fornito non è valido.

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

OPPURE

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

Il timestamp che hai fornito si riferisce a un momento in cui non è stato possibile trovare i backup o le coordinate del file binlog.

Risolvere i problemi relativi al passaggio a Cloud Storage

Nella tabella seguente sono elencati i possibili errori che potrebbero verificarsi con il parametro Codice INVALID REQUEST quando cambi la posizione di archiviazione dei log delle transazioni dal disco in Cloud Storage.

Problema Risoluzione dei problemi
Switching the storage location of the transaction logs used for PITR is not supported for instances with database type %s. Assicurati di eseguire il comando gcloud CLI o effettuando una richiesta API su un'istanza Cloud SQL per MySQL o Cloud SQL per PostgreSQL. Il cambio della posizione di archiviazione dei log delle transazioni utilizzando gcloud CLI o l'API Cloud SQL Admin non è supportato per Cloud SQL per SQL Server.
PostgreSQL transactional logging is not enabled on this instance. PostgreSQL utilizza il logging write-ahead come log delle transazioni recupero point-in-time (PITR). Per supportare il PITR, PostgreSQL richiede di attivare il logging write-ahead sull'istanza. Per ulteriori informazioni per abilitare il logging write-ahead, consulta Abilitare PITR.
This instance is already storing transaction logs used for PITR in Cloud Storage Per verificare la posizione di archiviazione dei log delle transazioni, esegui il comando in Controllare la posizione di archiviazione dei log delle transazioni utilizzati per il PITR.
The instance is already switching transaction logs used for PITR from disk to Cloud Storage.

Attendi il completamento dell'operazione di trasferimento.

Per verificare lo stato dell'operazione e la posizione di archiviazione dei log delle transazioni, esegui il comando Controlla la posizione di archiviazione dei log delle transazioni utilizzati per il PITR.

Passaggi successivi