Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / горячий резерв и pg_ctl promote / 25 сообщений из 48, страница 1 из 2
01.10.2014, 11:41:59
    #38763066
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
Поясните за резервирование и переключение подчиненного резервного сервера в рабочий режим.
Вот некие руководства предполагают делать вместо pg_ctl -w promote делать еще и рестарт сервера.

А зачем они на этом настаивают?
Может быть лучше обеспечить ожидание накатывания всех доступных логов на подчиненном и таки не делать рестарт ?

Очевидно, это сводит на нет преимущества прогретого сервера, который уже держит набор оперативных данных и рестарт может сильно увеличить время переключения резервного сервера. Хотя я пока не знаю насколько точно, но остальные элементы мой проектируемой инфраструктурки переключаются практически мгновенно.


2. Буду благодарен, если кто-то по-тихому пришлет на почту в профиле "PostgreSQL 9 High Availability Cookbook 2014.pdf".
Судя по оглавлению, весьма интересный обзор всех возможных технологий в данной области.
...
Рейтинг: 0 / 0
01.10.2014, 12:09:59
    #38763120
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwind,

ориентируйтесь на официальную документацию. рестарт сервиса ненужен, достаточно "pg_ctl promote".
...
Рейтинг: 0 / 0
01.10.2014, 12:12:18
    #38763127
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
daevy, как-то не очень аргументированно.
так изменения из WAL накатятся прежде чем pg_ctl завершится и вернет управление ?
...
Рейтинг: 0 / 0
01.10.2014, 12:18:56
    #38763146
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
вот тут, например, не понятно чем завершилось обсуждение.
какая все же разница между restart и promote в контексте сохранности данных ?

http://comments.gmane.org/gmane.comp.db.postgresql.general/163686
...
Рейтинг: 0 / 0
01.10.2014, 12:38:58
    #38763179
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwind,

Вам нужно чтобы слейв перед promote содержал теже данные что и мастер? В таком случае, сначала тормозните мастера, слейв накатит данные, разорвет соединение с выключившимся мастером, и далее делайте promote.

Если мастер упал внезапно, то тут возможны самые разные варианты и прогнозы в зависимости от конфига, нагрузки и лага)))
...
Рейтинг: 0 / 0
01.10.2014, 12:42:31
    #38763185
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwindвот тут, например, не понятно чем завершилось обсуждение.
какая все же разница между restart и promote в контексте сохранности данных ?

http://comments.gmane.org/gmane.comp.db.postgresql.general/163686

разницы никакой нет, в обоих случаях стендбай будет согласован с мастером (eventually consistent). за исключением случаев когда стендбай гасят через pg_ctl -m immediate stop или kill -9
...
Рейтинг: 0 / 0
01.10.2014, 12:52:56
    #38763198
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
daevyЕсли мастер упал внезапно, то тут возможны самые разные варианты и прогнозы в зависимости от конфига, нагрузки и лага)))
горячий резерв подразумевает защиту от внештатной ситуации и в частности внезапное зависание мастера.

ну так какие именно варианты ?
...
Рейтинг: 0 / 0
01.10.2014, 13:14:22
    #38763232
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwinddaevyЕсли мастер упал внезапно, то тут возможны самые разные варианты и прогнозы в зависимости от конфига, нагрузки и лага)))
горячий резерв подразумевает защиту от внештатной ситуации и в частности внезапное зависание мастера.

ну так какие именно варианты ?

если мастер внезапно отказал, то
1. потеря последних закомиченных транзакции в рамках 3*wal_write_delay (при synchronous_commit = off). если вы поэксперементируете с fsync или full_pages_writes то последствия будут и того печальней. клиент уже получил ответ об успехе. а на мастер умер и на стендбай ничего не приехало.

2. асинхронная репликация. имеем длинный лаг где-нибудь около ~1Gb вызванный "сетевыми проблемами" или высокой "дисковой нагрузкой". тут мастер падает, данные предназначенные к отправке wal_sender'ом никуда не отправляются. в итоге осиротевший стендбай отстает от мастера на величину лага.

как вам? :)
не читайте "некие руководства", читайте официальную документацию. там это все описано и объяснено куда лучше чем я вам тут пишу.
...
Рейтинг: 0 / 0
01.10.2014, 13:17:54
    #38763239
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwindгорячий резерв

горячий резерв не панацея, иначе бы не было скриптов на которые ссылаются здесь )))
...
Рейтинг: 0 / 0
01.10.2014, 14:57:31
    #38763377
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
То есть promote моментально переводит сервер в режим и отбрасывает весь скачанный WAL ?
daevyне читайте "некие руководства", читайте официальную документацию. там это все описано и объяснено куда лучше чем я вам тут пишу.
Ничего там не написано. А читать исходники мне сложно.
...
Рейтинг: 0 / 0
01.10.2014, 16:29:39
    #38763606
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwindТо есть promote моментально переводит сервер в режим и отбрасывает весь скачанный WAL ?
daevyне читайте "некие руководства", читайте официальную документацию. там это все описано и объяснено куда лучше чем я вам тут пишу.
Ничего там не написано. А читать исходники мне сложно.

скачаный будет проигран безусловно и без вариантов...
но это скачаный... которые не обязательно соответствует последнему на мастере (если у вас асинхронная репликация)

если в начале корректно остановить мастер - тогда потерь данных не будет
если мастер просто умер - то возможна потеря последних транзакций (насколько много зависит от того какая часть wal не скопировалась).
...
Рейтинг: 0 / 0
01.10.2014, 16:33:01
    #38763609
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
Maxim Boguk
скачаный будет проигран безусловно и без вариантов...
но это скачаный... которые не обязательно соответствует последнему на мастере (если у вас асинхронная репликация)

ну так в какой момент вернется завершится программа pg_ctl promote ? Сразу или подождет пока имеющиеся данные в WAL накатятся?

Понятно, что ответ был дал эксперимент, но не могу это смоделировать просто так, потому что нужна еще и нагрузка нормальная.
...
Рейтинг: 0 / 0
01.10.2014, 17:20:19
    #38763688
Ёш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwind, у Вас синхронная репликация или асинхронная? Если синхронная, то неважно, делаете вы promote или restart, если асинхронная, то вы в любом случае можете потерять данные при аварии и неважно, делаете вы promote или restart :-)
...
Рейтинг: 0 / 0
01.10.2014, 17:34:17
    #38763726
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
Ёш, Скорее всего, асинхронная, поскольку речи о финансовых данных нет.
Тем не менее в документации вопрос не освещен и хотелось бы уже знать точно.

Я, например, могу напрячься и написать такой скрипт promote, который сначала подождет не более N секунд для минимизации потерь.
а если pg_ctl promote и так ожидает - я могу не напрягаться.
...
Рейтинг: 0 / 0
01.10.2014, 17:35:47
    #38763729
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwindMaxim Bogukскачаный будет проигран безусловно и без вариантов...
но это скачаный... которые не обязательно соответствует последнему на мастере (если у вас асинхронная репликация)

ну так в какой момент вернется завершится программа pg_ctl promote ? Сразу или подождет пока имеющиеся данные в WAL накатятся?

Понятно, что ответ был дал эксперимент, но не могу это смоделировать просто так, потому что нужна еще и нагрузка нормальная.

вот вам эксперимент,
YouTube Video
...
Рейтинг: 0 / 0
01.10.2014, 17:43:26
    #38763757
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
daevyвот вам эксперимент,

все IO операции ставятся в очередь, и исполняются в соответствии с их положением в этой очереди.
Я так понимаю, тут для моделирования ситуации на slave было заморожено дисковое устройство, поэтому вообще все изменения на slave встали в очередь.

Но ведь в реальности ничто не помешает операциям с базой, которые делает promote выполняться параллельно с wal, обогнать их и отбросить весь тот wal, который скачался ?
...
Рейтинг: 0 / 0
01.10.2014, 17:46:28
    #38763765
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwind,

очередь используется всегда, даже когда ио не заморжено и операции исполняются в соответствии с тем как поставлены в очередь.
можете взять blktrace и убедиться воочию
...
Рейтинг: 0 / 0
01.10.2014, 18:06:44
    #38763804
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
daevy, ну так ведь WAL cначала скачивается и все те операции записаны во внутренней "очереди" в самом WAL.
Они не видны для устройства, потому что их туда еще не отсылали.
какой именно механизм гарантирует (или не гарантирует), что сначала весь wal прочитается и накатится, а потом уже произойдет promote ?
...
Рейтинг: 0 / 0
01.10.2014, 18:31:46
    #38763832
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwinddaevy, ну так ведь WAL cначала скачивается и все те операции записаны во внутренней "очереди" в самом WAL.
Они не видны для устройства, потому что их туда еще не отсылали.
какой именно механизм гарантирует (или не гарантирует), что сначала весь wal прочитается и накатится, а потом уже произойдет promote ?

за это отвечает wal_receiver, у него есть буффер в который он принимает WAL с мастера и затем синкает его в сегменты в pg_xlog, там уже вызывается fsync и все отдается на откуп ядру и драйверам.
...
Рейтинг: 0 / 0
01.10.2014, 19:20:59
    #38763891
daevy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
daevynetwind,

очередь используется всегда, даже когда ио не заморжено и операции исполняются в соответствии с тем как поставлены в очередь.
можете взять blktrace и убедиться воочию

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

В пределах хоста операции выполняются в очереди в произвольном порядке (это как раз и повышает скорость работы, т.к. часто бывает так, что в очереди три-четыре записи в один и тот же блок — их просто объединяют в одну), однако, для целостности и транзакционности (метаданные файловых систем, базы данных и т.д.) ОС может в любой момент установить write barrier (все последующие операции могут выполняться только после того, как операции до write barrier выполнятся), либо делать flush, для сохранения всего нафиг. На более низком уровне это контролируется флагами у SAS/SATA команд, write barrier — это абстракция линукса (и его очереди). Но суть такая: в общем случае порядок не определён, но если надо, его можно ограниченно контролировать.

netwindНо ведь в реальности ничто не помешает операциям с базой, которые делает promote выполняться параллельно с wal, обогнать их и отбросить весь тот wal, который скачался ?

про параллельность и гонки...

Несколько очередей для устройства — это очень высокий хайэнд, и в любом случае эти очереди будут для разных инициаторов/хостов (речь про большие SCSI системы или SAN).
...
Рейтинг: 0 / 0
01.10.2014, 20:09:32
    #38763940
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
Все же вопрос мой был не о том.
Как в обсуждаемом случае работает postgres ?
...
Рейтинг: 0 / 0
01.10.2014, 23:20:31
    #38764082
Гость_0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwind,

считайте что promote НЕ ждёт, а переключает сразу.
...
Рейтинг: 0 / 0
02.10.2014, 02:03:36
    #38764150
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwindВсе же вопрос мой был не о том.
Как в обсуждаемом случае работает postgres ?

будет проигрывать все накопленные/принятые wal файлы
что в случае отставания реплики может занять заметное время

в тему обсуждения см:
http://www.postgresql.org/message-id/flat/CA+U5nM+5__0n-52GM1TSmjfk_3uBpTMBYgOYftEfKTE1RWx_hg@mail.gmail.com]http://www.postgresql.org/message-id/flat/CA U5nM 5__0n-52GM1TSmjfk_3uBpTMBYgOYftEfKTE1RWx_hg@mail.gmail.com
как раз недавно обсуждалось добавление promote без проигрывания остатков wal.
Я бы на месте разработчиков бы этот функцинал бы не делал (слишком уж удобный метод себе в ногу выстрелить).
...
Рейтинг: 0 / 0
02.10.2014, 12:04:27
    #38764563
Misha Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
Maxim Boguk,
> бы этот функцинал бы не делал
+1

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

но функционал опасный) его надо как-то более обосабливать
...
Рейтинг: 0 / 0
02.10.2014, 12:10:37
    #38764577
Misha Tyurin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
горячий резерв и pg_ctl promote
netwind,

а дай ссылку то, кто что там советует и настаивает!

перезагружать сервер надо обычно только для применения конфига, в случаях когда он по другому не применяется
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / горячий резерв и pg_ctl promote / 25 сообщений из 48, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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