К основному контенту

Установка и настройка PostgreSql 9.4 на CentOS 7

Установка PostgreSQL

Последняя версия bash-скрипта для установки БД тут. Но в чем-то он может быть сыроват, и гонять его не понимая "что и зачем" я бы не рекомендовал.

1. Запретить скачку плохих, негодных PG из стандартного репозитория:

vi /etc/yum.repos.d/CentOS-Base.repo
exclude=postgresql*

2. Затем установить хороший, годный PG репозиторий:

yum localinstall http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

Перед этим, проверить по адресу yum.postgresql.org актуальные по версии БД и обязательно по дистрибутиву ОС (например, для Centos и Oracle Linux нужны разные репозитории).

3. Установить сервер и другие нужные компоненты (рекомендуется devel и contrib):
yum install postgresql94-server postgresql94-contrib postgresql94-devel

или еще проще 

yum install postgresql94*

4. Инициализировать базу:
/usr/pgsql-9.4/bin/postgresql94-setup initdb

4'. Если требуется nondefault PGDATA (default = /var/lib/pgsql/9.4/data), делаем следующее:

cp /usr/lib/systemd/system/postgresql-9.4.service /etc/systemd/system/postgresql-9.4.service

vim /etc/systemd/system/postgresql-9.4.service
 Environment=PGDATA=/my_path
 include /lib/systemd/system/postgresql-9.4.service

Пользователь postgres должен иметь права на всю иерархию каталогов в /mypath (например: 775)

Если есть желание оставить SELinux:
semanage fcontext -a -t postgresql_db_t "/my/new/location(/.*)?"
но я не пробовал (just turn it off :D)

А можно создать базу в стандартной директории, а после перенести файлы куда нужно, заменив их сим-линками.

5. Включить автозапуск демона при старте системы и запустить его:
systemctl enable postgresql-9.4
systemctl start postgresql-9.4

6. Сменить пароль пользователя postgres:
sudo -u postgres psql
alter user postgres password 'p@s$W0rd';

7. Разрешить подключения по сети:
Если планируется использование pgbouncer - пропускаем этот шаг, т.к. слушать сетевые подключения будет сам bouncer.
vi /var/lib/pgsql/9.4/data/postgresql.conf
listen_addresses = '*'

8. Разрешить аутентификацию по паролю.
vi /var/lib/pgsql/9.4/data/pg_hba.conf
host    all      all       127.0.0.1/32        trust
Этой строчки достаточно, если будет использоваться bouncer. Без него потребуется прописывать разрешение для подключений по сети:
host    all      all       192.168.0.1/16      md5

9. Перезапустить демон:
sudo systemctl restart postgresql-9.4

10. Разрешить PG связь через фаервол. Перед закрытием тега zone вставить строку:
sudo firewall-cmd --permanent --zone=public --add-service=postgresql
sudo firewall-cmd --reload

Для bouncer нужно отдельное разрешение на его порт.

Комментарии

Популярные сообщения из этого блога

Установка и настройка pgAgent(планировщика заданий PostgreSQL)

Установка pgAgent Последняя версия скрипта для установки агента  тут . Перенести инструкцию по агенту в отдельную тему. 1. Создать пользователя ОС, и сделать ему домашний каталог: useradd -s /bin/false -r -M pgagent mkdir /home/pgagent 2. Установить и настроить демон: yum install pgagent_94 При наличии ошибок вида (была на Oracle Linux 6.8) Error: Package: pgagent_94-3.4.0-1.rhel6.x86_64 (pgdg94)            Requires: libwx_baseu-2.8.so.0(WXU_2.8)(64bit) Нужно установить EPEL systemctl enable pgagent_94 chown pgagent:pgagent /var/log/pgagent_94.log 3. Установить схему агента в базе: sudo -u postgres psql -f /usr/share/pgagent_94-3.4.0/pgagent.sql postgres 4. Создать файл паролей для подключения агента к базе. vi /home/pgagent/.pgpass localhost:5432:*:postgres:postgres chown pgagent.pgagent /home/pgagent -R chmod 600 /home/pagent/.pgpass 5. Запустить и проверить работу агента systemctl start pgagent_94.service systemctl status pga

Включение логирования для Haproxy

Изначально логирование в syslog в HaProxy отключено. Ниже пример настройки логирования для ОС Centos 7. Настройка: Добавить строку  log 127.0.0.1 local2 в секцию global файла /etc/haproxy/haproxy.cfg Раскомментировать $ModLoad imudp и $UDPServerRun 514 в файле  /etc/rsyslog.conf Создать файл  /etc/rsyslog.d/haproxy.conf со следующим содержимым:  local2.* /var/log/haproxy.log Перезапустить rsyslog и haproxy.

Использование oraenv для установки окружения.

Для настройки окружения в Linux можно все параметры базы указать в .bash_profile: ORACLE_HOME=/app/oracle/product/11.2.0.4/dbhome_1 export ORACLE_HOME ORACLE_BASE=/app/oracle export ORACLE_BASE ORACLE_SID=orcl export ORACLE_SID PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export PATH Но лучше использовать для этих целей утилиту oraenv. oraenv берет данные из файла /etc/oratab orcl:/app/oracle/product/12.1.0/dbhome_1:N И на ее основе задает параметры окружения: ORACLE_SID, ORACLE_BASE,ORACLE_HOME и PATH Использовать можно в интерактивном режиме: . oraenv ORACLE_SID = [orcl] ? orcl The Oracle base has been set to /app/oracle И в неинтерактивном режиме. Добавить в  .bash_profile: ORACLE_SID=orcl ORAENV_ASK=NO . oraenv Для ASM ситуация аналогичная. . oraenv ORACLE_SID = [orcl] ? +ASM1 The Oracle base has been set to /u01/app/oracle echo $ORACLE_HOME /app/11.2.0/grid