Я использую Ubuntu 10.10, и у меня есть отдельный раздел для корневого каталога. Раздел не был настроен для больших баз данных, поэтому я хотел бы разместить свою базу данных PostgreSQL объемом 2+ ГБ в разделе / home.
Первый совет, на который я натолкнулся, был initlocation
команда, но это очевидно для более старых версий PostgreSQL.
Затем я столкнулся с initdb
команда, но, похоже, она недоступна в Ubuntu 10.10 ... по какой-то причине.
Как мне это сделать на самом деле?
Эта команда initdb
должен быть расположен на пути /usr/lib/postgresql/{version}/bin/initdb
(вероятно, не входит в ваш PATH
), однако вы можете использовать pg_createcluster
обертка, особенно с -D
вариант:
Этот параметр указывает каталог, в котором должен храниться кластер базы данных. Это единственная информация, которую требует initdb, но вы можете избежать его написания, установив PGDATA переменная окружения, что может быть удобно, поскольку сервер базы данных (Postgres) может найти каталог базы данных позже с помощью той же переменной.
Я использую Ubuntu 10.04 и PostgreSQL 8.4. Вот что я сделал, чтобы переместить мою папку pgdata из корневого раздела, в основном на основе инструкции от linuxquestions.org.
cd /mnt/workspace
чтобы попасть в папку, я хочу сохранить новую папку pgdata.ls -l ..
чтобы убедиться, что workspace
папка принадлежит корню.grep data_directory /etc/postgresql/8.4/main/postgresql.conf
чтобы увидеть, где находится текущий каталог данных. В моем случае это было /var/lib/postgresql/8.4/main
.sudo /etc/init.d/postgresql-8.4 stop
чтобы остановить службу.sudo mv /var/lib/postgresql/8.4/main /mnt/workspace/pgdata
, чтобы переместить папку с данными в новое место.ls -l
чтобы убедиться, что pgdata
папка по-прежнему принадлежит пользователю postgres./etc/postgresql/8.4/main/postgresql.conf
файл, чтобы указать data_directory
запись на новом месте.sudo /etc/init.d/postgresql-8.4 start
для запуска службы.df
чтобы узнать, сколько свободного места у меня теперь есть в корневом разделе. Woot!Файлы, описывающие кластер по умолчанию, называемый main, находятся в каталоге /etc/postgresql/8.4/main для 8.4 на моем компьютере с ubuntu 10.10. Просто остановите postgresql, скопируйте каталог данных в новый каталог, установите perms (700 в корневом каталоге и принадлежат пользователю postgres), отредактируйте строку в postgresql.conf, которая указывает на ваш каталог данных, и перезапустите postgres.