- Файл конфигурации postgresql windows
- Файл postgresql.conf и представление pg_file_settings
- Представление pg_settings
- Порядок применения строк postgresql.conf
- Команда ALTER SYSTEM
- Установка параметров во время исполнения
- Чтение значений параметров во время выполнения
- 18.2. Расположения файлов
- Как установить PostgreSQL — решения для Windows, Mac OS X, Linux
- Запустите установку
- Настройка PostgreSQL
- Перезапустите службу PostgreSQL
- Настройка типов данных
- Создайте пользователя csadmin
- Дополнительная настройка
Файл конфигурации postgresql windows
В дополнение к вышеупомянутому postgresql.conf , Postgres Pro обрабатывает два редактируемых вручную файла конфигурации, в которых настраивается аутентификация клиентов (их использование рассматривается в Главе 19). По умолчанию все три файла конфигурации размещаются в каталоге данных кластера БД. Параметры, описанные в этом разделе, позволяют разместить их и в любом другом месте. (Это позволяет упростить администрирование, в частности, выполнять резервное копирование этих файлов обычно проще, когда они хранятся отдельно.)
Задаёт каталог, в котором хранятся данные. Этот параметр можно задать только при запуске сервера. config_file ( string )
Задаёт основной файл конфигурации сервера (его стандартное имя — postgresql.conf ). Этот параметр можно задать только в командной строке postgres . hba_file ( string )
Задаёт файл конфигурации для аутентификации по сетевым узлам (его стандартное имя — pg_hba.conf ). Этот параметр можно задать только при старте сервера. ident_file ( string )
Задаёт файл конфигурации для сопоставлений имён пользователей (его стандартное имя — pg_ident.conf ). Этот параметр можно задать только при запуске сервера. См. также Раздел 19.2. external_pid_file ( string )
Задаёт имя дополнительного файла с идентификатором процесса (PID), который будет создавать сервер для использования программами администрирования. Этот параметр можно задать только при запуске сервера.
При стандартной установке ни один из этих параметров не задаётся явно. Вместо них задаётся только каталог данных, аргументом командной строки -D или переменной окружения PGDATA , и все необходимые файлы конфигурации загружаются из этого каталога.
Если вы хотите разместить файлы конфигурации не в каталоге данных, то аргумент командной строки postgres -D или переменная окружения PGDATA должны указывать на каталог, содержащий файлы конфигурации, а в postgresql.conf (или в командной строке) должен задаваться параметр data_directory , указывающий, где фактически находятся данные. Учтите, что data_directory переопределяет путь, задаваемый в -D или PGDATA как путь каталога данных, но не расположение файлов конфигурации.
При желании вы можете задать имена и пути файлов конфигурации по отдельности, воспользовавшись параметрами config_file , hba_file и/или ident_file . Параметр config_file можно задать только в командной строке postgres , тогда как остальные можно задать и в основном файле конфигурации. Если явно заданы все три эти параметра плюс data_directory , то задавать -D или PGDATA не нужно.
Во всех этих параметрах относительный путь должен задаваться от каталога, в котором запускается postgres .
Файл postgresql.conf и представление pg_file_settings
Посмотрим небольшой фрагмент конфигурационного файла.
Большинство строк в файле закомментированы, а для соответствующих параметров используются значения по умолчанию.
Чтобы увидеть все незакоментированные строки конфигурационного файла, можно обратиться к представлению pg_file_settings:
Столбец applied имеет обманчивое название. Если внести изменения в конфигурационный файл, то значение столбца скажет о том, можно ли применить новое значение без перезапуска сервера. Представление pg_file_settings показывает лишь содержимое файлов конфигурации, реальные значения параметров могут отличаться.
Представление pg_settings
Получить действующие значения всех параметров можно в представлении pg_settings. Вот что в нем содержится, например, для work_mem:
Рассмотрим ключевые столбцы представления pg_settings:
- name, setting, unit — название и значение параметра,
- boot_val — значение по умолчанию,
- reset_val — если параметр был изменен во время сеанса, то командой RESET можно восстановить это значение,
- source — источник текущего значения параметра,
- pending_restart — значение изменено в файле конфигурации, но для применения требуется перезапуск сервера.
Столбец context определяет действия, необходимые для применения параметра. Среди возможных значений:
- internal — изменить нельзя, задано при установке,
- postmaster — требуется перезапуск сервера,
- sighup — требуется перечитать файлы конфигурации,
- superuser — суперпользователь может изменить для своего сеанса,
- user — любой пользователь может изменить для своего сеанса.
Порядок применения строк postgresql.conf
Если один и тот же параметр встречается в файле несколько раз, то устанавливается значение из последней считанной строки.
Запишем в конец postgresql.conf две строки с параметром work_mem:
По applied = f для строки с 12MB уже понятно, что это значение не будет применено.
Для параметра work_mem значение context = user. Значит, его можно менять прямо во время сеанса, а чтобы изменить значение во всех сеансах, достаточно перечитать файлы конфигурации:
Убедимся, что work_mem получил значение от последней строки:
Команда ALTER SYSTEM
Для примера установим параметр work_mem:
ALTER SYSTEM выполняет проверку на допустимые значения.
Вот теперь все правильно.
В результате выполнения команды значение 16MB записано в файл postgresql.auto.conf:
. но не установлено:
Чтобы применить изменения для work_mem, перечитаем файлы конфигурации:
Для удаления строк из postgresql.auto.conf используется команда ALTER SYSTEM RESET.
Еще раз перечитаем конфигурацию. Теперь восстановится значение из postgresql.conf:
Установка параметров во время исполнения
Для изменения параметров во время сеанса можно использовать команду SET:
Или функцию set_config:
Третий параметр функции говорит о том, нужно ли устанавливать значение только для текущей транзакции (true) или до конца работы сеанса (false). Это важно при работе приложения через пул соединений, когда в одном сеансе могут выполняться транзакции разных пользователей.
Чтение значений параметров во время выполнения
Получить значение параметра можно разными способами:
18.2. Расположения файлов
В дополнение к вышеупомянутому postgresql.conf, PostgreSQL обрабатывает два редактируемых вручную файла конфигурации, в которых настраивается аутентификация клиентов (их использование рассматривается в Главе 19). По умолчанию все три файла конфигурации размещаются в каталоге данных кластера БД. Параметры, описанные в этом разделе, позволяют разместить их и в любом другом месте. (Это позволяет упростить администрирование, в частности, выполнять резервное копирование этих файлов обычно проще, когда они хранятся отдельно.)
Задаёт каталог, в котором хранятся данные. Этот параметр можно задать только при запуске сервера. config_file ( string)
Задаёт основной файл конфигурации сервера (его стандартное имя — postgresql.conf). Этот параметр можно задать только в командной строке postgres. hba_file ( string)
Задаёт файл конфигурации для аутентификации по сетевым узлам (его стандартное имя — pg_hba.conf). Этот параметр можно задать только при старте сервера. ident_file ( string)
Задаёт файл конфигурации для сопоставлений имён пользователей (см. Раздел 19.2) (его стандартное имя — pg_ident.conf). Этот параметр можно задать только при запуске сервера. external_pid_file ( string)
Задаёт имя дополнительного файла с идентификатором процесса (PID), который будет создавать сервер для использования программами администрирования. Этот параметр можно задать только при запуске сервера.
При стандартной установке ни один из этих параметров не задаётся явно. Вместо них задаётся только каталог данных, аргументом командной строки -D или переменной окружения PGDATA, и все необходимые файлы конфигурации загружаются из этого каталога.
Если вы хотите разместить файлы конфигурации не в каталоге данных, то аргумент командной строки postgres -D или переменная окружения PGDATA должны указывать на каталог, содержащий файлы конфигурации, а в postgresql.conf (или в командной строке) должен задаваться параметр data_directory, указывающий, где фактически находятся данные. Учтите, что data_directory переопределяет путь, задаваемый в -D или PGDATA как путь каталога данных, но не расположение файлов конфигурации.
При желании вы можете задать имена и расположение файлов конфигурации по отдельности, воспользовавшись параметрами config_file, hba_file и/или ident_file. Параметр config_file можно задать только в командной строке postgres, тогда как остальные можно задать и в основном файле конфигурации. Если явно заданы все три эти параметра плюс data_directory, то задавать -D или PGDATA не нужно.
Во всех этих параметрах относительный путь должен задаваться от каталога, в котором запускается postgres.
Как установить PostgreSQL — решения для Windows, Mac OS X, Linux
Как установить PostgreSQL? Для 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 :
- Измените раздел « IPv4 local connections » следующим образом:
Это ограничивает набор пользователей PostgreSQL , которым предоставляется локальный доступ к трем базам данных, используемым CollectionSpace: jbossdb , nuxeo и cspace . Например, только пользователь с именем cspace или супер пользователь PostgreSQL с именем postgres может получить доступ к базе данных cspace с локальной машины.
При установке PostgreSQL 9.x на Windows 7 может не принять термин samehost в столбце CIDR-ADDRESS . Если это произойдет, используйте адресную форму 127.0.0.1/32 :
- Убедитесь, что записи в разделе « IPv6 local connections » отключены. В качестве первого символа в строках указывается символ хэш ( # ), если только в вашей системе не активен IPv6 :
Современные системы, работающие под управлением Windows 7 и Windows Vista , могут поставляться с включенным по умолчанию IPv6 . Если в вашей системе включен IPv6 , можно поэкспериментировать со следующей конфигурацией — указать ::1/128 для адреса localhost :
- Если нужно разрешить создание отчетов при подключении к БД с удаленных хостов, тогда следует добавить запись, подобную приведенной ниже, но указав свой адрес подсети. Приведенная ниже конфигурация позволит создавать отчеты удаленно с хостов в определенной подсети UC Berkeley . Для получения дополнительной информации о том, как указать адрес подсети, ознакомьтесь с документацией по pg_hba.conf для используемого релиза PostgreSQL .
Чтобы автор отчетов мог работать, придется внести еще одно изменение в значение listen_addresses в файле postgresql.conf . Подробнее о поиске этого файла рассказано ниже.
Если вы можете контролировать доступ к PostgreSQL через брандмауэр, то проще ввести значение listen_addresses «*» . Для большей безопасности можно ввести список разделенных запятыми IP-адресов , с которых будут связываться авторы отчетов.
Далее после PostgreSQL установки и настройки Windows нужно внести изменения в конфигурационный файл PostgreSQL :
- Найдите файл postgresql.conf , находящийся в папке data каталога, в котором установлен PostgreSQL ;
- Откройте этот файл в текстовом редакторе и внесите следующие изменения:
Значение переменной 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 по запуску сервера .
Если вы являетесь пользователем root или sudo , можно выполнить следующую команду:
service postgresql restart
Убедитесь, что вы являетесь пользователем postgres :
Флаг -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
Затем добавьте следующую строку:
После этого можно будет выполнить предыдущую команду для перезапуска сервера PostgreSQL без флага -D .
При установке 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.
Выполните в консоли две следующие команды:
Под пользователем postgres выполните следующие две команды:
При первом запуске команды psql на OS X 10.8.X вы можете увидеть сообщение об ошибке:
Это связано с тем, как Homebrew в Mac OS X и Mountain Lion конфликтуют с определенными системными библиотеками. Решение этой проблемы заключается в том, чтобы скопировать и связать версии библиотеки. PostgreSQL упакован в /usr/lib , где библиотеки хранятся в Mountain Lion .
Еще одним решением может стать пересмотр Homebrew и проверка совместимости с Mountain Lion .
При установке PostgreSQL на Mac OS X в один клик создается ярлык для оболочки PostgreSQL в каталоге Applications / PostgreSQL 9.0 / . Нажмите SQL Shell (psql).app , чтобы открыть новое окно терминала с запущенным psql .
Из этого окна терминала можно получить доступ к базе данных template1 , введя:
psql c template1
psql запускается из командной строки ( cmd ) Windows . Убедитесь, что путь к папке postgres bin хранится в переменной PATH , или просто вызовите ее с полным путем к месту расположения исполняемого файла psql :
psql -d template1 -U postgres
Выполните команды консоли:
Создайте пользователя csadmin
Для PostgreSQL установки и настройки в командной строке psql ( заканчивающейся на # ) переключитесь с базы данных template1 на 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 . Откройте этот файл в текстовом редакторе и отредактируйте следующие значения:
Теперь через командную строку задайте значение kernel.shmmax . Оно должно как минимум равняться shared_buffer + 128MB :
Затем перезапустите сервер PostgreSQL . Если на экране появится сообщение об ошибке, то нужно будет увеличить значение kernel.shmax .
Затем необходимо определить окончательное значение shmmax :
Откройте файл /etc/sysctl.conf .
И добавьте следующую строку — заменив значение для shmmax :
Наконец, установите необходимое значение cache_size :
Для этого запустите ( и выведите статистику в мегабайтах ):
В результате на экране вы увидите что-то наподобие этого:
Эффективное значение для cache_size определяется путем сложения значений buffers и cached . В приведенном выше примере:
253 + 1226 = 1479
К этому числу добавляется значение shared_buffers , поэтому в общей сложности мы получаем:
1479 + 512 = 1991
Снова отредактируйте файл postgres.conf и установите эффективный размер кэша — значение, выведенное нами в предыдущих шагах:
Также задайте следующие значения:
Перезагрузите установленный PostgreSQL , чтобы изменения вступили в силу.
Мы закончили настройку PostgreSQL . Обратите внимание, что приведенные в этом разделе значения являются примерными. Их необходимо устанавливать в соответствии с настройками вашей системы. Более подробную информацию о настройках можно найти здесь .