PostgreSQL: установка, настройка, обслуживаниеPostgreSQL напрямую "из коробки" применяться для использования с 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.
Подробный вариант пересоздания кластера 1.Необходимо выдать полные права на папку в которую мы установили PostgreSQL, обычно это C:\Program Files\PostgreSQL 2.Из под админских прав запускаем cmd. Если это делаете в win7, то запускаем от Администратора. 3.Создаем папку где будет храниться кластер. Например d:\postgredata. md d:\postgredata 4.Проводим инициализацию кластера вручную с указанием пути где он будет находиться. “C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\initdb.exe” -D d:\postgredata --locale=Russian_Russia --encoding=UTF8 -U postgres 5.Удаляем службу PostgreSQL, которая была установлена в ходе установки. sc delete pgsql-9.1.2-1.1C-x64 Где pgsql-9.1.2-1.1C-x64 – Это название службы. Если не знаете название точно, можно посмотреть свойствах службы “PostgreSQL Database Server…” (Пуск – Панель управления – Администрирование – Службы ) 6.Создаем новый сервис с указанием нашего кластера “C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_ctl” register -N pgsql -U postgresql -P пароль -D d:/postgredata 7.Теперь заходим в службы. Пуск – Панель управления – Администрирование – Службы и стартуем нашу службу. Ошибка СУБД: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251). HINT: Use the same encoding as in the template database, or use template0 as template. Вы выбрали неправильную локаль при установке СУБД (WIN1251) для сервера и клиента, нужно изменить на UTF-8 в конфигурации или переустановить СУБД со следующими параметрами:
Внимание при установке НЕ выбирайте локаль Настройки ОС, выбирайте из списка Russian, Russia Настройка 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 Настройка сети Для подключения клиентов 1С к серверу извне и работы сервера баз данных, на файрволе, должны быть открыты следующие порты: Агент сервера (ragent) & tcp:1540 Главный менеджер кластера (rmngr) & tcp:1541 Диапазон сетевых портов, для динамического распределения рабочих процессов & tcp:1560&1591, tcp:5432 & Postgresql. Создадим правило через стандартный интерфейс, либо с помощью команды: netsh advfirewall firewall add rule name="1Cv8-Server" dir=in action=allow protocol=TCP localport=1540,1541,5432,1560-1590 enable=yes profile=ANY remoteip=ANY interfacetype=LAN Теперь с другого компьютера мы спокойно запускаем клиент 1С:Предприятия, добавляем существующую информационную базу newdb. Не забываем про лицензии, программной / аппаратной защиты. Резервное копирование Создание дампа базы данных делаем командой 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' Опубликовано на сайте: https://HelpF.pro Прямая ссылка: https://HelpF.pro/faq/view/1828.html
|