У меня установлено несколько серверов PostgreSQL. Как отключить автоматическую загрузку для более старого сервера?

Я запускаю Ubuntu 12.04 в Oracle VirtualBox. Несколько месяцев назад я установил сервер PostgreSQL версии 9.1 на свою машину. Совсем недавно я узнал, что сервер PostgreSQL 9.3 поддерживает типы данных JSON, поэтому я решил обновить.

Я обновил до 9.3, выполнив следующие инструкции:

https://wiki.postgresql.org/wiki/Apt

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3

Этот установленный сервер версии 9.3 на моей машине рядом с версией 9.1. Запуск pg_lsclusters после новой загрузки дает:

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

Затем я выполнил следующее обслуживание после обновления: я экспортировал несколько таблиц с моего сервера 9.1 с помощью pg_dump и восстановил их на своем сервере 9.3. Затем я открыл свои файлы конфигурации для 9.1 и 9.3 в /etc/postgresql/$VERSION/main/postgresql.conf и поменял номера своих портов, чтобы мой клиент psql подключался к новому серверу по умолчанию .

Мой вопрос в том, что. Оба 9.1 и 9.3 запускаются при загрузке. Я хотел бы предотвратить 9.1 от автоматической загрузки, так как он занимает примерно 5% от моей системной памяти. Как я могу это сделать?

Рассматриваемые ресурсы:

Страница документа PostgreSQL при запуске сервера указывает мне на стандартный каталог init.d. Мой каталог init.d содержит скрипт postgresql. Похоже, этот скрипт может быть настроен для запуска только одной версии, но требуемое изменение для меня не очевидно.

http://www.postgresql.org/docs/9.1/интерактивный /сервер-start.html

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

I думаю, что у меня установлено несколько серверов postgresql, как я могу идентифицировать и удалять лишние?

Я подумал о написании сценария, чтобы убить сервер после завершения загрузки системы, но это кажется неэффективным. Есть ли более чистый способ отключить версию 9.1 при загрузке?

22 голоса | спросил BitPusher16 17 MaramMon, 17 Mar 2014 04:23:07 +04002014-03-17T04:23:07+04:0004 2014, 04:23:07

2 ответа


37

За меньшее количество взлома отредактируйте /etc/postgresql/9.1/main/start.conf и замените auto с помощью manual или disabled.

ответил ch2500 18 MaramTue, 18 Mar 2014 01:28:37 +04002014-03-18T01:28:37+04:0001 2014, 01:28:37
10

Debian создал несколько сценариев (например, утилиты pg_ * cluster), чтобы упростить запуск нескольких версий или установок PostgreSQL на одном сервере, поэтому это не документировано на postgresql.org.

Я не уверен, что собственный пакет .deb PostgreSQL использует тот же механизм запуска, что и Debian, но, глядя на пакет, который у меня есть, если вы создаете /etc/init.d/postgresql-9.1 (даже если это пустой файл), то /etc/init.d/postgresql предполагает, что вы хотите управлять этой версией отдельно и не запускать ее по умолчанию. Вы все еще можете запустить его с помощью

service postgresql start 9.1

, чтобы переопределить поиск в версии.

ответил DerfK 17 MaramMon, 17 Mar 2014 04:53:28 +04002014-03-17T04:53:28+04:0004 2014, 04:53:28

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132