|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Добрый вечер. Postgresql 11(но пробовал на разныхот 9.6 до 13. поведение идентичное) Настроил физическую репликацию. Как только включаю synchronous_commit транзакции виснут. Изменения на реплике видны. но на мастере транзакция висит ожидает сигнала с реплики. значение synchronous_standby_names совпадает с именем replication_slot. При отмене сообщение WARNING: canceling wait for synchronous replication due to user request DETAIL: The transaction has already committed locally, but might not have been replicated to the standby. На реплике все есть но сигнал о получении не получен. Подскажите плз куда рыть ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 21:05 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
vital8111 Добрый вечер. Postgresql 11(но пробовал на разныхот 9.6 до 13. поведение идентичное) Настроил физическую репликацию. Как только включаю synchronous_commit транзакции виснут. Изменения на реплике видны. но на мастере транзакция висит ожидает сигнала с реплики. значение synchronous_standby_names совпадает с именем replication_slot. При отмене сообщение WARNING: canceling wait for synchronous replication due to user request DETAIL: The transaction has already committed locally, but might not have been replicated to the standby. На реплике все есть но сигнал о получении не получен. Подскажите плз куда рыть 1)покажите что у вас в select * from pg_stat_replication; на мастере 2)покажите что ИМЕННО у вас в конфиге написано для synchronous_standby_names, synchronous_commit 3)что прописано в primary_conninfo на синхронной реплике -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2021, 22:59 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
-[ RECORD 1 ]----+------------------------------ pid | 4652 usesysid | 16384 usename | username application_name | walreceiver client_addr | IP client_hostname | client_port | 58246 backend_start | 2021-04-23 07:45:47.191778+03 backend_xmin | state | streaming sent_lsn | 0/58C46578 write_lsn | 0/58C46578 flush_lsn | 0/58C46578 replay_lsn | 0/58C46578 write_lag | flush_lag | replay_lag | sync_priority | 0 sync_state | async synchronous_commit = 'on' synchronous_standby_names = 'replica' standby_mode = 'on' primary_conninfo = 'user=username password=password channel_binding=prefer host=IP port=5432 sslmode=prefer sslcompression=0 ssl_min_protocol_version=TLSv1.2 gssencmode=prefer krbsrvname=postgres target_session_attrs=any' primary_slot_name = 'replica' ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 08:40 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Если ставлю synchronous_standby_names = '*' то вроде переключается на sync но работает как то странно Можно поймать момент когда на реплике нет данных с мастера ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:08 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
vital8111, так у вас нет синхронной реплики в кластере вот все и зависает что ожидаемо... вы документацию по synchronous_standby_names читали что именно туда надо вписать? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:09 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
vital8111 Если ставлю synchronous_standby_names = '*' то вроде переключается на sync но работает как то странно Можно поймать момент когда на реплике нет данных с мастера а собственно synchronous_commit = 'on' и не гарантирует что на реплике будет автоматически видно то что вы на мастере закомитили. он не про это (в умолчательном поведении). Еще раз рекомендую почитать документацию на этот раз про synchronous_commit в части https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:12 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Maxim Boguk vital8111, так у вас нет синхронной реплики в кластере вот все и зависает что ожидаемо... вы документацию по synchronous_standby_names читали что именно туда надо вписать? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Так как я сделал меня научили на курсах. Говорили делать именно так. Да и курсы то не в шараге были а во вполне серьезной организации. У всех на курсе заработало кроме меня) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:40 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Maxim Boguk vital8111 Если ставлю synchronous_standby_names = '*' то вроде переключается на sync но работает как то странно Можно поймать момент когда на реплике нет данных с мастера а собственно synchronous_commit = 'on' и не гарантирует что на реплике будет автоматически видно то что вы на мастере закомитили. он не про это (в умолчательном поведении). Еще раз рекомендую почитать документацию на этот раз про synchronous_commit в части https://www.postgresql.org/docs/13/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Благодарю. Прочитаю ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:42 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Вроде же более чем однозначно указано для synchronous_standby_names: The name of a standby server for this purpose is the application_name setting of the standby, as set in the standby's connection information. In case of a physical replication standby, this should be set in the primary_conninfo setting; the default is the setting of cluster_name if set, else walreceiver. С чего вы решили, что оно как-то связано с primary_slot_name? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:47 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
vital8111 Maxim Boguk vital8111, так у вас нет синхронной реплики в кластере вот все и зависает что ожидаемо... вы документацию по synchronous_standby_names читали что именно туда надо вписать? -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Так как я сделал меня научили на курсах. Говорили делать именно так. Да и курсы то не в шараге были а во вполне серьезной организации. У всех на курсе заработало кроме меня) При любых вопросах начинайте с документации официальной... сэкономит кучу времени. А курсы... курсы люди пишут и слушают... и ошибаются. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 10:52 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Спасибо. В синхронный режим переключилось Поставил remote_apply. Тестировщики будут тестить Теперь осталось понять как поменять application_name А то 'walreceiver' ак то не интересно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 11:02 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
vital8111 Спасибо. В синхронный режим переключилось Поставил remote_apply. Тестировщики будут тестить Теперь осталось понять как поменять application_name А то 'walreceiver' ак то не интересно вам же уже процитировали с документации... The name of a standby server for this purpose is the application_name setting of the standby, as set in the standby's connection information. In case of a physical replication standby, this should be set in the primary_conninfo setting; the default is the setting of cluster_name if set, else walreceiver. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 11:05 |
|
Физическая репликация. Syncronuos_commit
|
|||
---|---|---|---|
#18+
Maxim Boguk vital8111 Спасибо. В синхронный режим переключилось Поставил remote_apply. Тестировщики будут тестить Теперь осталось понять как поменять application_name А то 'walreceiver' ак то не интересно вам же уже процитировали с документации... The name of a standby server for this purpose is the application_name setting of the standby, as set in the standby's connection information. In case of a physical replication standby, this should be set in the primary_conninfo setting; the default is the setting of cluster_name if set, else walreceiver. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru Да это то я понял. Надо пример накопать как настраивается З.Ы. Все разобрался. Спасибо огромное ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 11:37 |
|
|
start [/forum/topic.php?fid=53&msg=40065069&tid=1994069]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 137ms |
0 / 0 |