Impostazione della replica logica per il cluster database Aurora PostgreSQL - Amazon Aurora

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

Impostazione della replica logica per il cluster database Aurora PostgreSQL

La seguente procedura mostra come avviare la replica logica tra due cluster database Aurora PostgreSQL. I passaggi presuppongono che sia l'origine (publisher) che la destinazione (subscriber) abbiano l'estensione pglogical impostata come descritto dettagliatamente in Impostazione dell'estensione pglogical.

Nota

Il nodo node_name di un abbonato non può iniziare conrds.

Per creare il nodo publisher e definire le tabelle da replicare

Questi passaggi presuppongono che il cluster database Aurora PostgreSQL abbia un'istanza di scrittura con un database contenente una o più tabelle che desideri replicare in un altro nodo. È necessario ricreare la struttura delle tabelle dal publisher nel subscriber, quindi prima, se occorre, recupera la struttura delle tabelle. Puoi farlo utilizzando il metacomando psq1 \d tablename e quindi creando la stessa tabella nell'istanza subscriber. Nella procedura seguente viene illustrato come creare una tabella di esempio nel publisher (origine) a scopo dimostrativo.

  1. Utilizza psql per connetterti all'istanza che include la tabella da usare come origine per i subscriber.

    psql --host=source-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb

    Se non hai una tabella esistente da replicare, puoi creare una tabella di esempio come indicato di seguito.

    1. Crea una tabella di esempio utilizzando la seguente istruzione SQL.

      CREATE TABLE docs_lab_table (a int PRIMARY KEY);
    2. Popola la tabella con i dati generati utilizzando la seguente istruzione SQL.

      INSERT INTO docs_lab_table VALUES (generate_series(1,5000)); INSERT 0 5000
    3. Verifica che i dati siano presenti nella tabella utilizzando la seguente istruzione SQL.

      SELECT count(*) FROM docs_lab_table;
  2. Identifica il cluster database Aurora PostgreSQL come nodo publisher, come indicato di seguito.

    SELECT pglogical.create_node( node_name := 'docs_lab_provider', dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 dbname=labdb'); create_node ------------- 3410995529 (1 row)
  3. Aggiungi la tabella da replicare al set di replica predefinito. Per ulteriori informazioni sui set di replica, consulta Replication sets (Set di replica) nella documentazione di pglogical.

    SELECT pglogical.replication_set_add_table('default', 'docs_lab_table', 'true', NULL, NULL); replication_set_add_table --------------------------- t (1 row)

L'impostazione del nodo publisher è completata. Ora puoi impostare il nodo subscriber per ricevere gli aggiornamenti dal publisher.

Per impostare il nodo subscriber e creare una sottoscrizione per ricevere gli aggiornamenti

Questi passaggi presuppongono che sia stata eseguita l'impostazione del cluster database Aurora PostgreSQL con l'estensione pglogical. Per ulteriori informazioni, consulta Impostazione dell'estensione pglogical.

  1. Utilizza psql per connetterti all'istanza per cui vuoi ricevere gli aggiornamenti dal publisher.

    psql --host=target-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
  2. Nel cluster database Aurora PostgreSQL del subscriber crea la stessa tabella presente nel publisher. In questo esempio, la tabella è docs_lab_table. È possibile creare la tabella come indicato di seguito.

    CREATE TABLE docs_lab_table (a int PRIMARY KEY);
  3. Verifica che questa tabella sia vuota.

    SELECT count(*) FROM docs_lab_table; count ------- 0 (1 row)
  4. Identifica il cluster database Aurora PostgreSQL come nodo subscriber, come indicato di seguito.

    SELECT pglogical.create_node( node_name := 'docs_lab_target', dsn := 'host=target-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdb user=postgres password=********'); create_node ------------- 2182738256 (1 row)
  5. Crea la sottoscrizione.

    SELECT pglogical.create_subscription( subscription_name := 'docs_lab_subscription', provider_dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdb user=postgres password=*******', replication_sets := ARRAY['default'], synchronize_data := true, forward_origins := '{}' ); create_subscription --------------------- 1038357190 (1 row)

    Una volta completato questo passaggio, i dati della tabella del publisher vengono creati nella tabella del subscriber. È possibile verificare questa operazione utilizzando la seguente query SQL.

    SELECT count(*) FROM docs_lab_table; count ------- 5000 (1 row)

Da questo momento in poi, le modifiche apportate alla tabella del publisher vengono replicate nella tabella del subscriber.