|
|
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
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. не понятно почему они решили, что так будет проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 12:35:44 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
Misha TyurinM это всё очень для хитрый кейзов. типа надо срочно промоутить ну как бэ, некоторые используют pg не потому что на оракл денег не хватило, а потому что нужна субд. если требования такие, что нужно срочно обеспечить работу ценой потери некоторой части изменений - это нужно делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 12:37:53 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
Гость_0netwind, считайте что promote НЕ ждёт, а переключает сразу. Maxim Bogukбудет проигрывать все накопленные/принятые wal файлы что в случае отставания реплики может занять заметное время И кому теперь верить ? Может знатоки исходного кода просто дадут ссылку на конкретное место чтобы я мог убедиться ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 12:45:22 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwind, убедиться в чём? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 13:08:14 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwind <> И кому теперь верить ? Может знатоки исходного кода просто дадут ссылку на конкретное место чтобы я мог убедиться ? не знаток, но "немагумалчать" малчег : "netwind" ты скакова раёна 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 13:14:05 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
Ёш, нужно знать по какому из двух противоположных сценариев работает pg_ctl promote и какой именно кусок исходного кода за это отвечает. документации тонет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 13:24:54 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
qwwqты скакова раёна 7 не претендую на ваш. у вас тут вон своих экспертов по очередям ввода-вывода хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 13:26:26 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
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 работает в бесконечном цикле: забирает 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. Патч про который пишет Максим как раз и добавляет возможность отбросить эту стадию (тем самым есть риск стрельнуть в ногу). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 13:34:03 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
daevyГость_0netwind, считайте что promote НЕ ждёт, а переключает сразу. да. не ждет, имеющиеся в распоряжении валы (в буфферах) синкаются, новые уже не принимаются, соединение с мастером закрывается (несмотря на то что тому еще есть что отправить). Тут у нас неоднозначное понимание чего именно не ждет. ждет ли promote завершения накатывания того лога, который уже скачался, но еще не применился при вызове promote ? Завершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ? автора здесь нет противоречий. исходник walreceiver'а - ./src/backend/replication/walreceiver.c, немного коментариев для начала здесь только логика выкачивания. не понятно как она связана с еще одним процессом применения этого лога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 13:57:52 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwindЗавершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ?Нет, pg_ctl шлёт асинхронный сигнал и сразу выходит, не ждёт ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 14:35:51 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwinddaevyпропущено... да. не ждет, имеющиеся в распоряжении валы (в буфферах) синкаются, новые уже не принимаются, соединение с мастером закрывается (несмотря на то что тому еще есть что отправить). Тут у нас неоднозначное понимание чего именно не ждет. ждет ли promote завершения накатывания того лога, который уже скачался, но еще не применился при вызове promote ? Завершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ? то что скачалось - синкается в pg_xlog то что записалось в pg_xlog - воспроизводится (неважно при промоте или рестарте) netwindздесь только логика выкачивания. а вот и нет, если это только выкачивание, то кто будет заниматься записью в pg_xlog? walreceiver не только выкачивает, но и записывает в pg_xlog, вызывает синк. и в нужный момент дергает recovery process netwindне понятно как она связана с еще одним процессом применения этого лога. все понятно, записи имеющиеся в распоряжении пишутся и синкаются, обновляется метка для рекавери процесса, затем дергается сам рекавери процесс, который читает эту метку, открывает сегменты с датфайлами и приводит их в соответствие. Если в этот момент прилетает promote/рестарт , пг вынужден дождаться завершения этой операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 14:37:35 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
ЁшnetwindЗавершение работы программы pt_ctl promote будет означать, что все вышеописанные данные из лога применились ?Нет, pg_ctl шлёт асинхронный сигнал и сразу выходит, не ждёт ответа. но ведь если вышеуказанный скрипт-агент сразу же возвращает управление запустившей скрипт инфраструктуре, для "карпаративных" сценариев это полностью неприемлемо. Им, значит, нужно рестарт делать ? короче, книжкой вон лучше поделитесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 15:06:43 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
daevynetwindздесь только логика выкачивания. а вот и нет, если это только выкачивание, то кто будет заниматься записью в pg_xlog? walreceiver не только выкачивает, но и записывает в pg_xlog, вызывает синк. и в нужный момент дергает recovery process Я не отделяю процесс выкачивания от записи логов на диск. Не о нем речь, а о процессе recovery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 15:08:55 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwindно ведь если вышеуказанный скрипт-агент сразу же возвращает управление запустившей скрипт инфраструктуре, для "карпаративных" сценариев это полностью неприемлемо.Я думаю что ваши "карпаративные" разработчики справятся с написанием хотя бы цикла на bash, типа: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 16:11:13 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
ЁшЯ думаю что ваши "карпаративные" разработчики справятся с написанием хотя бы цикла на bash, типа: как видим из кода - не справились. А по умолчанию restart_on_promote=false. причем, это packemaker - самая комплексная и современная система обеспечения высокой доступности из всех опенсорсных. Корпоративней некуда ! Что-то тут не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 17:05:30 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwind, а чего не так с restart_on_promote в pacemaker? На каждом шагу же предупреждают о поведении, о том что при false данные придётся самим посинкать с главного до одинакового timeline id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 22:44:08 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
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. Также, standby сервер некорректно считать “прогретым”, т.к. нагрузка при восстановлении отличается от нормальной рабочей, совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2014, 23:04:23 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
vyegorov Я не совсем понимаю изначальный вопрос. Если имеет место быть случай, когда на сервере скопились архивные логи требующие наката (база остановлена), то ждать можно долго. дело в том, что pacemaker - некая универсальная система. Она просто запускает скрипт и полагает что promote выполнился. Таким образом, ответ на вопрос будет означать начнет ли все работать нормально сразу после окончания выполнения команды переноса ресурса или некоторое время приложение будет вываливать ошибки. Также, standby сервер некорректно считать “прогретым”, т.к. нагрузка при восстановлении отличается от нормальной рабочей, совсем. А это уже "второй сложный вопрос". Я осознаю. Но тут хотя бы исходники читать не надо. Если слейв все же будет использоваться еще и для чтения, он и будет прогрет почти что как надо. А значит перезапуск крайне нежелателен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 11:37:55 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwind, а причём тут postgres? Вам нужен форум по pacemaker. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 12:32:23 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
Гость_0, потому что читать надо внимательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 12:45:53 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
netwind, ну вот вы сами же пишете: netwindдело в том, что pacemaker - некая универсальная система. Она просто запускает скрипт и полагает что promote выполнился.pacemaker так написали авторы pacemaker'а, а postgres то здесь причём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 14:39:56 |
|
||
|
горячий резерв и pg_ctl promote
|
|||
|---|---|---|---|
|
#18+
Ёшnetwind, ну вот вы сами же пишете: netwindдело в том, что pacemaker - некая универсальная система. Она просто запускает скрипт и полагает что promote выполнился.pacemaker так написали авторы pacemaker'а, а postgres то здесь причём? Ну она же не в вакууме. Управляет она postgres-ом и ожидает от скриптов определенного типа поведения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 14:42:55 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=1998459]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
213ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 512ms |

| 0 / 0 |
