1c 8.2 на postgresql: установка, настройка, обслуживание

Перед установкой PostgreSQL

Прежде всего, необходимо учитывать тот факт, что изначально СУБД PostgreSQL является "версионником", в отличие от "блокировочников" (MS SQL, MySQL) и, следовательно, напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблицу сразу. Если нужны блокировки на уровне записей, включаем в 1С режим управляемых блокировок и прописываем их в конфигурации ручками. Вывод: необходимо скачать специальный дистрибутив с сайта 1С или взять на диске ИТС.

В ходе установки

Сама установка особых  затруднений не вызывает, обратить внимание нужно на правильную инициализацию базы данных, а именно настройку локали, изменить потом это можно только повторной начальной инициализацией. Например, база 1С с украинскими региональными установками в СУБД с установленной русской локалью не загрузится. Да и проблемы с сортировкой потом не нужны. Поэтому делаем init в соответствии с нужным языком.

Для русского языка

initdb --locale=ru_RU.UTF-8 --lc-collate=ru_RU.UTF-8 --lc-ctype=ru_RU.UTF-8 --encoding=UTF8 -D /db/postgresql

Для украинского языка

initdb --locale=uk_UA.UTF-8 --lc-collate=uk_UA.UTF-8 --lc-ctype=uk_UA.UTF-8 --encoding=UTF8 -D /db/postgresql

где /db/postgresql ваш каталог данных PostgreSQL. Кодировка, конечно же, UTF-8.

 

Настройка PostgreSQL

Следует помнить о рекомендации 1С не использовать в запросах конструкции ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ и заменять его, используя, например, комбинацию из нескольких левых соединений. Известна также проблема с потерей производительности в запросах, где применяется соединение с виртуальной таблицей СрезПоследних, к ней рекомендуется делать отдельные запросы и сохранять результаты во временных таблицах.
Настройка конфигурации производится редактированем файла postgresql.conf.
Наиболее важные параметры

effective_cache_size = 0,5 от ёмкости RAM
fsync = off отключаем сброс на диск после каждой транзации (Внимание! Применять только  при использовании надежного UPS, есть опасность потери данных при неожиданном отключении)
synchronous_commit = off  отключаем синхронную запись в лог (риски теже, что и у fsync)
wal_buffers = 0,25 от ёмкости RAM

После настройки не забываем выполнить перезапуск службы:

service postgresql restart

Резервное копирование

Создание дампа базы данных делаем командой

su postgres -c 'pg_dump -U postgres -Fc -Z9 -f baza1.sql baza1'

Восстановление из дампа

su postgres -c 'pg_restore -U postgres -c -d baza1 -v baza1.sql'

 

Периодическое обслуживание

Рекомендуется настроить AVTO VACUUM в файле конфигурации. Но не пренебрегаем и запуском через  планировщик  принудительной команды.

su postgres -c '/usr/bin/vacuumdb --dbname=$i --analyze --full --quiet'

 

Просмотр активности PostgreSQL

Иногда полезно видеть чем сейчас занимается сервер. Поможет такая конструкция:

watch -n 1 'ps auxww | grep ^postgres'


Специалисты центра VIDICOM производят настройку серверов "под ключ", в рамках оказания своим клиентам услуг 1С. Подробнее см. в разделе Услуги 1С.