postgresql не запускается после редактирования postgresql.conf - PullRequest
0 голосов
/ 27 ноября 2009

Я попытался увеличить значение параметров "shared_buffers", чтобы оно было больше, чем значение по умолчанию 24 МБ, и сервер не запускается с другими значениями (я пробовал некоторые), кроме значений по умолчанию. Просто пустой лог-файл создан. Это чистая установка postgresql на сервере Linux, поэтому все остальные настройки по умолчанию. Кто-нибудь знает, в чем может быть причина.

Ответы [ 3 ]

1 голос
/ 27 ноября 2009

Возможно, вы достигли предела kernel.shmmax. Установите выше с

sysctl -w kernel.shmmax=xxxx

Чтобы это сохранялось между ботинками, добавьте запись kernel.shmmax в /etc/sysctl.conf.

1 голос
/ 27 ноября 2009

Жалуется ли на что-то? Проверьте журналы.

Если единственное, что вы изменили, это shared_buffers, то вы, возможно, достигли предела ОС, и в этом случае он сообщит вам в журнале.

Если это так, то посмотрите http://www.postgresql.org/docs/8.3/interactive/kernel-resources.html#SYSVIPC, как установить правильное значение.

Обновление:

Многие другие параметры зависят от shared_buffers, но не наоборот, так что вам больше ничего не придется менять. Однако только то, что на сервере имеется 32 ГБ ОЗУ, не означает, что ОС позволяет вам его использовать. Вы должны убедиться, что вывод sysctl -a | grep kernel.shmmax выше, чем значение, которое вы установили для shared_buffers.

Он перестает работать независимо от того, как мало вы меняете значение, или он работает, если вы просто добавляете, скажем, 1 МБ?

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

Другое дело. Это может быть довольно требовательным в отношении семантики. Поэтому убедитесь, что вы написали МБ , а не МБ или МБ.

Странно, однако, что вы получаете только пустой файл журнала, попробуйте запустить процесс вручную, выполнив то, что предлагает Джон, или более простой pg_ctl start, когда пользователь отправляет сообщение (если не используется тихий режим). включен, он все равно будет выводить данные на ваш терминал)

0 голосов
/ 27 ноября 2009

Какая версия PostgreSQL это? Я столкнулся с проблемами при использовании синтаксиса «Mb» для более старой версии PostgreSQL (он не работал на 8.1, но работает на 8.3).

Я обнаружил, что если я вручную запусту процесс postmaster, не используя скрипт init.d, я увижу сообщения об ошибках, напечатанные на консоли. Обычно вам нужно войти в учетную запись postgres на вашем компьютере, запустить двоичный файл postmaster, который в Ubuntu равен /usr/lib/postgresql/8.4/bin/postmaster (изменить в соответствии с вашим PostgreSQL и дистрибутивом). Мои деньги в том, что вы увидите ошибку, связанную с тем, что описывает Джимми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...