Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esecuzione della replica logica per Amazon RDS for Postgre SQL
A partire dalla versione 10.4, RDS per Postgre SQL supporta la SQL sintassi di pubblicazione e sottoscrizione introdotta in Postgre 10. SQL Per saperne di più, consulta Replica logica
Nota
Oltre alla funzionalità di replica SQL logica nativa di Postgre introdotta in Postgre SQL 10, per Postgre supporta anche l'estensione. RDS SQL pglogical
Per ulteriori informazioni, consulta Utilizzo di pglogical per sincronizzare i dati tra le istanze.
Di seguito, puoi trovare informazioni sulla configurazione della replica logica per un'istanza DB per Postgre. RDS SQL
Argomenti
Comprendere la replica logica e la decodifica logica
RDSfor Postgre SQL supporta lo streaming delle modifiche write-ahead log (WAL) utilizzando gli slot di replica logica di Postgre. SQL Supporta inoltre l'utilizzo della decodifica logica. Puoi configurare gli slot di replica logica nell'istanza ed effettuare lo streaming delle modifiche del database tramite questi slot in un client come pg_recvlogical
. Gli slot di replica logica sono creati a livello di database e supportano le connessioni di replica a un singolo database.
I client più comuni per la replica SQL logica di Postgree sono AWS Database Migration Service un host gestito su misura su un'istanza Amazon. EC2 Lo slot di replica logica non contiene informazioni sul ricevitore del flusso. Inoltre, non è necessario che il target sia un database di replica. Se configuri uno slot di replica logica e non leggi lo slot, i dati possono venire scritti e riempire rapidamente lo storage dell'istanza database.
Attivi la replica SQL logica e la decodifica logica di Postgre per RDS Amazon con un parametro, un tipo di connessione di replica e un ruolo di sicurezza. Il client per la decodifica logica può essere qualsiasi client in grado di stabilire una connessione di replica a un database su un'istanza DB Postgre. SQL
Per attivare la decodifica logica per un'istanza DB per Postgre RDS SQL
-
Assicurati che l'account utente che stai utilizzando abbia i seguenti ruoli:
-
Il ruolo
rds_superuser
in modo da poter attivare la replica logica -
Il ruolo
rds_replication
per concedere le autorizzazioni per gestire gli slot logici e per eseguire lo streaming dei dati utilizzando gli slot logici
-
-
Impostare il parametro statico
rds.logical_replication
su 1. Come parte dell'applicazione di questo parametro, imposta anche i parametriwal_level
,max_wal_senders
,max_replication_slots
emax_connections
. Queste modifiche ai parametri possono aumentare la WAL generazione, quindi impostate ilrds.logical_replication
parametro solo quando utilizzate slot logici. -
Affinché il parametro statico
rds.logical_replication
abbia effetto, riavviare l'istanza database. -
Creare uno slot di replica logica come spiegato nella sezione successiva. Questo processo richiede che venga specificato un plug-in di decodifica. Attualmente, RDS per Postgre SQL supporta i plugin di output test_decoding e wal2json forniti con Postgre. SQL
Lavorare con gli slot di replica logica
Puoi usare SQL i comandi per lavorare con gli slot logici. Ad esempio, il comando seguente crea uno slot logico denominato test_slot
utilizzando il plug-in di SQL output Postgre predefinito. test_decoding
SELECT * FROM pg_create_logical_replication_slot('test_slot', 'test_decoding');
slot_name | xlog_position -----------------+--------------- regression_slot | 0/16B1970 (1 row)
Per elencare gli slot logici, utilizza il seguente comando:
SELECT * FROM pg_replication_slots;
Per eliminare uno slot logico, utilizza il seguente comando:
SELECT pg_drop_replication_slot('test_slot');
pg_drop_replication_slot ----------------------- (1 row)
Per altri esempi sull'utilizzo degli slot di replica logica, consultate Esempi di decodifica logica
Una volta creato lo slot di replica logica, puoi iniziare lo streaming. Nell'esempio seguente viene illustrato il modo in cui la decodifica logica viene controllata tramite il protocollo di replica in streaming. Questo esempio utilizza il programma pg_recvlogical, incluso nella distribuzione Postgre. SQL Questa operazione richiede che l'autenticazione del client sia configurata per permettere le connessioni alla replica.
pg_recvlogical -d postgres --slot test_slot -U postgres --host -
instance-name.111122223333
.aws-region
.rds.amazonaws.com -f - --start
Per visualizzare il contenuto della vista pg_replication_origin_status
, eseguire una query sulla funzione pg_show_replication_origin_status
.
SELECT * FROM pg_show_replication_origin_status();
local_id | external_id | remote_lsn | local_lsn ----------+-------------+------------+----------- (0 rows)