PostgerSQL заточен под Linux и в своей среде он будет работать лучше и быстрее (как рыба в воде), но есть и адаптированный под Windows, требующий чуть больших настроек для оптимизации, чем просто "далее-далее-далее" в MSSQL. Хотя на небольших БД на первых этапах хватает и стандартной настройки задаваемой при установке.
Тесты о работе и производительности на разных системах разных продуктов MS SQL, PostgerSQL, под Linux, Windows легко можно найти в интернете, тут же мы рассмотрим простую установку и базовую настройку для работы 1С 8 на PostgerSQL 11.5 под Windows Server 2008 R2.
Постановка задачи:
1С Предприятие 8.3.16.1063, 1С БД Бухгалтерия 3.0.75.58 – размер файла ~15 Гб.
Сервер: i5-9400, ОЗУ DDR4 16 Гб, SSD 256, ОС Windows Server 2008R2 x64
Скачать дистрибутив PostgerSQL можно с сайта 1С "users.v8.1c.ru", либо с офф сайта «www.postgresql.org».
Установка и настройка PostgreSQL:
1. Подготовка:
Перед установкой и настройкой рекомендуется отключить протокол IPv6, иначе это может затруднить дальнейшую настройку.
Также необходимо установить Microsoft Visual C++ 2015 (на сайте 1С он идет в комплекте)
Также заранее рекомендуется включить службу "Вторичный вход в систему", иначе при установке будет ошибка.
2. Процесс установки
Далее указываем путь установки программы (его не меняем) и путь, где будут располагаться БД (его рекомендуется сменить, чтобы БД хранились не на системном диске)
Если вы не запустили службу "Вторичный вход в систему" то у вас будет ошибка, ее можно включить на этапе установки и продолжить:
После установки запускаем консоль администратора "Пуск-PostgreSQL 11.5-7.1C(x64)-pgAdmin 4"
На этом установка PostgreSQL закончена.
3. Установка 1С сервера:
Теперь переходим к установке файлов сервера «1С:Предприятия» и запуску соответствующей службы. Для установки требуется дистрибутив технологической платформы «1С:Предприятия». Скачать необходимые дистрибутивы можно скачать в закрытом разделе на сайте 1С)
Запуститься помощник установки системы «1С:Предприятия». На первой странице жмем «Далее».
На следующей странице необходимо выбрать те компоненты, которые будут устанавливаться, нам требуются компоненты:
- Сервер 1С:Предприятия — компоненты сервера «1С:Предприятия»
- Администрирование сервера 1С:Предприятия 8 — дополнительные компоненты для администрирования кластера серверов «1С:Предприятия»
Сделав выбор жмем «Далее».
Если сервер «1С:Предприятия» устанавливается как служба Windows рекомендуется сразу создать отдельного пользователя, из под которого будет запускаться служба "Агент сервера 1С Предприятия", либо можно выбрать существующего пользователя для запуска сервера. Для создание нового пользователя необходимо:
- Выбираем флаг «Установить сервер 1С:Предприятие как сервис Windows (рекомендуется)»;
- Выбираем «Создать пользователя USR1CV8» и задаем его пароль (пароль должен отвечать политики паролей Windows).
Также пользователю обязательно следует дать необходимые права на каталог служебных файлов сервера (по умолчанию C:\Program Files\1cv8\srvinfo для 64-х разрядного и C:\Program Files (x86)\1cv8\srvinfo для 32-х разрядного сервера). Созданный автоматически пользователь USR1CV8 будет обладать всеми перечисленными правами.
Заполнив соответствующие параметры, жмем «Далее».
Далее идет установка всех необходимых файлов и служб. После чего следует убедиться что появилась и запущена соответствующая служба.
После установки 1С сервера не забудьте зарегистрировать консоль сервера. "Регистрация утилиты администрирования серверов x86-64" запустить под администратором, устанавливается вместе с сервером. Иначе будут проблемы со стартом службы.
На этом установка Сервера 1С Предприятия закончена.
4. Создание 1С БД для PostgreSQL
После установки 1С Сервера запускаем "Администрирование серверов 1С Предприятия x86-64", переходим в список "Информационные базы" и создаем новую БД. Заполняем основные поля:
- Имя - имя БД на сервере 1с
- Сервер баз данные - имя сервера где будет располагаться БД 1С SQL
- Тип СУБД - выбор на какой платформе у вас будет работать ваша база (MSSQL, PostgeSQL, IBM DB2, Oracle DateBase)
- База данных - имя базы которое будет создано в SQL
- Пользователь и пароль БД - пользователь в SQL
- Создавать базу данных в случае ее отсутствия - Создает БД в SQL если ее нет.
Если вы не отключили протокол IPv6 то у вас при создании будет ошибка:
можно отключить протокол IPv6 и продолжить создание, либо можно указать IP адрес сервера без отключение протокол IPv6:
Все на этом этапе БД готова, в принципе ее можно подключать загружать в SQL и работать. Но рекомендуется сделать настройку самого Postgre сервера для оптимизации и более стабильной работы базы 1С на PostgreSQL. Делается это в 1 файле расположенном в каталоге с базами (путь который вы указывали при установке для баз по умолчанию C:\Program Files\PostgreSQL\11.5-7.1C\data). Файл postgresql.conf
5. Настройка PostgreSQL под 1С 8
ВАЖНО!!! Перед любыми изменения в этом файле обязательно сделайте его копию, в противном случаем если какой то параметр указан не верно у вас не запустится служба PostgreeSQL:
Перед тем как вносить изменения в файл postgresql.conf необходимо остановить службу
Изменение параметров в postgresql.conf:
- shared_buffers — Количество памяти, выделенной PgSQL для совместного кеша страниц. Эта память разделяется между всеми процессами PgSQL. Делим доступную ОЗУ на 4. В нашем случае это 4 Gb.
- effective_cache_size — Оценка размера кэша файловой системы. Считается так: ОЗУ — shared_buffers. В нашем случае это 16Gb — 4Gb = 12Gb. Но рекомендуется указать этот параметр ниже, где-то 8-10Gb.
- max_connections = 10 # максимальное число клиентских подключений, которые могут подсоединяться к базе данных одновременно.
- random_page_cost = 1.5 — 2.0 для RAID, 1.1 — 1.3 для SSD. Стоимость чтения рандомной страницы. Чем меньше seek time дисковой системы тем меньше (но > 1.0) должен быть этот параметр. Излишне большое значение параметра увеличивает склонность PgSQL к выбору планов с сканированием всей таблицы.
- temp_buffers = 512Mb. Максимальное количество страниц для временных таблиц. То есть это верхний лимит размера временных таблиц в каждой сессии (рекомендуемый размер 1/20 RAM).
- wal_sync_method = open_datasync. метод, который используется для принудительной записи данных на диск. open_datasync – запись данных методом open() с параметром O_DSYNC, fdatasync – вызов метода fdatasync() после каждого commit, fsync_writethrough – вызывать fsync() после каждого commit игнорирую паралельные процессы, fsync – вызов fsync() после каждого commit, open_sync – запись данных методом open() с параметром O_SYNC. Наилучший по тесту для Windows считается open_datasync(для Линукс = fdatasync)
- work_mem — Считается так: ОЗУ / 32..64 — в нашем случае получается 512mb. Лимит памяти для обработки одного запроса. Эта память индивидуальна для каждой сессии. Теоретически, максимально потребная память равна max_connections * work_mem.
- bgwriter_delay — 20ms. Время сна между циклами записи на диск фонового процесса записи. Данный процесс ответственен за синхронизацию страниц, расположенных в shared_buffers с диском. Слишком большое значение этого параметра приведет к возрастанию нагрузки на checkpoint процесс и процессы, обслуживающие сессии (backend). Малое значение приведет к полной загрузке одного из ядер.
- synchronous_commit — off. ОПАСНО! Выключение синхронизации с диском в момент коммита. Создает риск потери последних нескольких транзакций (в течении 0.5-1 секунды), но гарантирует целостность базы данных, в цепочке коммитов гарантированно отсутствуют пропуски. Но значительно увеличивает производительность.
Другие настройки более тонкие для работы PostgreSQL можно посмотреть в этой статье (для нашего размера базы этого будет достаточно): //infostart.ru/public/554213/
Вся документация по настройке так же есть на сайте 1С (its.1c.ru) а разделе "Методическая поддержка для разработчиков и администраторов 1С:Предприятия 8"
После чего запускаем службу PostgreSQL и можно работать.
Так же иногда по какой то причине после загрузки в PostgreSQL в базе отключается "Полнотекстовый поиск", поэтому после настройки рекомендуется проверить и включить если выключено и обновить индексы (все функции-стандартные-управление полнотекстовым поиском).
Во вложении дистрибутив postgresql_11.5_7.1C_x64 с сайта 1С и файл настроек postgresql.conf.
Как делать резервирование на PostgreSQL можно почитать тут: //infostart.ru/public/1187165/