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).

Archiviazione dei log per PITR

Il 31 maggio 2024 abbiamo lanciato la memorizzazione dei log delle transazioni per PITR in Cloud Storage. Da questo lancio, si applicano le seguenti condizioni:

  • Tutte le istanze Cloud SQL che crei con PITR abilitato prima di questa data archiviano su disco i log delle transazioni utilizzati per il PITR.

  • Tutte le istanze Cloud SQL create con PITR abilitato in questa data o in data successiva archiviano questi log in Cloud Storage.

I log delle transazioni si aggiornano regolarmente e utilizzano spazio di archiviazione. Cloud SQL elimina automaticamente i log delle transazioni con i backup automatici associati. Ciò accade dopo aver soddisfatto il valore impostato per il parametro transactionLogRetentionDays. Per ulteriori informazioni su questo parametro, consulta Utilizzo di log e disco.

Per le istanze che archiviano i log delle transazioni solo su disco, puoi configurare Cloud SQL per l'archiviazione dei log su Cloud Storage disattivando e riattivando PITR. Non puoi spostare di nuovo i log da Cloud Storage su disco.

Per assicurarti che i log per la tua istanza siano archiviati in Cloud Storage anziché su disco, completa queste azioni:

Log e utilizzo del disco

Cloud SQL genera regolarmente log che occupano spazio di archiviazione. Cloud SQL elimina automaticamente i log delle transazioni con i backup automatici associati. Ciò accade dopo aver soddisfatto il valore impostato per il parametro transactionLogRetentionDays. Questo parametro specifica il numero di giorni in cui Cloud SQL conserva i log delle transazioni, compreso tra 1 e 7.

Per conoscere la quantità di disco utilizzata dai log delle transazioni, controlla la metrica bytes_used_by_data_type per l'istanza. Il valore del tipo di dati restituisce la dimensione dei log delle transazioni sul disco. Per le istanze che archiviano i log delle transazioni utilizzati per il PITR su disco, Cloud SQL elimina ogni giorno i dati dal disco per soddisfare l'impostazione PITR di transactionLogRetentionDays, come descritto in Conservazione dei backup automatici.

Se per l'istanza è abilitato PITR e se le dimensioni dei log delle transazioni sul disco sono la causa di un problema per l'istanza:

  • Puoi disattivare PITR e riabilitarlo per garantire che i log siano archiviati in Cloud Storage nella stessa regione dell'istanza. Tuttavia, tutti i log esistenti vengono eliminati, quindi non puoi eseguire un ripristino point-in-time prima dell'ora in cui hai riattivato PITR.
  • Puoi aumentare la dimensione dello spazio di archiviazione dell'istanza, ma l'aumento delle dimensioni del log delle transazioni nell'utilizzo del disco potrebbe essere temporaneo.
  • Consigliamo di attivare gli aumenti automatici dello spazio di archiviazione per evitare problemi di spazio di archiviazione imprevisti. Questo suggerimento si applica solo se nell'istanza è abilitato PITR e i log sono archiviati su disco.
  • Se vuoi eliminare i log e recuperare lo spazio di archiviazione, puoi disattivare il PITR senza riattivarlo. Tuttavia, la riduzione dello spazio di archiviazione utilizzato non riduce le dimensioni del disco di cui è stato eseguito il provisioning 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, verranno conservati almeno due giorni di log e al massimo tre giorni. Ti consigliamo di impostare il numero di backup su uno in più rispetto 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.

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

Modello di recupero del database per PITR

Quando abiliti PITR su un'istanza, Cloud SQL imposta automaticamente il modello di recupero dei database esistenti e successivi sul modello di recupero completo.

Per ulteriori informazioni sui modelli di recupero di SQL Server, consulta la documentazione di Microsoft.

Abilita PITR

Quando crei una nuova istanza nella console Google Cloud, viene abilitata automaticamente l'impostazione Backup automatici.

La seguente procedura abilita 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 abilitare il PITR 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 7.
  6. Fai clic su Salva.

gcloud

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

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

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

    Se abiliti PITR su un'istanza principale, puoi anche configurare il numero di giorni per cui 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, vedrai pointInTimeRecoveryEnabled: true se la modifica è riuscita.

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 di 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 di 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 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 che vuoi recuperare e fai clic su Crea clone.
  3. Se vuoi, nella pagina Crea un clone aggiorna l'ID del nuovo clone.
  4. Seleziona Clona da un momento precedente.
  5. Inserisci un'ora PITR.
  6. Seleziona Tutti i database o specifica un nome per il database.
    Se specifichi un nome di database, puoi selezionarne solo uno. Per impostazione predefinita, il PITR è per tutti i database.
  7. Fai clic su Crea clone.

gcloud

Crea un clone utilizzando PITR.

Sostituisci quanto segue:

  • SOURCE_INSTANCE_NAME - Nome dell'istanza da cui stai eseguendo il ripristino.
  • NEW_INSTANCE_NAME: nome del clone.
  • TIMESTAMP: fuso orario UTC per l'istanza di origine nel 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 momento in cui eseguire il ripristino fino a

Nella richiesta JSON, puoi facoltativamente specificare fino a un nome di database specifico come segue: "databaseNames": "my-database"

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, 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 momento in cui eseguire il ripristino fino a

Nella richiesta JSON, puoi facoltativamente specificare fino a un nome di database specifico come segue: "databaseNames": "my-database"

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:

Disattiva 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 disattivare e seleziona Modifica.
  3. In Personalizza la tua istanza, espandi la sezione Protezione dei dati.
  4. Deseleziona l'opzione 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 è riuscita.

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, effettua 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:

Imposta la conservazione dei log delle transazioni

Per impostare il numero di giorni in cui conservare i log delle transazioni:

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 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 7.
  6. Fai clic su Salva.

gcloud

Modifica l'istanza per impostare il numero di giorni in cui conservare i log delle transazioni.

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. L'intervallo valido è compreso tra 1 e 7. Se non specificato, il valore predefinito è 7. Valido solo quando è abilitato il recupero point-in-time. Conservare un numero maggiore di giorni di log delle transazioni richiede dimensioni di archiviazione maggiori.

  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:

  • days-to-retain: il numero di giorni in cui i log delle transazioni devono essere conservati, compreso tra 1 e 7
  • 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":
    {
      "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, effettua le seguenti sostituzioni:

  • days-to-retain: il numero di giorni in cui i log delle transazioni devono essere conservati, compreso tra 1 e 7
  • 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":
    {
      "transactionLogRetentionDays": "days-to-retain"
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Passaggi successivi