Бывает так, что команда "/etc/init.d/postgresql stop" не дает желаемого эффекта...
Происходит это потому, что чаще всего в таком случае происходит примерно следующее:
su - postgres -c /opt/pgsql-8.2/bin/pg_ctl stop -D '/opt/pgsql-8.2/data' -s -m fast
Что это значит описано в хелпнике к pg_ctl:
Режимы остановки:
smart закончить работу после отключения всех клиентов
fast закончить быстро,но с полноценной остановкой
immediate выйти немедленно без полноценной остановки; приведёт к
восстановлению при перезапуске
То есть по умолчанию база тушится в режиме fast, что при работающих транзакциях, да с блокировками, которые нельзя корректно откатить не дает никакого эффекта.
В таком случае можно поступить так:
/opt/pgsql-8.2/bin/pg_ctl stop -D /opt/pgsql-8.2/data -s -m immediate
Тут эффект 100%, но стрёмно. но если выбора нет, то и так хорошо :)
5 лет назад
Комментариев нет:
Отправить комментарий