Установка PostgreSQL — Windows, Mac OS X, Linux

Для Microsoft Windows, Mac OS X и Linux существует один установщик. Его можно скачать здесь. Кликните по иконке нужной версии установки PostgreSQL, соответствующей операционной системе.

В некоторых из инструкций предполагается, что вы устанавливаете PostgreSQL 9.1. Если устанавливаете более новую версию, замените в данных инструкциях 9.1 на номер инсталлируемой вами версии СУБД.

Запустите установку

Когда программа попросит выбрать один из вариантов, сделайте следующее:

  • Когда вас попросят выбрать локаль, выберите UTF-8. Если варианта UTF-8 в списке нет, выберите вариант UTF-8 в списке локалей для языка. Например, en_US.UTF-8 для английского языка США;
  • Если программа попросит установить StackBuilder – он инсталлирует некоторые дополнительные инструменты Web, репликации и ODBC, которые не требуются для CollectionSpace. Но может потребоваться инсталляция некоторых модулей PostgreSQL, таких как PostGIS.

Обратите внимание, что некоторые из перечисленных выше настроек могут не выводиться в зависимости от версии PostgreSQL и операционной системы.

Параметр PostgreSQL

Чтобы установленный PostgreSQL работал с CollectionSpace, надо изменить посетителей и настроить некоторые настройки.

  • Найдите конфигурационный файл pg_hba.conf. Он расположен в подкаталоге data каталога, в котором установлена PostgreSQL;
  • Откройте этот файл в текстовом редакторе и следуйте приведенным ниже инструкциям;

В Mac OS X по умолчанию это папка /Library/PostgreSQL/9.1. В Mac OS X необходимо иметь права супер посетителя, чтобы редактировать любой из следующих файлов конфигурации.

  • Убедитесь, что для «local section» указано последнее слово md5, а не ident:
# "local" is for Unix domain socket connections onlylocal all all md5
  • Измените раздел «IPv4 local connections» следующим образом:
# IPv4 local connections:host all csadmin samehost md5

Это ограничивает набор посетителей PostgreSQL, которым предоставляется локальный доступ к трем базам данных, используемым CollectionSpace: jbossdb, nuxeo и cspace. К примеру, только посетитель с именем cspace или супер посетитель PostgreSQL с именем postgres может приобрести доступ к базе данных cspace с локальной машины.

При установке PostgreSQL 9.x на Windows 7 может не принять термин samehost в столбце CIDR-ADDRESS. Если это произойдет, используйте адресную форму 127.0.0.1/32:

