Настройка PostgreSQL 11.5 и 1C: Предприятие 8.3.16 на Windows Server 2008R2

Публикация № 1180438

Администрирование - Системное администрирование

PostgreSQL SQL Настройка

Под «Окнами» «Слона» водили… Когда файловая БД 1С вырастает и начинает тормозить, встает вопрос по переводу базы на SQL, безусловно, лидеры и самые используемые при настройке SQL баз на 1С это ПО Microsoft SQL Server и PostgerSQL, (прочие IBM DB2 и Oracle Datebase), но жирный плюс в сторону PostgerSQL, что она условно бесплатная, в отличие от цены на MSSQL.

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С:Предприятия»

Сделав выбор жмем «Далее».

ustanovka-servera-1spredpriyatie-8_03

Если сервер «1С:Предприятия» устанавливается как служба Windows рекомендуется сразу создать отдельного пользователя, из под которого будет запускаться служба "Агент сервера 1С Предприятия", либо можно выбрать существующего пользователя для запуска сервера. Для создание нового пользователя необходимо:

  • Выбираем флаг «Установить сервер 1С:Предприятие как сервис Windows (рекомендуется)»;
  • Выбираем «Создать пользователя USR1CV8» и задаем его пароль (пароль должен отвечать политики паролей Windows).

Также пользователю обязательно следует дать необходимые права на каталог служебных файлов сервера (по умолчанию C:\Program Files\1cv8\srvinfo для 64-х разрядного и C:\Program Files (x86)\1cv8\srvinfo для 32-х разрядного сервера). Созданный автоматически пользователь USR1CV8 будет обладать всеми перечисленными правами.

Заполнив соответствующие параметры, жмем «Далее».

ustanovka-servera-1spredpriyatie-8_05

Далее идет установка всех необходимых файлов и служб. После чего следует убедиться что появилась и запущена соответствующая служба.

ustanovka-servera-1spredpriyatie-8_11

На этом установка Сервера 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/

Скачать файлы

Наименование Файл Версия Размер
postgresql_11.5_7.1C_x64

.zip 139,30Mb
22.01.20
12
.zip 139,30Mb 12 Скачать
postgresql.conf

.conf 24,23Kb
22.01.20
19
.conf 24,23Kb 19 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. _Dmitry_ 22.01.20 14:34 Сейчас в теме
Как посчитать max_connections ?
2. ClickUp 300 22.01.20 15:38 Сейчас в теме
"максимальное число клиентских подключений" - логично подумать сколько человек будет работать столько и делать, можно с большим запасом, укажите 100 это не критический параметр.
3. Sedaiko 394 23.01.20 01:14 Сейчас в теме
(2) не забудьте по фоновые задания
4. Sedaiko 394 23.01.20 01:20 Сейчас в теме
параметры лучше (и проще) не прописывать не postgresql.conf, а устанавливать запросом, например
ALTER SYSTEM SET shared_buffers = '16GB'
Они будут записаны в postgresql.auto.conf, который читается последним
5. mpeg1989 23.01.20 16:21 Сейчас в теме
Отличная бизнес идея - взять дистриб из полузакрытых источников и выложить его за стартмани...
user1116097; XelOla; Fox-trot; alevnev; +4 Ответить
6. ClickUp 300 23.01.20 16:24 Сейчас в теме
(5) качайте тут www.postgresql.org абсолютно бесплатно все в свободном доступе, все для вас. Дистрибутив Postgre тут выложен в дополнение и его ценность минимальная, найти его не проблема.
7. Sedaiko 394 24.01.20 00:21 Сейчас в теме
(6) только не забудьте пропатчить, чтобы работал с 1С ))))
8. Sedaiko 394 24.01.20 00:28 Сейчас в теме
Кстати, а Windows Server 2008 выбрали, потому что уже его поддержка закончилась?
10. ClickUp 300 24.01.20 04:23 Сейчас в теме
(8) Нет потому что уже стоит в 80% случаев, по крайней мере в нашем случае.... от 12,16 я думаю отличий в плане настройки нет.
11. Michael_K 7 26.01.20 08:04 Сейчас в теме
(8) Я бы ответил: "Да, именно поэтому". Все беды серверов от кривых обновлений, к безопасности имеют мало значения, а 2008 - самый вменяемый из всей имеющейся на данный момент линейки.
12. gigapevt 22 28.01.20 17:03 Сейчас в теме
А чем не нравятся сборки от postgrespro ? там и под все платформы есть и "вынь" и linux а так + PGTune
13. albinka 29.01.20 09:46 Сейчас в теме
Все так кроме:
work_mem — Считается так: ОЗУ / 32..64 — в нашем случае получается 512Gb. - многовато...
14. ClickUp 300 29.01.20 09:58 Сейчас в теме
15. CaSH_2004 362 03.03.20 19:04 Сейчас в теме
(0) Автор статья конечно полезная, но новизны в ней мало (кроме указания последних версий и багов) и полноты тоже. Если хочешь могу подробнее расписать, т.к. по твоей статье только что установил все.
16. user1388648 05.04.20 08:31 Сейчас в теме
Чето из статьи непойму - каким образом 1С будет знать что ей надо отправлять свои данные в postrge БД buh3 а не самой писать в свою фаловую БД? Каким образом 1С приконнекчена к postgre? Из статьи выходит что никак
17. ClickUp 300 05.04.20 13:35 Сейчас в теме
(16) 4. Создание 1С БД для PostgreSQL
18. ClickUp 300 05.04.20 13:37 Сейчас в теме
(16) Тип СУБД - выбор на какой платформе у вас будет работать ваша база (MSSQL, PostgeSQL, IBM DB2, Oracle DateBase)
19. Herznaet 11.04.20 06:49 Сейчас в теме
От себя добавлю, что на Windows 10 нужно указать в переменной PATH путь к каталогу, где лежит initdb, иначе не взлетит.
20. Crazy Demon 20.04.20 02:50 Сейчас в теме
Объясните пожалуйста - сколько статей подобных читаю, все предлагают коннектиться к базе данных пользователем postgres!
Но ведь это же всё-равно, что работать в винде из под админа, в линуксе из под root - это не секурно!
Так почему все плюют на это?
Как правильно создать под постгресом пользователя, и назначить права ему такие, чтобы при указании этого пользователя при попытке создании базы через 1С не выдавалось "DATABASE не пригоден для использования"?
Специалисты - отзовитесь...
24. Ruslan2011 14.06.20 08:17 Сейчас в теме
(20)
ник у вас конечно....или вы думаете оно ничего вам не принесет ?

