Utilizzare 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 PITR.

Archiviazione log per PITR

PITR utilizza i log delle transazioni. Questi log vengono aggiornati regolarmente e utilizzano spazio di archiviazione. I log delle transazioni vengono eliminati automaticamente con il backup automatico associato, che in genere avviene dopo circa 7 giorni.

Se le dimensioni dei log delle transazioni causano un problema per l'istanza:

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

  • Ti consigliamo di abilitare gli aumenti automatici dello spazio di archiviazione per evitare problemi imprevisti.

  • Puoi disabilitare il PITR se vuoi eliminare i log e recuperare lo spazio di archiviazione. La riduzione dello spazio di archiviazione utilizzato non riduce la dimensione dello spazio di archiviazione 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 2 giorni, vengono conservati almeno due giorni di log e un massimo di tre giorni di log. Ti consigliamo di impostare il numero di backup su uno superiore ai giorni di conservazione dei log per garantire un minimo di giorni specificati di conservazione dei log.

Modello di recupero del database per PITR

Quando abiliti il 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, l'impostazione Backup automatici viene abilitata automaticamente.

La seguente procedura abilita il PITR su un'istanza 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 il recupero point-in-time.
  5. Espandi Opzioni avanzate.
  6. Inserisci il numero di giorni per la conservazione dei log, compreso tra 1 e 7.
  7. 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 l'ora a 24 ore nel fuso orario UTC±00.

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

    Se abiliti il 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, viene visualizzato 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 di replica principale o 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 di queste 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 di replica principale o 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 di queste 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 da recuperare e fai clic su Crea clone.
  3. Facoltativamente, 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 di database.
    Se specifichi un nome di database, puoi selezionarne solo uno. Per impostazione predefinita, il PITR è valido 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: 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 istanza di origine
  • restore-timestamp Il momento specifico per ripristinare fino a

Nella richiesta JSON, puoi facoltativamente specificare fino a un nome specifico del database 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 di queste 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 istanza di origine
  • restore-timestamp Il momento specifico per ripristinare fino a

Nella richiesta JSON, puoi facoltativamente specificare fino a un nome specifico del database 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 di queste 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 disabilitare 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.
  6. Nella pagina Panoramica dell'istanza, in Configurazione, l'impostazione PITR è elencata come disabilitata.

gcloud

  1. Disabilita 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, viene visualizzato 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 di queste 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 di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Controlla la posizione di archiviazione dei log delle transazioni utilizzati per il PITR

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

gcloud

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

   gcloud sql instances describe INSTANCE_NAME
   

Sostituisci INSTANCE_NAME con il nome dell'istanza.

Nell'output del comando, il campo transactionalLogStorageState fornisce informazioni su dove vengono archiviati i log delle transazioni per il PITR per l'istanza.

La posizione di archiviazione dei log delle transazioni restituita è DISK. Le istanze SQL Server possono archiviare i log delle transazioni utilizzati per PITR solo su disco.

Imposta la conservazione dei log delle transazioni

Per impostare il numero di giorni per la conservazione dei 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 il recupero point-in-time, espandi Opzioni avanzate.
  5. Inserisci il numero di giorni per la conservazione dei 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. Valida solo quando è abilitato il recupero point-in-time. Conservare più giorni di log delle transazioni richiede maggiori dimensioni di archiviazione.

  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 per la conservazione dei log delle transazioni, da 1 a 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 di queste 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 per la conservazione dei log delle transazioni, da 1 a 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 di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Passaggi successivi