# IPv4 local connections:host all csadmin 127.0.0.1/32 md5
  • Убедитесь, что записи в разделе «IPv6 local connections» отключены. В виде первого символа в строках указывается символ хэш(#), если только в системе не активен IPv6:
# IPv6 local connections:#host all all::1/128 md5

Современные системы, работающие под управлением Windows 7 и Windows Vista, могут поставляться с включенным по умолчанию IPv6. Если в системе включен IPv6, можно поэкспериментировать со следующей конфигурацией — указать ::1/128 для адреса localhost:

# IPv6 local connections:host all csadmin::1/128 md5
  • Если необходимо разрешить создание отчетов при подключении к БД с удаленных хостов, тогда следует добавить запись, подобную приведенной ниже, но указав адрес подсети. Приведенная ниже конфигурация сможет создавать отчеты удаленно с хостов в определенной подсети UC Berkeley. Для получения дополнительной информации о том, как указать адрес подсети, ознакомьтесь с документацией по pg_hba.conf для используемого релиза PostgreSQL.
host all cspace_reader 169.229.0.0/16 md5

Чтобы автор отчетов мог работать, придется внести ещё одно изменение в значение listen_addresses в файле postgresql.conf. Подробнее о поиске этого файла рассказано ниже.

Если вы можете без труда контролировать доступ к PostgreSQL через брандмауэр, то проще ввести значение listen_addresses «*». Для большей безопасности можно ввести список разделенных запятыми IP-адресов , с которых будут связываться авторы отчетов.

Далее после PostgreSQL установки и параметра Windows необходимо внести изменения в конфигурационный файл PostgreSQL :

  • Найдите файл postgresql.conf , находящийся в папке data каталога, в котором установлен PostgreSQL ;
  • Откройте этот файл в текстовом редакторе и внесите следующие изменения:
max_prepared_transactions = 64

Значение переменной max_prepared_transactions , равное 64 , может оказаться большим для системы. Если это так, установите меньшее значение.

Если это значение действительно слишком велико для системы, вы получите сообщение об ошибке при перезапуске PostgreSQL : Restarting PostgreSQL … database server: main The PostgreSQL server failed to start. Please check the log output … FATAL: could not create shared memory segment: …

Перезапустите службу PostgreSQL

Если при запуске сервера после установки PostgreSQL отображаются сообщения об ошибках, обратитесь к разделу «Сбои при запуске сервера» в документации PostgreSQL по запуску сервера .

Linux:

Если вы являетесь посетителем root или sudo , можно выполнить следующую команду:

service postgresql restart

Mac:

Убедитесь, что вы являетесь посетителем postgres :

sudo su - postgrespg_ctl restart -D /Library/PostgreSQL/9.1/data

Флаг -D указывает местоположение каталога данных PostgreSQL, который также может быть установлен как переменная среды PGDATA. По умолчанию его можно без труда найти по адресу /Library/PostgreSQL/9.1/data.

Если при попытке запустить pg_ctl вы приобретаете сообщение об ошибке «not found», попробуйте указать полный путь к данному файлу в подкаталоге bin каталога, в котором установлен PostgreSQL. К примеру: /Library/PostgreSQL/9.1/bin/pg_ctl restart -D /Library/PostgreSQL/9.1/data

Чтобы добавить PGDATA в виде глобальной переменной среды в / etc / profile , выполните следующие шаги:

sudo vi /etc/profile

Далее добавьте следующую строку:

export PGDATA=»/Library/PostgreSQL/9.1/data»

После этого можно без проблем будет выполнить предыдущую команду для перезапуска сервера PostgreSQL без флага -D .

Windows:

При установке PostgreSQL Windows у вас должны быть права администратора. Кликните правой кнопкой мыши по ярлыку «Мой компьютер» и выберите пункт «Управление». В пользовательском интерфейсе «Управление» выберите «Службы и приложения» — «Службы». Найдите службу PostgreSQL («postgresql-9.0 — PostgreSQL Server 9.0»), выберите ее и нажмите на кнопку «Перезапустить службу».

Параметр типов данных

Откройте консоль PostgreSQL для базы данных template1 :

Если при попытке запустить psql на экране появится сообщение not found», попробуйте указать полный путь к данному файлу в подкаталоге bin; например на Mac OS X: /Library/PostgreSQL/9.1/bin/psql.

Linux:

Выполните в консоли две следующие команды:

su - postgrespsql -d template1 #open the database template1

Mac:

Под посетителем postgres выполните следующие две команды:

Sudo su - postgresPsql -d template1

При первом запуске команды psql на OS X 10.8.X вы можете легко увидеть сообщение об ошибке:

dyld: Library not loaded: @loader_path/../lib/libssl.dylib Referenced from: /usr/lib/libpq.5.dylib Reason: Incompatible library version: libpq.5.dylib requires version 1.0.0 or later, but libssl.0.9.8.dylib provides version 0.9.8

Это связано с тем, как Homebrew в Mac OS X и Mountain Lion конфликтуют с определенными системными библиотеками. Решение данной проблемы заключается в том, чтобы скопировать и связать версии библиотеки. PostgreSQL упакован в /usr/lib , где библиотеки хранятся в Mountain Lion .

sudo cp /Library/PostgreSQL/9.1/lib/libssl.1.0.0.dylib /usr/libsudo cp /Library/PostgreSQL/9.1/lib/libcrypto.1.0.0.dylib /usr/libsudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylibsudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib

Ещё одним решением может стать пересмотр Homebrew и проверка совместимости с Mountain Lion .

При установке PostgreSQL на Mac OS X в один клик создается ярлык для оболочки PostgreSQL в каталоге Applications / PostgreSQL 9.0 / . Нажмите SQL Shell (psql).app , чтобы открыть новое окно терминала с запущенным psql .

Из этого окна терминала можно легко приобрести доступ к базе данных template1 , введя:

psql c template1

Windows:

psql запускается из командной строки (cmd) Windows . Убедитесь, что путь к папке postgres bin хранится в переменной PATH , или просто вызовите ее с полным путем к месту расположения исполняемого файла psql :

psql -d template1 -U postgres

Выполните команды консоли:

CREATE FUNCTION pg_catalog.text(integer) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int4out($1));';CREATE CAST (integer AS text) WITH FUNCTION pg_catalog.text(integer) AS IMPLICIT;COMMENT ON FUNCTION pg_catalog.text(integer) IS 'convert integer to text';CREATE FUNCTION pg_catalog.text(bigint) RETURNS text STRICT IMMUTABLE LANGUAGE SQL AS 'SELECT textin(int8out($1));';CREATE CAST (bigint AS text) WITH FUNCTION pg_catalog.text(bigint) AS IMPLICIT;COMMENT ON FUNCTION pg_catalog.text(bigint) IS 'convert bigint to text';

