replication synchrone
Emmanuel BEZAGU <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.french |
|---|---|
| Message-ID | <16114_1466172205_5764032D_16114_473_3_9c9da819-f7cf-1989-41bd-6e64ece9bdae@dgfip.finances.gouv.fr> |
Bonjour, je fais quelques tests de replication synchrone et je cherche à vérifier que le commit sur le maître fait bien en sorte que la donnée soit disponible immédiatement en lecture sur l'esclave : 1. insert et commit sur le serveur maître 2. vérification de la donnée juste insérée sur l'esclave Les opération se font en OpenJDK 1.8.0-91 avec le driver jdbc 9.4.1208. Maître et esclave sont en version 9.5.3 sous CentOS 6.5 J'ai positionné les paramétrages suivants. Maître : wal_level = hot_standby synchronous_commit = on archive_mode = on archive_command = 'scp %p [email protected]:/var/lib/pgsql/9.5/backups/%f ' synchronous_standby_names = 'cadawebcat' Esclave : wal_level = hot_standby synchronous_commit = on hot_standby = on Dans le recovery.conf : restore_command = 'cp /var/lib/pgsql/9.5/backups/%f "%p"' standby_mode = on primary_conninfo = 'application_name=cadawebcat host=10.156.217.200 port=5432 user=replication password=replicationpass' Sur 10000 insertions/vérifications, j'ai environ 15 données que je ne vois pas immédiatement sur l'esclave. La réplication ne semble donc pas si synchrone que cela. Une idée ? Pour info complémentaire, j'ai passé les logs de l'esclave en debug : < 2016-06-17 15:30:36.954 CEST >DEBUG: StartTransactionCommand < 2016-06-17 15:30:36.954 CEST >DEBUG: lie <unnamed> à <unnamed> < 2016-06-17 15:30:36.954 CEST >DEBUG: CommitTransactionCommand < 2016-06-17 15:30:36.963 CEST >DEBUG: sendtime 2016-06-17 15:30:03.152726+02 receipttime 2016-06-17 15:30:36.963286+02 replication apply delay 0 ms transfer latency 33810 ms < 2016-06-17 15:30:36.963 CEST >DEBUG: sending write 4/2C14F6F8 flush 4/2C14F680 apply 4/2C14F680 < 2016-06-17 15:30:36.965 CEST >DEBUG: sending write 4/2C14F6F8 flush 4/2C14F6F8 apply 4/2C14F680 < 2016-06-17 15:30:36.965 CEST >DEBUG: record known xact 157607 latestObservedXid 157606 < 2016-06-17 15:30:36.965 CEST >CONTEXTE : xlog redo Heap2/MULTI_INSERT: 1 tuples < 2016-06-17 15:30:36.965 CEST >DEBUG: record known xact 157607 latestObservedXid 157607 < 2016-06-17 15:30:36.965 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.147224+02 < 2016-06-17 15:30:36.965 CEST >DEBUG: record known xact 157607 latestObservedXid 157607 < 2016-06-17 15:30:36.965 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.147224+02 < 2016-06-17 15:30:36.965 CEST >DEBUG: remove KnownAssignedXid 157607 < 2016-06-17 15:30:36.965 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.147224+02 < 2016-06-17 15:30:36.966 CEST >DEBUG: analyse <unnamed> : SELECT id FROM test WHERE id='58be24ab-3490-11e6-48e6-8da21da751c4' < 2016-06-17 15:30:36.966 CEST >DEBUG: StartTransactionCommand < 2016-06-17 15:30:36.966 CEST >DEBUG: lie <unnamed> à <unnamed> < 2016-06-17 15:30:36.966 CEST >DEBUG: CommitTransactionCommand < 2016-06-17 15:30:37.185 CEST >DEBUG: sendtime 2016-06-17 15:30:03.374971+02 receipttime 2016-06-17 15:30:37.185528+02 replication apply delay 0 ms transfer latency 33810 ms < 2016-06-17 15:30:37.185 CEST >DEBUG: sending write 4/2C14F770 flush 4/2C14F6F8 apply 4/2C14F6F8 < 2016-06-17 15:30:37.192 CEST >DEBUG: sending write 4/2C14F770 flush 4/2C14F770 apply 4/2C14F6F8 < 2016-06-17 15:30:37.193 CEST >DEBUG: analyse <unnamed> : SELECT id FROM test WHERE id='58be24ac-3490-11e6-6b4d-8da21da751c4' < 2016-06-17 15:30:37.193 CEST >DEBUG: StartTransactionCommand < 2016-06-17 15:30:37.193 CEST >DEBUG: lie <unnamed> à <unnamed> < 2016-06-17 15:30:37.194 CEST >DEBUG: CommitTransactionCommand < 2016-06-17 15:30:37.200 CEST >DEBUG: record known xact 157608 latestObservedXid 157607 < 2016-06-17 15:30:37.200 CEST >CONTEXTE : xlog redo Heap2/MULTI_INSERT: 1 tuples < 2016-06-17 15:30:37.200 CEST >DEBUG: record known xact 157608 latestObservedXid 157608 < 2016-06-17 15:30:37.200 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.361395+02 < 2016-06-17 15:30:37.200 CEST >DEBUG: record known xact 157608 latestObservedXid 157608 < 2016-06-17 15:30:37.200 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.361395+02 < 2016-06-17 15:30:37.200 CEST >DEBUG: remove KnownAssignedXid 157608 < 2016-06-17 15:30:37.200 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.361395+02 < 2016-06-17 15:30:37.206 CEST >DEBUG: sendtime 2016-06-17 15:30:03.395458+02 receipttime 2016-06-17 15:30:37.206025+02 replication apply delay 0 ms transfer latency 33810 ms < 2016-06-17 15:30:37.206 CEST >DEBUG: sending write 4/2C14F7E8 flush 4/2C14F770 apply 4/2C14F770 < 2016-06-17 15:30:37.210 CEST >DEBUG: sending write 4/2C14F7E8 flush 4/2C14F7E8 apply 4/2C14F770 < 2016-06-17 15:30:37.210 CEST >DEBUG: record known xact 157609 latestObservedXid 157608 < 2016-06-17 15:30:37.210 CEST >CONTEXTE : xlog redo Heap2/MULTI_INSERT: 1 tuples < 2016-06-17 15:30:37.210 CEST >DEBUG: record known xact 157609 latestObservedXid 157609 < 2016-06-17 15:30:37.210 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.387602+02 < 2016-06-17 15:30:37.210 CEST >DEBUG: record known xact 157609 latestObservedXid 157609 < 2016-06-17 15:30:37.210 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.387602+02 < 2016-06-17 15:30:37.210 CEST >DEBUG: remove KnownAssignedXid 157609 < 2016-06-17 15:30:37.210 CEST >CONTEXTE : xlog redo Transaction/COMMIT: 2016-06-17 15:30:03.387602+02 < 2016-06-17 15:30:37.211 CEST >DEBUG: analyse <unnamed> : SELECT id FROM test WHERE id='58be4ba0-3490-11e6-6b0d-8da21da751c4' La donnée 58be24ac-3490-11e6-6b4d-8da21da751c4 est une de celle que je ne vois pas répliquée instantanément. Merci pour votre aide. Adoptez l'éco-attitude. N'imprimez ce courriel que si c'est vraiment nécessaire