powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / горячий резерв и pg_ctl promote
48 сообщений из 48, показаны все 2 страниц
горячий резерв и pg_ctl promote
    #38763066
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поясните за резервирование и переключение подчиненного резервного сервера в рабочий режим.
Вот некие руководства предполагают делать вместо pg_ctl -w promote делать еще и рестарт сервера.

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

считайте что promote НЕ ждёт, а переключает сразу.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764150
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
горячий резерв и pg_ctl promote
    #38764563
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,
> бы этот функцинал бы не делал
+1

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

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

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

перезагружать сервер надо обычно только для применения конфига, в случаях когда он по другому не применяется
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764637
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha Tyurinnetwind,

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


http://clusterlabs.org/wiki/PgSQL_Replicated_Cluster#Pacemaker_.28both_nodes.29

авторand we use restart_on_promote="true" to explain operations simply. If you use false, you should start pacemaker on node1 only and laod configuration. After that you should copy data from node1 to node2 and start pacemaker on node2 to align Timeline ID.

не понятно почему они решили, что так будет проще.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764644
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha TyurinM
это всё очень для хитрый кейзов. типа надо срочно промоутить
ну как бэ, некоторые используют pg не потому что на оракл денег не хватило, а потому что нужна субд.
если требования такие, что нужно срочно обеспечить работу ценой потери некоторой части изменений - это нужно делать.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764657
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_0netwind,

считайте что promote НЕ ждёт, а переключает сразу.

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


И кому теперь верить ? Может знатоки исходного кода просто дадут ссылку на конкретное место чтобы я мог убедиться ?
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764705
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

убедиться в чём? :)
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764711
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind <>
И кому теперь верить ? Может знатоки исходного кода просто дадут ссылку на конкретное место чтобы я мог убедиться ?
не знаток, но "немагумалчать"

малчег :
"netwind"
ты скакова раёна 7
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764720
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёш, нужно знать по какому из двух противоположных сценариев работает pg_ctl promote и какой именно кусок исходного кода за это отвечает. документации тонет.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764723
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqты скакова раёна 7
не претендую на ваш. у вас тут вон своих экспертов по очередям ввода-вывода хватает.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764745
daevy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwindГость_0netwind,

считайте что promote НЕ ждёт, а переключает сразу.

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


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

а здесь нет противоречий. исходник walreceiver'а - ./src/backend/replication/walreceiver.c, немного коментариев для начала

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 * Walreceiver first connects to the primary server (it will be served by a walsender process in the primary server), and then 
 * keeps receiving XLOG records and writing them to the disk as long as the connection is alive. As XLOG records are received 
 * and flushed to disk, it updates the WalRcv->receivedUpto variable in shared memory, to inform the startup process of how far 
 * it can proceed with XLOG replay.

 * Normal termination is by SIGTERM, which instructs the walreceiver to exit(0). Emergency termination is by SIGQUIT; like any postmaster child
 * process, the walreceiver will simply abort and exit on SIGQUIT. A close of the connection and a FATAL error are treated not as a crash but as
 * normal operation.

 * About SIGTERM handling:
 * We can't just exit(1) within SIGTERM signal handler, because the signal might arrive in the middle of some critical operation, like while we're
 * holding a spinlock. We also can't just set a flag in signal handler and check it in the main loop, because we perform some blocking operations
 * like libpqrcv_PQexec(), which can take a long time to finish.
 * We use a combined approach: When WalRcvImmediateInterruptOK is true, it's safe for the signal handler to elog(FATAL) immediately. Otherwise it just
 * sets got_SIGTERM flag, which is checked in the main loop when convenient.
 * This is very much like what regular backends do with ImmediateInterruptOK, ProcessInterrupts() etc.



