@quest2017

Как остановить postgresql сервер?

есть postgresql сервер, есть куча коннектов к нему от приложений с insert в одну таблицу в какой-то момент мы сообщаем приложениям что insert больше делать не нужно, но это сообщение может запоздать и кто-то все же может сделать insert. можно заставить приложения перед insert проходить через некий глобальный mutex но это не вариант. я сейчас делаю lock table после чего никакой insert не пройдет и дальше нужно либо дергать какой-то скрипт с iptables закрывающий порт либо стопать сервер (боюсь что при стопе lock отпустится раньше чем возможный залоченный insert и insert успеет отработать) либо скажем менять на лету порт или какое-то свойство в сервере. как бы это сделали вы?

  • Вопрос задан
  • 1108 просмотров
Решения вопроса 1
freeExec
@freeExec
Участник OpenStreetMap
Зачем лочить таблицу, когда можно просто отнять права на вставку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
romy4
@romy4
Exception handler
не делать напрямую insert, а через хранимку?
делать инсерты во временную таблицу для каждого приложения и мерджить в основную? в свою можно сколько хош вставлять, но из неё мерджер проверяет таймстемп и флаг
lock table подвешивает соединения
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы