Jan 26, 2021 13:32
Установка
Устанавливаем сервер PostgreSQL удобным для себя способом на требуемой ОС. В нашем случае ОС - FreeBSD. Обращаем внимание на версию PostgreSQL, т.к. это будет влиять на именование пользователя, под которым будет работать СУБД. Начиная с версии PostgreSQL 10.0 - postgres. (Но это не точно!)
Если у вас много таблиц и много запущенных клиентов, подумайте об увеличении kern.maxfiles при помощи sysctl(8) или переконфигурируйте соответственно ваше ядро.
Порт для FreeBSD настроен для использования AUTOVACUUM для новых баз данных, но вы можете также захотеть использовать VACUUM и, возможно, регулярно производить резервное копирование вашей базы данных. Вот здесь находится скрипт, /usr/local/etc/periodic/daily/502.pgsql, который вы можете найти полезным. Вы можете использовать его для резервного копирования и выполнения VACUUM на всех базах данных каждую ночь. По умолчанию он выполняет VACUUM ANALYZE. Посмотрите скрипт для инструкций. Для настроек AUTOVACUUM, пожалуйста, посмотрите ~pgsql/data/postgresql.conf.
Если вы планируете осуществлять доступ к вашему PostgreSQL-серверу при помощи ODBC, пожалуйста, рассмотрите возможность запуска SQL-скрипта /usr/local/share/postgresql/odbc.sql, чтобы получить функции необходимые для соответствия ODBC.
Пожалуйста, обратите внимание, что если вы используете rc-скрипт /usr/local/etc/rc.d/postgresql для инициализации базы данных, то будет использована кодировка unicode (UTF-8) по умолчанию для хранения символьных данных. Установите postgresql_initdb_flags или используйте настройки login.conf, описанные ниже, чтобы изменить это поведение. Смотрите запуск rc-скрипта для дополнительной информации.
Для установки лимитов, настроек окружения, таких как локаль, collation и другие вещи вы можете настроить класс в /etc/login.conf до инициализации базы данных. Добавьте что-то похожее на это в /etc/login.conf:
postgres:\
:lang=en_US.UTF-8:\
:setenv=LC_COLLATE=C:\
:tc=default:
и запустите команду:
cap_mkdb /etc/login.conf
Затем добавьте postgresql_class="postgres" в /etc/rc.conf.
Инициализация кластера
Для инициализации базы данных запустите
/usr/local/etc/rc.d/postgresql initdb
Вы можете после этого запустить PostgreSQL командой:
/usr/local/etc/rc.d/postgresql start
Для настроек postmaster смотрите ~pgsql/data/postgresql.conf.
NB. Порт PostgreSQL для FreeBSD пишет логи в syslog по умолчанию. См. ~pgsql/data/postgresql.conf для дополнительной информации.
NB. Если вы не используете файловую систему с проверкой контрольных сумм, например ZFS, вы могли бы захотеть включить проверку контрольных сумм данных. Это может быть включено только во время фазы initdb, добавив флаг "--data-checksums" в переменную rcvar postgres_initdb_flags. Проверьте справочную страницу initdb(1) для дополнительной информации и убедитесь, что вы понимаете последствия для производительности.
NB. Имеет смысл настроить лог файл до запуска PostgreSQL, чтобы лишние данные не писались в syslog.
Запуск кластера
Для запуска PostgreSQL при загрузке системы добавьте postgresql_enable="YES" в /etc/rc.conf.
postgresql,
freebsd