walreceiver работает в бесконечном цикле: забирает xlog записи, пишет их на диск, синкает, обновляет метку для recovery process, дает фидбек мастеру. Для завершения walreceiver (pg_ctl promote или shutdown) нужно послать ему SIGTERM (обработчик WalRcvShutdownHandler), получив его (даже где-то в средине работы) выставляет у себя флаг (got_SIGTERM) и определяется внутреннее состояние walreceiver в walrcv->walRcvState = WALRCV_STOPPING. Этот флаг читается в каждом начале цикла, и если он выставлен в WALRCV_STOPPING, то инициируется завершение работы (вызов функции WalRcvDie). В процесе WalRcvDie вызывается XLogWalRcvFlush(true) для гарантии того что все имеющиеся в распоряжении XLOG записи сброшены на диск. Сама XLogWalRcvFlush также содержит функцию обновления метки WalRcv->receivedUpto которая выполняется после синка и говорит recovery process о том до куда он может вести восстановление. Как только XLOG записи засинканы, а метка WalRcv->receivedUpto обновлена, будится recovery process, соединение с wal sender'ом разрывается, wal recever завершает работу. На этом этапе прием XLOG записей с мастера завершается. Далее работа передается recovery процессу, который должен прочитать сегменты из pg_xlog и эти изменения накатить на датфайлы.

таким образом
Гость_0netwind,
считайте что promote НЕ ждёт, а переключает сразу.
да. не ждет, имеющиеся в распоряжении валы (в буфферах) синкаются, новые уже не принимаются, соединение с мастером закрывается (несмотря на то что тому еще есть что отправить).

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

валы записаны в pg_xlog/, но не применены к конечным датфайлам и их апплай может занимать долгое время. Вот эта стадия может растянуться, в зависимости от объема изменений в pg_xlog. Патч про который пишет Максим как раз и добавляет возможность отбросить эту стадию (тем самым есть риск стрельнуть в ногу).
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764810
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daevyГость_0netwind,
считайте что promote НЕ ждёт, а переключает сразу.
да. не ждет, имеющиеся в распоряжении валы (в буфферах) синкаются, новые уже не принимаются, соединение с мастером закрывается (несмотря на то что тому еще есть что отправить).

Тут у нас неоднозначное понимание чего именно не ждет.
ждет ли promote завершения накатывания того лога, который уже скачался, но еще не применился при вызове promote ?
Завершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ?


автора здесь нет противоречий. исходник walreceiver'а - ./src/backend/replication/walreceiver.c, немного коментариев для начала
здесь только логика выкачивания. не понятно как она связана с еще одним процессом применения этого лога.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764897
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindЗавершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ?Нет, pg_ctl шлёт асинхронный сигнал и сразу выходит, не ждёт ответа.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764903
daevy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwinddaevyпропущено...

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

Тут у нас неоднозначное понимание чего именно не ждет.
ждет ли promote завершения накатывания того лога, который уже скачался, но еще не применился при вызове promote ?
Завершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ?

то что скачалось - синкается в pg_xlog
то что записалось в pg_xlog - воспроизводится (неважно при промоте или рестарте)


netwindздесь только логика выкачивания.

а вот и нет, если это только выкачивание, то кто будет заниматься записью в pg_xlog? walreceiver не только выкачивает, но и записывает в pg_xlog, вызывает синк. и в нужный момент дергает recovery process

netwindне понятно как она связана с еще одним процессом применения этого лога.
все понятно, записи имеющиеся в распоряжении пишутся и синкаются, обновляется метка для рекавери процесса, затем дергается сам рекавери процесс, который читает эту метку, открывает сегменты с датфайлами и приводит их в соответствие. Если в этот момент прилетает promote/рестарт , пг вынужден дождаться завершения этой операции.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764960
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЁшnetwindЗавершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ?Нет, pg_ctl шлёт асинхронный сигнал и сразу выходит, не ждёт ответа.
но ведь если вышеуказанный скрипт-агент сразу же возвращает управление запустившей скрипт инфраструктуре, для "карпаративных" сценариев это полностью неприемлемо.
Им, значит, нужно рестарт делать ?

короче, книжкой вон лучше поделитесь.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38764971
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
daevynetwindздесь только логика выкачивания.

а вот и нет, если это только выкачивание, то кто будет заниматься записью в pg_xlog? walreceiver не только выкачивает, но и записывает в pg_xlog, вызывает синк. и в нужный момент дергает recovery process