Создайте посетителя csadmin

Для PostgreSQL установки и параметра в командной строке psql (заканчивающейся на # ) переключитесь с базы данных template1 на postgres , введя следующее:

c postgres

Введите следующую команду, чтобы создать посетителя csadmin с соответствующими привилегиями. Не забудьте заменить пароль replacemewithyourpassword в приведенном ниже примере на пароль по выбору.

CREATE ROLE csadmin LOGIN PASSWORD ‘replacemewithyourpassword’ SUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

В результате вы должны увидеть сообщение, подобное данному: CREATE ROLE .

Закройте программу psql , введя q (или нажав Ctrl + d ).

Сейчас перезапустите сервер PostgreSQL ещё раз (как описано выше).

Дополнительная параметр

Дополнительная параметр базы данных будет необязательной! CollectionSpace будет выполняться, даже если ни одно из описанных ниже действий не будет выполнено.

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

PostgreSQL установка и параметр Windows выполняется через postgresql.conf . Откройте этот файл в текстовом редакторе и отредактируйте следующие значения:

shared_buffers = 512MB

Сейчас через командную строку задайте значение kernel.shmmax . Оно должно как минимум равняться shared_buffer + 128MB :

sysctl kernel.shmmax=650000000

Далее перезапустите сервер PostgreSQL . Если на экране появится сообщение об ошибке, то необходимо будет увеличить значение kernel.shmax .

Далее надо определить окончательное значение shmmax :

Откройте файл /etc/sysctl.conf .

vim /etc/sysctl.conf

И добавьте следующую строку — заменив значение для shmmax :

kernel.shmmax = 650000000

Наконец, установите необходимое значение cache_size :

Для этого запустите (и выведите статистику в мегабайтах):

free -m

В результате на экране вы увидите что-то наподобие этого:

free -m total used free shared buffers cachedMem:          4096 3302 793 0 253 1226-/+ buffers/cache:       1822 2273Swap:          511 216 295

Эффективное значение для cache_size определяется путем сложения значений buffers и cached . В приведенном выше примере:

253 + 1226 = 1479

К данному числу добавляется значение shared_buffers , так что в общей сложности мы получаем:

1479 + 512 = 1991 ~ 2 ГБ

Снова отредактируйте файл postgres.conf и установите эффективный размер кэша — значение, выведенное нами в предыдущих шагах:

effective_cache_size = 2GB

Также задайте следующие значения:

work_mem = 16MB                         # min 64kBmaintenance_work_mem = 32MB             # min 1MBrandom_page_cost = 2.0

Перезагрузите установленный PostgreSQL , чтобы изменения вступили в силу.

Мы закончили настройку PostgreSQL . Обратите внимание, что приведенные в этом разделе значения являются примерными. Их надо устанавливать в соответствии с параметрами системы. Более подробную информацию о параметрах можно найти здесь .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *