Я использую 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/interactive/server-start.html
Сообщение ниже было очень информативным, но оно показывает, как удалить кластер, а не как отключить его при запуске. Я хотел бы оставить свой старый кластер установленным, так как я могу получить от него дополнительную информацию.
Я подумал о написании сценария, убивающего сервер после завершения загрузки системы, но это кажется неэффективным. Есть ли более чистый способ отключить версию 9.1 при загрузке?
Для меньшего взлома отредактируйте /etc/postgresql/9.1/main/start.conf
и заменить auto
с участием manual
или disabled
.
Debian создал несколько сценариев (например, кластерные утилиты pg_ *), чтобы упростить запуск нескольких версий или установок PostgreSQL на одном сервере, поэтому на postgresql.org это не описано.
Я не уверен, что собственный PostgreSQL .deb
пакет использует тот же механизм запуска, что и Debian, но если посмотреть на пакет, который у меня есть, если вы создадите /etc/init.d/postgresql-9.1
(даже если это пустой файл), тогда /etc/init.d/postgresql
будет предполагать, что вы хотите управлять этой версией отдельно, и не запускаете ее по умолчанию. Вы все еще можете начать с
service postgresql start 9.1
для отмены поиска версии.