Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
en version 10 sous Oracle Linux 6
J'ai créé une publication:
testdb=# CREATE PUBLICATION mypub FOR TABLE article;
CREATE PUBLICATION
testdb=#
Une subscription:
destdb=# CREATE SUBSCRIPTION mysub CONNECTION 'dbname=testdb host=192.168.56.71 user=rep password=Password port=5432' PUBLICATION mypub;
NOTICE: created replication slot "mysub" on publisher
CREATE SUBSCRIPTION
Mais les données ne sont pas transmises à la destination:
sur maître
testdb=> table article
;
idart | name | quantity
-------+-----------+----------
1 | articolo1 | 20
2 | articolo2 | 50
3 | articolo3 | 40
4 | articolo4 | 40
(4 rows)
sur destination;
destdb=# table article;
idart | name | quantity
-------+------+----------
(0 rows)
Or:
testdb=# SELECT application_name, backend_start, state, sent_lsn, write_lsn, flush_lsn, sync_state FROM pg_stat_replication;
application_name | backend_start | state | sent_lsn | write_lsn | flush_lsn | sync_state
------------------+-------------------------------+---------+-----------+-----------+-----------+------------
mysub | 2018-06-10 05:57:27.096689+02 | catchup | 0/704B0A8 | 0/704B0A8 | 0/704B0A8 | async
(1 row)
destdb=# select * from pg_stat_subscription;
subid | subname | pid | relid | received_lsn | last_msg_send_time | last_msg_receipt_time | latest_end_lsn | latest_end_time
-------+---------+------+-------+--------------+-------------------------------+-------------------------------+----------------+-------------------------------
16392 | mysub | 1215 | | 0/704B0A8 | 2018-06-10 05:57:27.100453+02 | 2018-06-10 07:20:23.924671+02 | 0/704B0A8 | 2018-06-10 05:57:27.100453+02
(1 row)
Pourquoi relid (nom de table) est vide?
Dans les logs sur maître:
2018-06-09 22:12:51.861 CEST [9534] LOG: received replication command: START_REPLICATION SLOT "mysub" LOGICAL 0/0 (proto_version '1', publication_names '"mypub"')
2018-06-09 22:12:51.862 CEST [9534] LOG: starting logical decoding for slot "mysub"
2018-06-09 22:12:51.862 CEST [9534] DETAIL: streaming transactions committing after 0/704B0A8, reading WAL from 0/704B070
2018-06-09 22:12:51.862 CEST [9534] LOG: logical decoding found consistent point at 0/704B070
Merci pour votre aide.
Dernière modification par big1 (10/06/2018 07:45:57)
Hors ligne
J'ai fait le test et cela fonctionne pour moi.
Pourquoi relid (nom de table) est vide?
Comme le dit très bien la documentation (https://docs.postgresql.fr/10/monitorin … bscription) : "OID de la relation que le processus worker synchronise ; NULL pour le processus worker apply principal". Donc la ligne renvoyée concerne le worker apply principal.
Guillaume.
Hors ligne
Pages : 1