Size: a a a

pgsql – PostgreSQL

2021 February 11

AL

Alexey Lesovsky in pgsql – PostgreSQL
nofailover
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
nosync это не быть синхронной репликой
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
https://github.com/zalando/patroni/blob/master/postgres0.yml#L126
и пример в структуре конфига
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Правильно понимаю, что достаточно поправить patroni.yml на нужном хосте и перечитать конфигурацию?
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Alexey Lesovsky
nosync это не быть синхронной репликой
У меня режим кластера - synchronous_mode=true, то есть всегда есть синхронная реплика и в случае падения мастера новый поднимается на ней. Если я говорю nosync - хост никогда не станет синхронной репликой, соответственно не станет мастером. Правильно?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Ходад Бродад
Правильно понимаю, что достаточно поправить patroni.yml на нужном хосте и перечитать конфигурацию?
да, поправить конфиг, сделать patronictl reload
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Alexey Lesovsky
да, поправить конфиг, сделать patronictl reload
Спасибо, допёр.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Ходад Бродад
У меня режим кластера - synchronous_mode=true, то есть всегда есть синхронная реплика и в случае падения мастера новый поднимается на ней. Если я говорю nosync - хост никогда не станет синхронной репликой, соответственно не станет мастером. Правильно?
да, тоже верно
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Alexey Lesovsky
да, тоже верно
Обратно спасибо!
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
при условии что есть другой узел который является синхронной репликой
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Alexey Lesovsky
при условии что есть другой узел который является синхронной репликой
А если он сильно отстал, но есть тег nosync, patroni будет догонять оставшуюся реплику до синхронной или он наплюёт на тег?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
если есть синхронная реплика то она однозначно станет мастером, т.к. у нее нет лага.

если синхронной реплики нет - надо выбрать из тех у кого наименьший лаг.

тут всё зависит от значения maximum_lag_on_failover, если лаг реплики превышает значение - то такая реплика не будет участвовать в выборах

если никто не подходит, кластер переводится в read-only, до тех пор пока мастер не вернется в строй или до ручного вмешательства админа (patronictl switchover/failover)
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Alexey Lesovsky
если есть синхронная реплика то она однозначно станет мастером, т.к. у нее нет лага.

если синхронной реплики нет - надо выбрать из тех у кого наименьший лаг.

тут всё зависит от значения maximum_lag_on_failover, если лаг реплики превышает значение - то такая реплика не будет участвовать в выборах

если никто не подходит, кластер переводится в read-only, до тех пор пока мастер не вернется в строй или до ручного вмешательства админа (patronictl switchover/failover)
В рид-онли он переводится только когда режим строгой синхронной репликации. При не строго он пытается кого-то догнать до синхронной. Ну, на сколько я понял
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
У меня не строгая.
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
maximum_lag_on_failover: the maximum bytes a follower may lag to be able to participate in leader election.

если реплики не удовлетворяют - промоута не будет - иначе это риск потерять данные
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Да, это понятно. Но фактическая схема - 2 сильных физических сервера + одна виртуальная копия в nosync. Считаете, что лучше поставить nofailover?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
> Считаете, что лучше поставить nofailover?

я никак не считаю, это ваше сетап и вы сами должны оценивать риски (от чего вы можете отлететь) и выбирать соотв. конфигурацию.
источник

ХБ

Ходад Бродад... in pgsql – PostgreSQL
Alexey Lesovsky
> Считаете, что лучше поставить nofailover?

я никак не считаю, это ваше сетап и вы сами должны оценивать риски (от чего вы можете отлететь) и выбирать соотв. конфигурацию.
Да, конечно. За помощь спасибо!
источник

AF

Alexander Fomin in pgsql – PostgreSQL
Привет всем! Нужна помощь с postres.
Есть app на Spring, работаем с psql. Изначальная разработка велась под Win, все работало отлично. Сейчас настраиваю gitlab-cicd, переносится все в linux, начались проблемы с чревзычайно медленным запуском и работой приложения.
Методом исключения пришли к тому, что если СУБД стоит на ubuntu (и в вм, и в хостовой системе) / macos, приложение нормально работать не может. Если psql развернут на винде - все ок. Причем ок при запуске приложения что на винде, что на ubuntu,  что в контейнере.
Postgres 12, машины достаточно мощные, не должно влиять. У кого была такая проблема?
источник