DATABASE не пригоден для использования

это не от пользователя, а от несоответствия 1с и слона ( версии)
у меня попадались такие ошибки, но как вспомню, как вычищать постгрес
пароли папки , так вздрогну :)

еще и при мысли, что следующая может не подойти.
25. Ruslan2011 14.06.20 08:24 Сейчас в теме
(20)
https://pro1c.org.ua/topic/moj-opyt-ustanovki-linux-postgresql-1c-4712/?st=0&p=31928&

люди ставят разные слоники и попадают на разные проблемы или их отсутствие
26. ansh15 14.06.20 11:08 Сейчас в теме
(20)Можно завести отдельные учетные записи пользователя СУБД хоть для каждой базы, а с их правами можно поэкспериментировать по аналогии, почитав в документации о правах доступа.
27. rvd_buzzer 16.07.20 06:28 Сейчас в теме
(20) Тоже попался на эту ошибку. Поставил уже два постгри 11.5 и 11.7, платформы попробовал поменять 8_3_16_1224 и 8_3_17_1549. Ничего не помогло.
28. user970589 3 29.08.20 00:42 Сейчас в теме
(27)что-то получилось итогом? тоже на ней завис.а "коннектиться к базе данных пользователем postgres" не помогает?
22. XelOla 17 02.05.20 10:37 Сейчас в теме
Скажите, для 64-разрядной 1С, нужен и ключ на сервер 1с - 64бит?
у нас сервер покупался еще 8.0, и 32 бит, будет ли работать?
23. ClickUp 300 02.05.20 14:06 Сейчас в теме
Ключ нужен как на сервер так и на платформу отдельно
user970589; +1 Ответить
29. Feelthis 36 17.09.20 15:31 Сейчас в теме
Все таки подскажите кто в курсе, что лучше для скажем 5-8 бухгалтеров ставить - MS SQL Express или Postgree?
Что напрягает в файловой версии - то что база рушится если например комп с базой неожиданно перезагрузить..
Если Postgree то сильно ли повлияет если его поставить прямо на том же сервере с 1С Сервером на Windows или все таки значительно лучше например сделать виртуалку на той же машине где сервер 1С и туда уже Linux с Postgree?
Оставьте свое сообщение

См. также

Резервное копирование и восстановление БД 1С 8.3 на PostgreSQL 11.5

Архивирование (backup) v8 1cv8.cf Абонемент ($m)

Резервное копирование баз данных 1С является обязательным, чтобы в случае непредвиденной проблемы всегда была возможность все восстановить. В статье мы рассмотрим, как произвести резервное копирование и восстановление из копии базы 1 8.3, работающей на PostgreSQL 11.5.

1 стартмани

30.01.2020    14629    ClickUp    45    

Установка 1С используя Ansible

Системное администрирование v8 Абонемент ($m)

HOWTO. Как быстро обновить платформу на серверах 1С, если у Вас их парк.

1 стартмани

19.09.2019    10400    lopatrik    22    

Настройка PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012, объём БД более 200 Гб

Производительность и оптимизация (HighLoad) Администрирование данных 1С v8 Россия Абонемент ($m)

Настройка бесплатной СУБД PostgreSQL для работы в связке с 1С 8.х на платформе Windows Server 2012 х64. Объём БД более 380 Гб для мощного сервака. Конфигурация КА 1.1.108.2, 50 пользователей. Более 1 млн. проводок при закрытии месяца. Время закрытия месяца сравнимо с MSSQL и составляет в среднем 2 часа. Время отмены закрытия месяца - всего 10 минут! Ликвидированы зависания PostgreSQL. Всё за счет настроек файла postgesql.conf.

1 стартмани

11.10.2016    82077    71    vsasav    46