powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Физическая репликация. Syncronuos_commit
13 сообщений из 13, страница 1 из 1
Физическая репликация. Syncronuos_commit
    #40064923
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.
На реплике все есть но сигнал о получении не получен.
Подскажите плз куда рыть
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40064954
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065033
vital8111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

-[ 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'
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065069
vital8111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ставлю
synchronous_standby_names = '*'
то вроде переключается на sync но работает как то странно
Можно поймать момент когда на реплике нет данных с мастера
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065071
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vital8111,

так у вас нет синхронной реплики в кластере
вот все и зависает что ожидаемо...
вы документацию по synchronous_standby_names читали что именно туда надо вписать?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065074
Фотография 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
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065089
vital8111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
vital8111,

так у вас нет синхронной реплики в кластере
вот все и зависает что ожидаемо...
вы документацию по synchronous_standby_names читали что именно туда надо вписать?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Так как я сделал меня научили на курсах. Говорили делать именно так.
Да и курсы то не в шараге были а во вполне серьезной организации. У всех на курсе заработало кроме меня)
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065092
vital8111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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


Благодарю. Прочитаю
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065095
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде же более чем однозначно указано для 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?
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065100
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vital8111
Maxim Boguk
vital8111,

так у вас нет синхронной реплики в кластере
вот все и зависает что ожидаемо...
вы документацию по synchronous_standby_names читали что именно туда надо вписать?

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru


Так как я сделал меня научили на курсах. Говорили делать именно так.
Да и курсы то не в шараге были а во вполне серьезной организации. У всех на курсе заработало кроме меня)


При любых вопросах начинайте с документации официальной... сэкономит кучу времени.
А курсы... курсы люди пишут и слушают... и ошибаются.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065102
vital8111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. В синхронный режим переключилось
Поставил remote_apply. Тестировщики будут тестить
Теперь осталось понять как поменять application_name
А то 'walreceiver' ак то не интересно
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065105
Фотография 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
...
Рейтинг: 0 / 0
Физическая репликация. Syncronuos_commit
    #40065116
vital8111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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


Да это то я понял. Надо пример накопать как настраивается

З.Ы. Все разобрался. Спасибо огромное
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Физическая репликация. Syncronuos_commit
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]