Ho un database postgres (versione 9.4) con replica streaming (master, configurazione slave). Consente di chiamare il master db A e lo slave db B.
Il server che esegue A ha avuto esito negativo e abbiamo dovuto eseguire una commutazione, in cui abbiamo promosso B come nuovo master. Fino ad ora va tutto bene e funziona bene.
Ora ho ripristinato il server guasto e voglio impostare di nuovo la replica in modo che A possa essere il nuovo slave. Quindi, prendo un backup da B, lo metto nel server A, configuro il file di ripristino e lo avvio. Il problema qui è che non funziona più, perché dice che sono in due diverse linee temporali.
Ecco i messaggi di A (nuovo slave):
2015-10-30 14:28:04 LOG: database system was shut down in recovery at 2015-10-30 14:27:28 CET
2015-10-30 14:28:04 LOG: entering standby mode
2015-10-30 14:28:04 LOG: redo starts at 1A/5802B1A8
2015-10-30 14:28:04 LOG: consistent recovery state reached at 1A/581FA248
2015-10-30 14:28:04 LOG: record with zero length at 1A/581FA248
2015-10-30 14:28:04 LOG: database system is ready to accept read only connections
2015-10-30 14:28:05 LOG: started streaming WAL from primary at 1A/58000000 on timeline 2
2015-10-30 14:28:07 ERROR: requested starting point 19/FE000000 on timeline 1 is not in this server's history
2015-10-30 14:28:07 DETAIL: This server's history forked from timeline 1 at 19/FDCF9BA0.
2015-10-30 14:28:12 ERROR: requested starting point 19/FE000000 on timeline 1 is not in this server's history
2015-10-30 14:28:12 DETAIL: This server's history forked from timeline 1 at 19/FDCF9BA0.
il mio file di recupero ha il seguente aspetto:
standby_mode = 'on'
primary_conninfo = 'host=serverB port=5432 user=replication-user'
restore_command = 'copy "Z:\\pg_xlog\\%f" "%p"'
archive_cleanup_command = '"C:\\Program Files\\PostgreSQL\\9.4\\bin\\pg_archivecleanup" "Z:\\pg_xlog" "%r"'
trigger_file = 'Z:\\trigger\\pgsql.trigger.sekasto021'
recovery_target_timeline = 'latest'
Googling Ho trovato quasi la stessa domanda Qui ma senza risposte. Trovato una pagina da Michael Paquier chi descrive cosa mi sta succedendo (anche se dice che non è un problema dalla versione 9.3). Lui dice:
FATAL: timeline 2 of the primary does not match recovery target timeline 1
Questo può essere risolto solo copiando i segmenti WAL dal master nodo o utilizzando un archivio WAL.
Ma purtroppo non so cosa intenda copiando i segmenti wal dal master usando l'archivio a parete.
Qualsiasi aiuto / guida è ben accetto. Grazie
Aggiornamento: ho pubblicato questa domanda su StackOverflow e gli è stato chiesto di inserirlo qui