Come posso risolvere gli errori che si verificano quando creo implementazioni blu/verdi in Amazon RDS per PostgreSQL e Aurora compatibile con PostgreSQL?
Desidero risolvere gli errori che si verificano quando creo implementazioni blu/verdi in Amazon Relational Database Service (Amazon RDS) per PostgreSQL e Amazon Aurora compatibile con PostgreSQL.
Risoluzione
Esamina le limitazioni delle implementazioni blu/verdi e identifica l'errore
Esamina le limitazioni delle implementazioni blu/verdi per Amazon RDS e Aurora compatibile con PostgreSQL.
Per trovare il messaggio di errore specifico per l'implementazione, completa i seguenti passaggi:
- Apri la console Amazon RDS.
- Nel pannello di navigazione, scegli Database.
- Seleziona l'implementazione blu/verde.
- Scegli la scheda Log ed eventi.
- Controlla i log per verificare la presenza di messaggi di errore.
Risolvi l'errore di configurazione della replica logica
Se crei un'implementazione blu/verde ma non attivi la replica logica, ricevi il seguente messaggio di errore:
"Blue/Green Deployments require a DB instance with logical replication enabled. Before you create a Blue/Green Deployment for a DB instance, associate the DB instance with a custom DB instance parameter group that enables logical replication."
Per attivare la replica logica, completa i passaggi seguenti:
- Crea un gruppo di parametri personalizzato o modifica un gruppo esistente.
- Imposta il parametro rds.logical_replication su 1.
- Applica il gruppo di parametri personalizzato all'istanza database.
Nota: non puoi modificare i valori predefiniti del gruppo di parametri.
Risolvi i parametri della replica incompatibili
Se crei un'implementazione blu/verde con slot di replica insufficienti per il numero di database, ricevi il seguente messaggio di errore:
"Creation of blue/green deployment failed due to incompatible parameter(s): max_replication_slots, and max_logical_replication_workers."
Per risolvere il problema, completa i seguenti passaggi:
-
Esegui questa query per visualizzare un elenco dei database:
SELECT datname FROM pg_database; -
Modifica i seguenti parametri nel gruppo di parametri personalizzato:
Imposta max_replication_slots su un valore superiore al numero totale dei database.
Imposta max_wal_senders e max_logical_replication_workers su un valore uguale agli slot di replica logica attivi.
Imposta max_worker_processes su un valore uguale alla somma di max_logical_replication_workers, autovacuum_max_workers e max_parallel_workers.
Risolvi l'errore degli slot di replica esterni
Se crei un'implementazione blu/verde quando esistono slot di replica esterni, ricevi il seguente messaggio di errore:
"Replica creation is canceled due to external replication."
Per risolvere il problema, completa i seguenti passaggi:
-
Esegui questo comando per verificare gli slot di replica esistenti:
SELECT * FROM pg_replication_slots WHERE slot_type NOT LIKE 'physical'; -
Esegui questo comando per eliminare lo slot identificato:
SELECT pg_drop_replication_slot(slot_name);Nota: sostituisci slot_name con il nome dello slot di replica.
Risolvi le modifiche DDL che si verificano dopo l'implementazione
Se modifichi il Data Definition Language (DDL) o se modifichi oggetti di grandi dimensioni dopo aver creato un'implementazione blu/verde, ricevi il seguente messaggio di errore:
"DDL changes aren't supported for blue/green deployments. These changes aren't replicated from the blue environment to the green environment, and switchover will be blocked. Your green databases now have a status of REPLICATION_DEGRADED. Delete and recreate your blue/green deployment and avoid future DDL changes."
Per risolvere il problema, elimina l'implementazione blu/verde. Quindi creane una nuova.
Dopo l'implementazione, non modificare il DDL e gli oggetti di grandi dimensioni nell'ambiente blu.
Risolvi gli errori della chiave primaria della tabella
Se aggiorni o elimini record in tabelle che non hanno chiavi primarie, ricevi il seguente messaggio di errore:
"Logical replication target relation 'public.image_audit' has neither REPLICA IDENTITY index nor PRIMARY KEY and published relation does not have REPLICA IDENTITY FULL."
Per risolvere il problema, aggiungi le chiavi primarie alle tabelle che richiedono aggiornamenti o eliminazioni. Quindi esegui questo comando per impostare REPLICA IDENTITY FULL:
ALTER TABLE table_name REPLICA IDENTITY FULL;
Nota: sostituisci table_name con il nome della tua tabella.
Risolvi i conflitti di estensione PG_CRON
Se utilizzi l'estensione pg_cron nell'implementazione, potresti ricevere il seguente messaggio di errore:
"role 'rdsrepladmin' cannot SET ROLE to 'rds_superuser'"
Possono verificarsi conflitti di replica perché i worker in background dell'estensione pg_cron vengono eseguiti come superutente e ignorano le impostazioni di sola lettura.
Per risolvere il problema, disattiva l'estensione pg_cron su tutti i database verdi dopo aver creato l'implementazione blu/verde. Mantieni l'estensione disattivata per tutta l'implementazione.
- Lingua
- Italiano
