1c + PostgreSQL + streaming replication на Debian ч.2
Продолжение статьи 1c + PostgreSQL + streaming replication на Debian ч.1
Установка СУБД PostgreSQL на srv-bd-1 и srv-bd-2:
Скачиваем нужную версию пропатченного, фирмой Etersoft, PostgreSQL для работы с 1С.
1) 32-х битная версия:
ftp://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/9.0.4/Debian/6.0/
2) 64-х битная версия:
ftp://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/9.0.4/x86_64/Debian/6.0
Удовлетворим зависимости:
# apt-get install libicu44 libxslt1.1
Установим postgresql:
# dpkg -i *.deb
При установке locales выбираем:
[*] en_US ISO-8859-1
[*] ru_RU ISO-8859-5
[*] ru_RU.CP1251 CP1251
[*] ru_RU.KOI8-R KOI8-R
[*] ru_RU.UTF-8 UTF-8
По умолчанию ставим: ru_RU.UTF-8:
Нет
en_US
ru_RU
ru_RU.CP1251
ru_RU.KOI8-R
>>ru_RU.UTF-8<<
Установим значение параметра ядра, kernel.shmax, требуемое для запуска postgresql:
# echo «kernel.shmmax = 134217728» >> /etc/sysctl.conf
Чтобы не перезагружаться, выполним команду:
# echo 134217728 >/proc/sys/kernel/shmmax
Назначим права:
# chown -R postgres:postgres /var/lib/pgsql
Зададим пароль для пользователя postgres:
# passwd postgres
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
Стартуем postgresql:
# /etc/init.d/postgresql start
Initializing database: [ DONE ]
Starting postgresql service: [ DONE ]
Проверим:
# /etc/init.d/postgresql status
pg_ctl: выполняется сервер (PID: 1362)
/usr/bin/postgres «-p» «5432» «-D» «/var/lib/pgsql/data»
Настройка PostgreSQL:
Меняем пользователя:
# su –l postgres
Меняем пароль внутреннему пользователю БД postgres:
$ psql
psql (9.0.4-alt1)
Type «help» for help.
postgres=# alter user postgres with password 'ваш_пароль'
postgres-# \q
$
Конфигурируем postgresql.conf:
# vim /var/lib/pgsql/data/postgresql.conf
max_connections = 100 # число соединений
shared_buffers = 75MB # размер разделяемой памяти
autovacuum = on # автодефрагментация
autovacuum_naptime = 5min # время между запуском autovacuum
fsync = on # кэширование
logging_collector = off # Включение, отключение ведения журнала.
# Этот параметр имеет смысл включать, только тогда, когда необходимо найти ошибку
# (изменение параметра требует перезагрузки)
Я еще обычно меняю следующие параметры, но они зависят от конфигурации сервера, так что задавать их значения нужно исходя из конкретной железки и ваших целей:
temp_buffers = 128MB
work_mem = 96MB
maintenance_work_mem = 512MB
max_stack_depth = 2MB
autovacuum_max_workers = 4
checkpoint_segments = 8
checkpoint_completion_target = 0.5
Random_page_cost = 4.0
effective_cache_size = 4GB
Настройка доступа к БД:
# vim /var/lib/pgsql/data/pg_hba.conf
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# «local» is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 192.168.0.0/24 trust
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
#host all all 0.0.0.0/0 md5
Оставляем только вышеуказанные строки и перезапускаем postgresql:
# /etc/init.d/postgresql restart