Re: Postgres 9.4 BDR - Replicazione non funziona

From: Giuseppe Broccolo <g(dot)broccolo(dot)7(at)gmail(dot)com>
To: Francesco Andrisani <francesco(dot)andrisani(at)acotel(dot)com>
Cc: pgsql-it-generale(at)postgresql(dot)org
Subject: Re: Postgres 9.4 BDR - Replicazione non funziona
Date: 2017-12-07 16:12:26
Message-ID: CAFtuf8DWZuf-H=hbi2TfKpEyg24Y=9kHH9nGt2=Dn0SACekpuw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-it-generale

Ciao Francesco,

Il giorno 7 dicembre 2017 16:35, Francesco Andrisani <
francesco(dot)andrisani(at)acotel(dot)com> ha scritto:

> Buongiorno,
> sto provando a creare un Cluster Master Master usando Postgres-9.4 BDR su
> due nodi.
> Sul primo nodo il DB già esiste ed è bello grosso (più di 3Gb).
> Nell'aggiungere il secondo nodo (ho popolato il DB con un dump fatto dal
> primo nodo), dopo aver configurato tutto (primo e secondo nodo) seguendo la
> guida ufficiale (http://bdr-project.org/docs/stable/quickstart.html)
> nell'eseguire l'ultimo step (http://bdr-project.org/docs/
> stable/quickstart-enabling.html) sul nodo 2, resto bloccato su "SELECT
> bdr.bdr_node_join_wait_for_ready();" ed il nodo2 stampa a log questo:
>
> < 2017-12-07 09:33:15.781 EST >LOG: starting background worker process
> "bdr db: zabbix"
> < 2017-12-07 09:33:15.793 EST >ERROR: previous init failed, manual
> cleanup is required
> < 2017-12-07 09:33:15.793 EST >DETAIL: Found bdr.bdr_nodes entry for bdr
> (6496055908800323183,1,16386,) with state=i in remote bdr.bdr_nodes
> < 2017-12-07 09:33:15.793 EST >HINT: Remove all replication identifiers
> and slots corresponding to this node from the init target node then drop
> and recreate this database and try again
> < 2017-12-07 09:33:15.795 EST >LOG: worker process: bdr db: zabbix (PID
> 26818) exited with exit code 1
>

L'aggiunta del secondo nodo al cluster BDR tramite la funzione
bdr.bdr_group_join è asincrona. bdr.bdr_node_join_wait_for_ready serve
proprio per attendere che l'aggiunta del secondo nodo avvenga con successo.
L'errore allegato si riferisce infatti all'esecuzione della prima funzione.

Non riesco a venirne a capo.
> Sul primo nodo se eseguo :
> zabbix=# select * from bdr.bdr_nodes;
> node_sysid | node_timeline | node_dboid | node_status |
> node_name | node_local_dsn
> | node_init_from_dsn | node_read_only | node_seq_id
> ---------------------+---------------+------------+---------
> ----+-----------+-------------------------------------------
> ------------------------------------+--------------------+--
> --------------+-------------
> 6494544977234587558 | 1 | 16386 | r | zabbix01
> | user=postgres password=xxxxxxxx host=10.200.x.xx port=5432 dbname=zabbix
> | | f |
> (1 row)"
>
> Vedo solo il primo nodo ma non il secondo.
> Come devo proseguire?
>

Anzitutto, potresti precisare la versione di BDR usata? Che pacchetti hai
usato?

Precisato questo: molto probabilmente quando hai creto il cluster BDR nel
primo nodo di origine tramite la funzione bdr.bdr_group_create non hai
atteso che l'esecuzione fosse finita (anche in questo caso, il comando
ritorna, ma l'esecuzione è asincrona), quindi l'aggiunta del secondo nodo è
fallita (notare lo stato "i" riscontrato nel primo nodo). Adesso dal
secondo output che hai allegato sembra che il primo nodo è correttamente
definito nel cluster (stato "r"). Puoi riaggiungere il secondo nodo,
seguendo l'hint del log:

< 2017-12-07 09:33:15.793 EST >HINT: Remove all replication identifiers
and slots corresponding to this node from the init target node then drop
and recreate this database and try again

ovvero riportandoti ad un secondo nodo pulito pronto per essere
riaggiunto (bdr.bdr_group_join
si prende cura di rieffettuare un nuovo pg_dump/pg_restore del nodo
originale).

Giuseppe.

In response to

Responses

Browse pgsql-it-generale by date

  From Date Subject
Next Message Francesco Andrisani 2017-12-07 16:18:41 Re: Postgres 9.4 BDR - Replicazione non funziona
Previous Message Francesco Andrisani 2017-12-07 15:35:04 Postgres 9.4 BDR - Replicazione non funziona