Я использую 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 при загрузке?
источник
Debian создал несколько скриптов (например, утилиты кластера pg_ *), чтобы упростить запуск нескольких версий или установок PostgreSQL на одном сервере, поэтому это не описано на postgresql.org.
Я не уверен, использует ли собственный
.deb
пакет PostgreSQL тот же механизм запуска, что и Debian, но, глядя на пакет, который у меня есть, если вы создадите/etc/init.d/postgresql-9.1
(даже если это пустой файл), то/etc/init.d/postgresql
предположите, что вы хотите управлять этой версией отдельно и не будете запустить его по умолчанию. Вы все еще можете начать это спереопределить поиск версии.
источник
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5433 down 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