Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Всем доброго времени суток.
Ситуация следующая.
Хочу обновить основную версию БД по средствам репликации. Чтоб с минимальным даунтаймом и все такое.
Не могу понять какими средствами клонировать базу. pg_dumpom ?
basebackup и SELECT pg_start_backup('label'); клонируют по файлово, база на новой версии запускается с ошибкой(файлы от старой версии).

Заранее спасибо.
12 сен 17, 14:41    [20790064]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 290
staropramen
Хочу обновить основную версию БД по средствам репликации

Реплика работает только в рамках одной major версии.

Даунтайм в примерно 10 минут (в первый раз, а так - несколько минут) - pg_upgrade в режиме hardlink
12 сен 17, 14:54    [20790142]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Melkij
staropramen
Хочу обновить основную версию БД по средствам репликации

Реплика работает только в рамках одной major версии.

Даунтайм в примерно 10 минут (в первый раз, а так - несколько минут) - pg_upgrade в режиме hardlink

Печаль... Спасибо.
мануалы нахваливают демон слоник, который якобы умеет такое проворачивать.
как в наше время с подобной софтиной? толкового ничего нет ?
12 сен 17, 15:06    [20790195]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 290
staropramen,

сколько стоит даунтайм в 10 минут вашему бизнесу? Если это достаточно большая цифра - то почему ваше приложение не умеет штатно пережить 10 минут недоступности мастер базы?
Решение годами проверенное.

С околонулевым даунтаймом - тогда вам нужна логическая репликация. Триггерная таит порядком подводных камней.
12 сен 17, 15:28    [20790305]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Melkij
staropramen,

приложение не умеет штатно пережить 10 минут недоступности мастер базы
Решение годами проверенное.

как это штатно без базы
12 сен 17, 19:01    [20791056]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 290
Специфично для приложения. SLA в 5 девяток в принципе не может полагаться на постоянную доступность любой из частей приложения или инфраструктуры. Если бизнесу настолько дорого простой в 10 минут, то выделяется соответствующим этому бюджет на архитектора, обсуждаются граничные части, какой функционал критичен, а без чего можно прожить, какой бюджет потребуется на переделку и сопровождение, пишутся изменение приложения под эту архитектуру, продолжается администрирование и сопровождение полученной системы.

Из дешёвого и универсального как прожить без мастер базы - перейти в read-only и читать с реплики. Какую-то запись можно вести в лог или очередь и потом догнать.
Можно резать проект на части и недоступен он соответственно будет только частями. Т.е. нормально сделанное горизонтальное масштабирование на независимые чанки сюда же.

Каким-то проектам - и я встречал такие - для критичной части сервиса база действительно не нужна. Кеша и лога для записи хватает для корректной работы функционала, который должен быть high availability.
12 сен 17, 20:44    [20791214]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Melkij,

а если обновить slave сервер, он продолжит работу в стэндбай режиме на новой версии, при условии что master не обновлен?
13 сен 17, 08:37    [20791754]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 290
staropramen,
ещё раз:
Melkij
Реплика работает только в рамках одной major версии.


Побочный эффект реализации надёжной и нетребовательной до CPU физической репликации.
13 сен 17, 09:22    [20791846]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
mefman
Member

Откуда:
Сообщений: 1645
staropramen
Melkij,

а если обновить slave сервер, он продолжит работу в стэндбай режиме на новой версии, при условии что master не обновлен?

сейчас не могу найти ссылку. но гдето читал, что теоретически то это возможно. но могут быть реально непредсказуемые последствия.
13 сен 17, 09:57    [20791918]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 3345
staropramen
Melkij,

а если обновить slave сервер, он продолжит работу в стэндбай режиме на новой версии, при условии что master не обновлен?


Нет. Написали же - одинаковая major версия.
Репликация у PG на уровне физический файлов а они местами разные у разных версий.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
13 сен 17, 10:33    [20792055]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Maxim Boguk, Melkij, mefman,

Понятно. Спасибо всем за потраченное время.

mefman,
Там не логическую ли реплику использовали? Натыкался на подобного рода статьи ..
13 сен 17, 10:43    [20792097]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
daevy
Member

