Quando crei una nuova istanza nella console Google Cloud , vengono attivati automaticamente sia i backup automatici sia il recupero point-in-time (PITR). Puoi configurare il PITR per qualsiasi istanza esistente nel seguente modo:
- Attiva PITR
- Disattivare PITR
- Impostare il periodo di conservazione del log delle transazioni
- Controllare la posizione di archiviazione dei log delle transazioni utilizzati nel PITR
Abilita PITR
Quando crei una nuova istanza nella console Google Cloud , le opzioni Backup automatici e Abilita recupero point-in-time vengono attivate automaticamente.La seguente procedura abilita il PITR su un'istanza primaria esistente.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Apri il menu Altre azioni
per l'istanza su cui
vuoi attivare il PITR e fai clic su Modifica. - In Personalizza la tua istanza, espandi la sezione Protezione dei dati.
- Seleziona la casella di controllo Abilita recupero point-in-time.
- Nel campo Giorni di log, inserisci il numero di giorni per conservare i log, da 1 a 35 per la versione Cloud SQL Enterprise Plus o da 1 a 7 per la versione Cloud SQL Enterprise.
- Fai clic su Salva.
gcloud
- Visualizza la panoramica dell'istanza:
gcloud sql instances describe INSTANCE_NAME
- Se visualizzi
enabled: falsenella sezionebackupConfiguration, attiva i backup pianificati:gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM
Specifica il parametro
backup-start-timeutilizzando l'ora nel formato 24 ore nel fuso orario UTC±00. - Abilita PITR:
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery
Se stai attivando 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 - Conferma la modifica:
gcloud sql instances describe INSTANCE_NAME
Nella sezione
backupConfiguration, vedraipointInTimeRecoveryEnabled: truese la modifica è stata eseguita correttamente.
Terraform
Per attivare il PITR, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Preparare la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file viene denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dall'eliminazione, nel file di configurazione Terraform imposta l'argomento
deletion_protectionsufalse.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo questo comando e
inserendo
yesal prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform destroy
REST v1
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza primaria 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 di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza primaria 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 di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Disabilitare PITR
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Apri il menu Altre azioni
per l'istanza che vuoi disattivare e seleziona Modifica. - In Personalizza la tua istanza, espandi la sezione Protezione dei dati.
- Deseleziona Abilita recupero point-in-time.
- Fai clic su Salva.
gcloud
- Disattiva il recupero point-in-time:
gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery
- Conferma la modifica:
gcloud sql instances describe INSTANCE_NAME
Nella sezione
backupConfiguration, vedraipointInTimeRecoveryEnabled: falsese la modifica è andata a buon fine.
REST v1
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- 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, apporta le sostituzioni seguenti:
- 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:
Imposta la conservazione dei log delle transazioni
Per impostare il numero di giorni di conservazione dei log write-ahead:
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Apri il menu Altre azioni
per l'istanza su cui
vuoi impostare il log delle transazioni e seleziona Modifica. - In Personalizza la tua istanza, espandi la sezione Protezione dei dati.
- Nella sezione Abilita recupero point-in-time, espandi Opzioni avanzate.
- Inserisci il numero di giorni per conservare i log, da 1 a 35 per la versione Cloud SQL Enterprise Plus o da 1 a 7 per la versione Cloud SQL Enterprise.
- Fai clic su Salva.
gcloud
Modifica l'istanza per impostare il numero di giorni per conservare i log write-ahead.
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 specifici un valore, Cloud SQL utilizza il valore predefinito. È valido solo quando il PITR è abilitato. Conservare i log delle transazioni per più giorni 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, apporta le sostituzioni seguenti:
- 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. Se conservi i log delle transazioni per più giorni, è necessario 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 di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- 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. Se conservi i log delle transazioni per più giorni, è necessario 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 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 archivia i log delle transazioni utilizzati per il PITR.
gcloud
Per determinare se l'istanza archivia i log per il recupero temporaneo su disco o in Cloud Storage, utilizza il seguente comando:
gcloud sql instances describe INSTANCE_NAME
Sostituisci INSTANCE_NAME con il nome dell'istanza.
Per più istanze nello stesso progetto, puoi anche controllare la posizione di archiviazione dei log delle transazioni. 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 forniscono
informazioni su dove vengono archiviati
i log delle transazioni per il recupero point-in-time per l'istanza.
I possibili stati di archiviazione
del log Transaction sono i seguenti:
DISK: l'istanza memorizza i log delle transazioni utilizzati per il PITR sul disco. Se esegui l'upgrade di un'istanza Cloud SQL Enterprise alla versione Cloud SQL Enterprise Plus, il processo di upgrade cambia automaticamente la posizione di archiviazione dei log in Cloud Storage. Per saperne di più, vedi Eseguire l'upgrade di un'istanza alla versione Cloud SQL Enterprise Plus utilizzando l'upgrade in loco. Puoi anche scegliere di cambiare la posizione di archiviazione utilizzando gcloud CLI o l'API Cloud SQL Admin senza eseguire l'upgrade della versione dell'istanza e senza incorrere in tempi di inattività. Per maggiori informazioni, consulta Passare all'archiviazione dei log delle transazioni in Cloud Storage.SWITCHING_TO_CLOUD_STORAGE: l'istanza sta cambiando la posizione di archiviazione dei log delle transazioni PITR in Cloud Storage.SWITCHED_TO_CLOUD_STORAGE: l'istanza ha completato il passaggio 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 il PITR in Cloud Storage.
Passa all'archiviazione del log delle transazioni in Cloud Storage
Se la tua istanza archivia i log delle transazioni utilizzati per il recupero temporizzato su disco, puoi cambiare la posizione di archiviazione in Cloud Storage senza incorrere in tempi di inattività. L'intera procedura di cambio della posizione di archiviazione richiede circa la durata del periodo di conservazione dei log delle transazioni (giorni) per essere completata. Non appena avvii il cambio, i log delle transazioni iniziano ad accumularsi in Cloud Storage. Durante l'operazione, puoi controllare lo stato del processo complessivo utilizzando il comando in Controllare la posizione di archiviazione dei log delle transazioni utilizzati per il recupero temporaneo.
Una volta completato il processo complessivo di passaggio a Cloud Storage, Cloud SQL utilizza i log delle transazioni di Cloud Storage per il recupero point-in-time.
gcloud
Per cambiare la posizione di archiviazione in Cloud Storage, utilizza questo 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, consulta Risolvi i problemi relativi al passaggio a Cloud Storage per i possibili passaggi successivi.
REST v1
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza. L'istanza deve essere un'istanza principale e non un'istanza 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 di queste 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, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza. L'istanza deve essere un'istanza principale e non un'istanza 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 di queste 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.
Risolvere i problemi relativi al passaggio a Cloud Storage
La tabella seguente elenca i possibili errori che potrebbero essere restituiti con il
codice INVALID REQUEST quando cambi la posizione di archiviazione dei
log delle transazioni dal disco a 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 di effettuare la 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 per il recupero point-in-time (PITR). Per supportare il PITR, PostgreSQL richiede che tu abiliti il logging write-ahead sull'istanza. Per saperne di più su come attivare la registrazione write-ahead, vedi Attivare 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 Controlla la posizione di archiviazione dei log delle transazioni utilizzati per il recupero temporizzato. |
The instance is already switching transaction logs used for PITR from disk
to Cloud Storage.
|
Attendi il completamento dell'operazione di cambio. Per verificare lo stato dell'operazione e la posizione di archiviazione dei log delle transazioni, esegui il comando in Controlla la posizione di archiviazione dei log delle transazioni utilizzati per il recupero temporizzato. |
Passaggi successivi
- Configura i flag sul clone.