Я не отделяю процесс выкачивания от записи логов на диск. Не о нем речь, а о процессе recovery.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765062
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindно ведь если вышеуказанный скрипт-агент сразу же возвращает управление запустившей скрипт инфраструктуре, для "карпаративных" сценариев это полностью неприемлемо.Я думаю что ваши "карпаративные" разработчики справятся с написанием хотя бы цикла на bash, типа:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
loop_cnt=0
while true; do
    pg_ctl promote -D $DATADIR

    is_standby=$(psql -X -At -c 'select pg_is_in_recovery()')

    if [ "$is_standby" != 'f' ]; then
        # stiil in recovery, sleep 5 seconds and try again
        sleep 5
    else
        break
    fi

    let loop_cnt++

    if [ "$loop_cnt" -gt 5 ]; then
        echo "5 try, fault, abort" >&2
        exit 1
    fi
done
exit 0
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765132
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЁшЯ думаю что ваши "карпаративные" разработчики справятся с написанием хотя бы цикла на bash, типа:

как видим из кода - не справились. А по умолчанию restart_on_promote=false.
причем, это packemaker - самая комплексная и современная система обеспечения высокой доступности из всех опенсорсных.
Корпоративней некуда ! Что-то тут не так
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765450
Фотография ReNoiZer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind, а чего не так с restart_on_promote в pacemaker? На каждом шагу же предупреждают о поведении, о том что при false данные придётся самим посинкать с главного до одинакового timeline id.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765463
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

Я не совсем понимаю изначальный вопрос.
Если имеет место быть случай, когда на сервере скопились архивные логи требующие наката (база остановлена), то ждать можно долго.
Переключение будет происходить либо при внештатной ситуации, и в таком случае очень возможно что можно не дождаться всех логов, т.к. мастер “ушел”. Либо в нормальной обстановке (скажем, для тестирования). И что тогда мешает подождать нормального открытия базы?

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

Кстати! Нашел вот http://www.postgresql.org/message-id/flat/E1TzyjJ-0007rb-VB@gemulon.postgresql.org#E1TzyjJ-0007rb-VB@gemulon.postgresql.org]такую инициативу по добавлению ключа `-m fast` к `pg_ctl promote`. В поисках продолжения
заглянув в исходники pg_ctl.c и увидел следующее (1167 @ b1a5287):
Код: plaintext
1.
2.
3.
4.
/*
 * For 9.3 onwards, "fast" promotion is performed. Promotion with a full
 * checkpoint is still possible by writing a file called
 * "fallback_promote" instead of "promote"
 */
В связи с чем вопрос — какая версия используется?

Также, standby сервер некорректно считать “прогретым”, т.к. нагрузка при восстановлении отличается от нормальной рабочей, совсем.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765797
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov
Я не совсем понимаю изначальный вопрос.
Если имеет место быть случай, когда на сервере скопились архивные логи требующие наката (база остановлена), то ждать можно долго.

дело в том, что pacemaker - некая универсальная система. Она просто запускает скрипт и полагает что promote выполнился.
Таким образом, ответ на вопрос будет означать начнет ли все работать нормально сразу после окончания выполнения команды переноса ресурса или некоторое время приложение будет вываливать ошибки.

Также, standby сервер некорректно считать “прогретым”, т.к. нагрузка при восстановлении отличается от нормальной рабочей, совсем.
А это уже "второй сложный вопрос". Я осознаю. Но тут хотя бы исходники читать не надо.
Если слейв все же будет использоваться еще и для чтения, он и будет прогрет почти что как надо. А значит перезапуск крайне нежелателен.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765938
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
netwind, а причём тут postgres? Вам нужен форум по pacemaker.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38765960
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость_0, потому что читать надо внимательно.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38766155
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind, ну вот вы сами же пишете: netwindдело в том, что pacemaker - некая универсальная система. Она просто запускает скрипт и полагает что promote выполнился.pacemaker так написали авторы pacemaker'а, а postgres то здесь причём?
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38766159
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшnetwind, ну вот вы сами же пишете: netwindдело в том, что pacemaker - некая универсальная система. Она просто запускает скрипт и полагает что promote выполнился.pacemaker так написали авторы pacemaker'а, а postgres то здесь причём?
Ну она же не в вакууме. Управляет она postgres-ом и ожидает от скриптов определенного типа поведения.
...
Рейтинг: 0 / 0
горячий резерв и pg_ctl promote
    #38766555
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwind,

> Ну она же не в вакууме

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


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