Откуда: Yekaterinburg, RU
Сообщений: 244
staropramen,

да логическую, репликация между мажорными версиями возможна только при использовании логической репликации (см. slony, londiste, bucardo, pg_logical)
но если вы делаете это в первый раз, то геморой с настройкой и переключением + вероятность завалить апгрейд, гораздо больше чем если использовать вариант с pg_upgrade с даунтаймом базы
13 сен 17, 13:02    [20792560]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
daevy
staropramen,

да логическую, репликация между мажорными версиями возможна только при использовании логической репликации (см. slony, londiste, bucardo, pg_logical)
но если вы делаете это в первый раз, то геморой с настройкой и переключением + вероятность завалить апгрейд, гораздо больше чем если использовать вариант с pg_upgrade с даунтаймом базы

Да я понял. Пока гуглил наткнулся на пару портянок в 20 экранов с применением логической репликации))
Танцы с бубном не рассматриваю, без даунтайма, получается, не обойтись.
13 сен 17, 15:23    [20793069]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
staropramen
Танцы с бубном не рассматриваю, без даунтайма, получается, не обойтись.

Имею ввиду, что устраивает вариант с небольшим даунтаймом больше, чем вероятность завалить апгрейд, естественно ..
13 сен 17, 15:29    [20793094]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 3345
staropramen
staropramen
Танцы с бубном не рассматриваю, без даунтайма, получается, не обойтись.

Имею ввиду, что устраивает вариант с небольшим даунтаймом больше, чем вероятность завалить апгрейд, естественно ..


pg_upgrade downtime если все нормально подготовить 1-5 минут будет (в зависимости от размера базы).

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
13 сен 17, 18:54    [20793720]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Maxim Boguk
staropramen
пропущено...

Имею ввиду, что устраивает вариант с небольшим даунтаймом больше, чем вероятность завалить апгрейд, естественно ..


pg_upgrade downtime если все нормально подготовить 1-5 минут будет (в зависимости от размера базы).

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


База не большая, в пол терабайта. Еще не тестил, но читал, действительно быстро получается.
14 сен 17, 14:30    [20795956]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
staropramen
Member

Откуда:
Сообщений: 111
Melkij
Специфично для приложения. SLA в 5 девяток в принципе не может полагаться на постоянную доступность любой из частей приложения или инфраструктуры. Если бизнесу настолько дорого простой в 10 минут, то выделяется соответствующим этому бюджет на архитектора, обсуждаются граничные части, какой функционал критичен, а без чего можно прожить, какой бюджет потребуется на переделку и сопровождение, пишутся изменение приложения под эту архитектуру, продолжается администрирование и сопровождение полученной системы.

Из дешёвого и универсального как прожить без мастер базы - перейти в read-only и читать с реплики. Какую-то запись можно вести в лог или очередь и потом догнать.
Можно резать проект на части и недоступен он соответственно будет только частями. Т.е. нормально сделанное горизонтальное масштабирование на независимые чанки сюда же.

Каким-то проектам - и я встречал такие - для критичной части сервиса база действительно не нужна. Кеша и лога для записи хватает для корректной работы функционала, который должен быть high availability.

Не посоветуете что-то почитать на эту тему? Спасибо.
14 сен 17, 19:53    [20797079]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 290
staropramen,
ничего конкретного не вспоминается, к сожалению.

А полтеррабайтную базу в 5 минут обновить через pg_upgrade - вполне реально, да. Собственно, основные затраты времени не на pg_upgrade (кроме ситуации, когда у вас несколько сотен БД), а на выполнение analyze после него.
14 сен 17, 21:07    [20797244]     Ответить | Цитировать Сообщить модератору
 Re: нужен совет по репликации и обновлению  [new]
grufos
Member

Откуда: Москва
Сообщений: 102
Melkij,
основные затраты времени не на pg_upgrade (кроме ситуации, когда у вас несколько сотен БД), а на выполнение analyze после него.

Если используется сборка от компании PostgresPro , то есть возможность воспользоваться расширением dump_stat
и таким образом сильно сократить время на сборе статистити

Я использовал это при обновлении с 9.4 на 9.5 (как раз тестировал :) )
15 сен 17, 14:46    [20799003]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить