Установка постгрес для 1с windows

Актуальность использования СУБД PostgreSQL для 1С особенно набирает обороты в последнее время, поскольку не требуется приобретать лицензии MS SQL.

Рассмотрим архитектурное решение, когда СУБД вынесена на отдельную машину, а сервер 1С находится на Windows Server.

Данное архитектурное решение было выбрано по причине того, что обмен между БД настроен через COM-компонент. Если сервер 1С переносить на Linux, то требуется также перенастраивать обмен, который в нашем решении не требуется.

В первую очередь требуется выбрать дистрибутив, на котором будем устанавливать СУБД. Мы выбрали Debian 11.

Минимальные системные требования для установки Postgres Pro, создания кластера баз данных и запуска сервера:

  • Процессор с частотой 1 ГГц.
  • 1 ГБ ОЗУ.
  • 1 ГБ свободного дискового пространства.

Для вспомогательных компонентов или данных потребуется дополнительное дисковое пространство.

Для того чтобы Postgres Pro работал с сервером 1С требуется установить locale ru_RU.UTF-8. Вводим команду:

# dpkg-reconfigure locales

Выбираем пробелом ru_RU.UTF-8 UTF-8 и нажимаем “Enter”. Перезагружаем сервер.

Установка Postgres Pro для работы с 1С

Для работы с 1С существует несколько редакций PostgreSQL, наиболее известные это от компании Postgres Pro и так же от самой 1С.

У нас будет установка Postgres Pro.

  • Заходим на сайт 1c.postgres.ru.
  • Отвечаем на 3 вопроса и в конце заполняем свой e-mail, куда вышлют инструкцию по установки.
  • Вводим команды:
# wget https://repo.postgrespro.ru/pg1c-14/keys/pgpro-repo-add.sh
# apt-get install postgrespro-1c-14
# systemctl status postgrespro-1c-14.service

Проверяем статус Postgres Pro, он должен быть установлен и запущен.

Окно nginx

Рисунок 1 — Успешно запущенная Postgres Pro

Настройка PostgreSQL для работы с 1С

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

# sudo -u postgres psql -U postgres -c "alter user postgres with password 'postgrespwd';"
ALTER ROLE

Чтобы немного увеличить быстродействие и сократить износ ресурса диска, мы перенесем хранение временной статистики на оперативную память.

По умолчанию, под статистику выделяется 25 мегабайт дискового пространства. Мы выделим 256 мегабайт памяти, чтобы был запас.

Создаем директорию, куда будем добавлять виртуальный диск:

# mkdir /var/lib/pgsql_tmp
 # chown postgres:postgres  /var/lib/pgsql_tmp/

Добавляем в /etc/fstab в конец строчку:

tmpfs /var/lib/pgsql_tmp tmpfs     size=256M,uid=postgres,gid=postgres 0 0

Монтируем диск в систему:

# mount /var/lib/pgsql_tmp

Идем в конфиг БД /var/lib/pgpro/1c-14/data/postgresql.conf и меняем параметр:

stats_temp_directory = '/var/lib/pgsql_tmp'

После успешной настройки перезагружаем службу:

# systemctl restart postgrespro-1c-14.service

Подключение информационной базы 1С к серверу PostgreSQL

Заходим на сервер, где расположена консоль администрирования сервера 1С.

Правой кнопкой мыши нажать на “Информационные базы (Далее ИБ)” > “Создать” > “ИБ”. Заполняем поля:

  • Имя — Test (Как будет называться ИБ).
  • Сервер баз данных: 192.168.74.128 (Адрес нашего сервера postgresql).
  • Тип СУБД: PostgreSQL.
  • База данных: Test (как будет называться БД в СУБД).
  • Пользователь сервера БД: postgres.
  • Пароль пользователя БД: postgrespwd.
  • Если базы нет, то еще поставить “Создать базу данных с случае ее отсутствия”.

Подключаем ИБ для запуска 1С:Предприятия. Заходим в 1С:Предприятие, нажимаем “Добавить”. Ставим “Добавление в список существующей ИБ”. Указываем наименование ИБ. Ставим “На сервере 1С:Предприятия”.

  • Кластер серверов: localhost (Адрес где находится сервер 1С).
  • Имя ИБ: Test (Имя которое мы задавали в оснастке).

Мы добавили ИБ для запуска, можно заходить в конфигуратор и загружать имеющую конфигурацию.

Мы провели успешно установку сервера PostgreSQL на Debian 11.

Пошаговое руководство по установке и первичной настройке сервера 1С:Предприятия 8.3 версии 8.3.19.1229 в ОС Microsoft Windows Server 2019 Standard с использованием СУБД PostgreSQL-11.7-5-1C и системы защиты HASP (USB-ключа).

Подготовка

Запускаем службу Вторичный вход в систему и в свойствах выбираем Запускать автоматически

# services.msc

На машинах, где будет установлено 1С-Предприятие, открываем в блокноте с правами администратора сервера файл C:\Windows\System32\drivers\etc\hosts и допишем в нём:

192.168.1.15	SRV15
  • 192.168.1.15 — IP-адрес сервера
  • SRV15 — имя хоста сервера

Скачиваем с официального ресурса 1С https://releases.1c.ru/ платформу 1c-enterprise-8.3 full (текущую версию) и СУБД postgresql-11.7-5.1C-x64 (или текущую версию).

Установка и настройка СУБД postgresql-11.7-5.1C

Запускаем дистрибутив postgresql-11.7-5.1C(x64) для установки

устанавливаем как сервис и при необходимости меняем пути

инициализируем кластер и устанавливаем пароль для пользователя postgres

Запускаем службу: Пуск — PostgreSQL 11.7-5.1C(x64) — Start Service

Распаковываем архив и в нём запускаем setup.exe

Для установки сервера выбрать компоненты

  • Сервер 1С:Предприятия 8
  • Администрирование сервера 1С:Предприятия
  • Сервер хранилища конфигураций 1С:Предприятия
  • Дополнительные функции администрирования
  • Контроль целостности
  • Интерфейсы на различных языках: Английский и Русский

Выбираем язык интерфейса — Русский

Устанавливаем сервер как сервис и создадим пользователя USR1CV8 и пароль к нему

Устанавливаем драйвер аппаратных ключей защиты

и завершаем установку.

Настройка сервера 1С:Предприятие 8.3

После установки запускаем сервер: Пуск — 1С Предприятие 8 (x86-64) — Запуск сервера x86-64

Регистрирует утилиту администрирования серверов: Пуск — 1С Предприятие 8 (x86-64) — Регистрация утилиты администрирования серверов x86-64

Запускаем консоль администратора: Пуск — 1С Предприятие 8 (x86-64) — Администрирование серверов 1С Предприятия x86-64

на пункте Central 1C:Enterprise 8.3 servers жмём правой кнопкой мыши — Создать — Центральный сервер 1С:Предприятия 8.3

Вводим имя сервера и, если необходимо, описание

Теперь сервер отображается в консоли

Создадим информационную базу

Пропишем имя ИБ, описание, адрес сервера БД: localhost (если сервер развёрнут на той же машине, что и СУБД), имя БД, пользователя postgres и пароль, а также отметим чек-бокс Создать базу данных в случае её отсутствия

и информационная база появилась в оснастке консоли

Теперь вставляем USB-ключ HASP и на всякий случай перезагрузим машину.

Установка и настройка клиента 1С:Предприятие 8.3

Распаковываем архив и в нём запускаем setup.exe

Будут отмечены компоненты:

  • 1С:Предприятие 8
  • Интерфейсы на различных языках — Английский и Русский

Этого вполне достаточно.

Будет создан ярлык 1С Предприятие. Запускаем его и сразу будет предложено добавить информационную базу

Соглашаемся.

Выбираем существующую информационную базу

Выберем тип расположения — На сервере 1С:Предприятия.

Заполним: Кластер серверов: SRV15, Имя информационной базы: db_1c (то же, что и было добавлено в консоли администрирования)

В Версию 1С:Предприятия впишем 8.3, в Разрядность64 (x86_64)

и информационная база появится в списке

Заключение

Если при установке и настройке вышеперечисленных пунктов не возникало никаких сообщений об ошибках, значит настройка прошла корректно. Но нельзя забывать о лицензии — это USB-ключ аппаратной защиты HASP. При работе в 1С-Предприятии его наличие обязательно.

Установка PostgreSQL, версия 10.5-24.1C windows 10

1. PostgreSQL. Версия 11.7-5.1C. Дистрибутив СУБД PostgreSQL для Windows (64-bit) одним архивом

Ставим на дополнительный SSD диск:
 F:\PostgreSQL\11.7-5.1C\

Обратить внимание, что если PostgreSQL установлен не по умолчанию, нужно добавить права
полный
доступ для NETWORK SERVICE для папки установки (если изменен) или на
папку с данными. Иначе после reboot PostgreSQL не будет запускаться!!! (В последних версиях исправлена?)

start → run → services.msc  

2. Необходимо пересоздать кластер с data_checksums

(Остановить сервер 1с если уже установлен)
Программы -> 1С:Предприятие 8(x86-64) -> Остановка сервера x86-64 (8.3.17.1386)

Программы -> PostgreSQL 11.5-19.1C(x64) -> psql к 'postgres'
Посмотреть базы:
postgres-# \l
Посмотреть размер баз:
postgres-# \l+

postgres=# SHOW data_checksums;
 data_checksums
----------------
 off
(1 row)


Сделать pg_dump, если есть базы от администратора:
Программы -> PostgreSQL 11.7-5.1C(x64) -> Command Prompt
F: 
cd "F:\PostgreSQL\11.7-5.1C\bin" 

pg_dump -p 5432 -U postgres -Fc -d demo -f F:/backup/demo.custom

pg_dump -p 5432 -U postgres -Fc -d demo1 -f F:/backup/demo1.custom

Остановим сервис от имени администратора:
Программы -> PostgreSQL 11.7-5.1C(x64) -> Stop service

Удалим кластер запуск от администратора
Программы -> PostgreSQL 11.7-5.1C(x64) -> Command Prompt 
#rd /s /q "c:\Program Files\PostgreSQL\10.5-24.1C\data"
rd /s /q "f:\PostgreSQL\11.7-5.1C\data"

Создание кластера (возможно \ - перенос удалить!):

"f:\PostgreSQL\11.7-5.1C\bin\initdb" --encoding=UTF8 -U "postgres" \
   -W -D "f:\PostgreSQL\11.7-5.1C\data" --auth-local peer --auth-host md5 \
   --data-checksums


Программы -> PostgreSQL 11.7-5.1C(x64) -> Редактировать postgresql.conf
 
Добавить в конец: 
  
# DB Version: 11
# OS Type: linux
# DB Type: oltp
# Total Memory (RAM): 16 GB
max_connections = 1000
shared_buffers = 512MB
temp_buffers = 256MB
work_mem = 256MB
effective_cache_size = 8GB
maintenance_work_mem = 1024MB
wal_buffers = 16MB
min_wal_size = 2GB
max_wal_size = 4GB
default_statistics_target = 100
#effective_io_concurrency = 2
seq_page_cost = 1.0
random_page_cost = 1.1
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 20s
autovacuum_vacuum_scale_factor = 0.01
autovacuum_analyze_scale_factor = 0.005
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
checkpoint_completion_target = 0.9
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
row_security = off
max_files_per_process = 10000
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
#log_min_duration_statement = 0
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_temp_files = 0
#log_autovacuum_min_duration = 0
#log_duration = on
#log_statement = all
log_destination = stderr
plantuner.fix_empty_table = 'on'
online_analyze.enable = on
online_analyze.table_type = 'temporary'
online_analyze.verbose = 'off'
max_replication_slots = 10
max_wal_senders = 10
wal_level = replica   

Сохранить.

Запустим сервис от имени администратора:
Программы -> PostgreSQL 11.7-5.1C(x64) -> Start service


Программы -> PostgreSQL 11.7-5.1C(x64) -> psql к 'postgres'

postgres=# SHOW data_checksums;
 data_checksums
----------------
 on
(1 row)


Восcтановим базы (если есть):
 
Программы -> PostgreSQL 11.7-5.1C(x64) -> Command Prompt
F: 
cd "F:\PostgreSQL\11.7-5.1C\bin" 

#dropdb --username postgres demo
createdb --username postgres -T template0 demo
pg_restore -d demo -p 5432 -U postgres -C F:/backup/demo.custom
#dropdb --username postgres demo1
createdb --username postgres -T template0 demo1
pg_restore -d demo1 -p 5432 -U postgres -C F:/backup/demo1.custom

Запустить сервер 1с
Программы -> 1С:Предприятие 8(x86-64) -> Запуск сервера x86-64 (8.3.17.1386) 

3. Ставим  Cервер 1С:Предприятия (64-bit) для Windows 8.3.15.1830 или
старше.

4. IP 6 отключаем

5. Технологический журнал не настраиваем.

6. При последней установке служба агента не запускалась
Удалить службу
sc delete «1C:Enterprise 8.3 Server Agent (x86-64)»

1C:Enterprise 8.3 Server Agent (x86-64) пока вход в систему не был переделан с системной учетной записью.

7. Настраиваем  pg_probackup

pg_probackup настройка автономного резервного копирования windows

Если не использум pg_probackup, нужно настроить pg_basebackup

PostgreSQL 10.5-24 настройка WAL архивирования windows
Резервное копирование кластера PostgreSQL pg_basebackup Windows

 
8. Настроить vacuum

Windows обслуживание баз PostgreSQL

В скрипте настроить путь и пароль:

REM Установка переменных окружения
SET PGBIN=C:\Program Files\PostgreSQL\10.5-24.1C\bin
SET PGUSER=postgres
SET PGPASSWORD=pass

11. Настроить backup в dump
Из статьи ниже просто взять скрипт
Резервное копирование базы PostgreSQL pg_dump под windows
Сделать свой скрипт на каждую базу в скрипте настроить:
Имя базы:
SET PGDATABASE=demo

SET PGBIN=C:\Program Files\PostgreSQL\10.5-24.1C\bin
SET PGHOST=localhost
SET PGPORT=5432
SET PGUSER=postgres
SET PGPASSWORD=pass

9. Сделать общий скрипт в планировщике

Вообще хорошо перед pg_dump
Остановить сервер 1С
«C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe» -stop
скрипт vacuum
скрипт dump на каждую базу …
скрипт dump на каждую базу …
После pg_dump
Запуск сервера 1С
«C:\Program Files\1cv8\8.3.13.1690\bin\ragent.exe» -start

Целесообразно настроить удаление старых копий
forfiles /P «d:\demo» /D -30 /C «cmd /c del @path /q»

10. Настройка web доступа
Установка Apache HTTP Server 64 on Microsoft Windows

PostgreSQL — достаточно современная и популярная СУБД в мире. Её не обошла и фирма 1С, выбрав в качестве одной из поддерживаемых для работы СУБД. Рассмотрим инструкцию по установке PostgreSQL и её первоначальной настройки для 1С 8.3 под ОС Windows.

Содержание

  1. Установка и настройка сервера 1С Предприятие
  2. Установка PostgreSQL
  3. Настройка PostgreSQL под 1С

Первым делом установим сервер 1C предприятия 8.3 (или 8.2). Для этого запустим файл setup.exe из архива. Установка мало чем отличается от обычной установки клиентского приложения, за исключением некоторых особенностей:

  • Не забудьте выбрать в компонентах нужные пункты:

Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

  • Указать, от чьего имени будет запускаться приложение. Рекомендуется создавать нового пользователя «USR1Cv8». У этого пользователя должны быть установлены нужные права:

Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

После установки части 1С можно приступить к работе с СУБД.

Установка PostgreSQL

Запустите файл postgresql-9.1.2-1.1C(x64).msi, в папке windows выбрать подпапку 64 или 86, в зависимости от разрядности ОС. Можно оставить практически всё по умолчанию. Необходимо обратить внимание на следующие моменты:

Так же, как с 1С 8.3, СУБД устанавливается как сервис. Необходимо проверить права у используемого пользователя. Система по умолчанию создаст нового пользователя, от чего имени будет запускать службу:

Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

Настройка кластера 1C. Здесь необходимо указать пароль для пользователя:

Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

Для выполнения данного пункта должна быть запущена служба «Вторичный вход в систему» (secondary logon). Если он не запущен, его следует запустить в списке всех сервисов:

Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

Настройка PostgreSQL под 1С

Опыт эксплуатации баз 1С на PostgreSQL показал, что наибольшей производительности и оптимальной работы 1С и PostgreSQL удалось добиться на linux, поэтому желательно использовать именно ее. Но вне зависимости от операционной системы, важно помнить, что настройки, указанные по умолчанию при установке PostgreSQL, предназначены только для запуска сервера СУБД. Ни о какой промышленной эксплуатации речи идти не может! Следующим шагом после запуска станет оптимизация PostgreSQL под 1С:

  • Для начала отключаем Energy Saving (в противном случае могут непредсказуемо вырасти задержки ответов из БД) и запрещаем своппинг разделяемой памяти.
  • Настраиваем основные параметры сервера СУБД (рекомендации по настройке описаны достаточно подробно, как на официальном сайте вендора, так и компанией 1С, поэтому остановимся только на самых важных).
  • В типовых рекомендациях компании 1С предлагается отключать механизмы HyperThreading. Но тестирование Postgres-pro на серверах, с включенной SMT (simultaneous multi threading), показало другие результаты.

Инструкция по установке PostgreSQL и её первоначальная настройка для 1С 8.3 под ОС Windows

Установка параметра shared_buffers в RAM/4 является рекомендацией по умолчанию, но пример Sql Server говорит о том, что чем больше памяти ему выделяется, тем лучше его производительность (при отключенном сбросе страниц в файл подкачки). То есть, чем больше страниц данных располагаются в оперативной памяти, тем меньше обращений к диску. Возникает вопрос: почему такой маленький кэш? Ответ прост: если shared_buffers большой, то часть неиспользуемых страниц свопируется на диск. Но как отследить момент, когда сброс прекратится, и показатель параметра будет оптимальным? Для достижения и выхода на оптимальный показатель shared_buffers, его значение необходимо поднимать на продуктиве ежедневно (по возможности) с определенным шагом прироста и смотреть, в какой момент начнется сброс страниц на диск (увеличится своп).

  • Помимо этого, на «большой параметр» негативно влияет работа с множеством мелких страниц, которые по умолчанию имеют размер 8Кб. Работа с ними увеличивает накладные расходы. Что можно с этим сделать для оптимизации под 1С? В версии postgreSQL 9.4 появился параметр huge_pages, который можно включить, но только в Linux. По умолчанию включаются огромные страницы с размером по умолчанию 2048 kB. Дополнительно поддержку данных страниц необходимо включить в ОС. Таким образом, оптимизировав структуру хранения, можно выйти на больший показатель shared_buffers.
  • work_mem = RAM/32..64 или 32MB..128MB Задает объем памяти для каждой сессии, который будет использоваться для внутренних операций сортировки, объединения и пр., прежде чем будут задействованы временные файлы. При превышении этого объема, сервер будет использовать временные файлы на диске, что может существенно снизить скорость обработки запросов. Данный параметр используется при выполнении операторов: ORDER BY, DISTINCT, соединения слиянием и пр.
  • Посчитать дополнительно данный параметр можно следующим образом: (Общая память shared_buffers – память на другие программы) / число активных соединений. Это значение можно уменьшать, следя за количеством создаваемых временных файлов. Такую статистику по размеру и количеству временных файлов можно получить из системного представления pg_stat_database.
  • effective_cache_size = RAM – shared_buffers основная задача этого параметра подсказать оптимизатору запроса, какой способ получения данных выбрать: полный просмотр или сканирование по индексу. Чем выше значение параметра, тем больше вероятность использования сканирования по индексу. При этом сервер не учитывает, что данные при выполнении запроса могут оставаться в памяти, и следующему запросу не надо их поднимать с диска.

Кризис дело неприятное… и многие пытаясь сэкономить хоть как-нибудь, и устанавливают на Windows PostgreSQL вместо MS SQL.

Хотя если по Вашей компании небольшие обороты, то лучше поставить MS SQL Server 2014 Express, т.к. по опыту PostgreSQL хорошо работает на Linux, на Windows при настройках по умолчанию PostgreSQL работает медленнее MS SQL Server 2014 Express.

Устанавливаем PostgreSQL 9.2.4-1

Скачиваем официальные пакет с сайта 1С (users.v8.1c.ru) и запускаем установку

Отмечаем объекты к установке, если они не отмечены

Устанавливаем «как сервис». Для работы этого сервиса потребуется специальный пользователь. Указываем учетную запись, домен (если имеется) и пароль.

Если пользователь postgres не заведен в системе, то установщик спросит создать пользователя? — жмем да

Перейдем к следующему шагу и укажем Инициализировать кластер БД, порт 5432 и Кодировку UTF8

Если кластер серверов 1С и PostgreSQLна разных машинах, то ставим галочку «Поддерживать подсоединения с любых IP, а не только с localhost». 

Далее — Может возникнуть ошибка «Secondary Logon». Тогда идем в «Администрирование» – «Службы». Стартуем службу «Вторичный вход в систему» или «Secondary Logon»

Далее отметьте галкой необходимые модули, можно установить все, но для 1С они не нужны, я устанавливаю только Adminpack

Если процесс установки завершается без проблем, то вам повезло )

Чаще бывают проблемы, решение простое и элегантное (бубен можно оставить):

1. Создать/Изменить учетную запись postgres, включить её в группу Администраторы

2. Выйти из системы и войти в неё под учетной записью postgres

3. Запустить установку PostgreSQL

После установки через меню «Пуск» — «Все программы» запускаем утилиту администрирования «pgAdmin III».

Подключаемся к серверу. Там вводим пароль для пользователя «postgres». Если подключиться удалось, попробуем создать новую базу средствами самой 1С.

Запускаем клиентскую часть 1С. Жмем кнопку «Добавить», ставим галочку «Сервер предприятия 1С». Далее заполняем следующее: сервер базы данных (IP или DNS имя того сервера, куда ставили PostgreSQL) — если тот же, что и кластер 1С, то указываем 127.0.0.1. Имя базы данных: [любое_имя]. Пользователь: «postgres» Пароль: [ваш_пароль_postgres]. Далее.

Проверяем, что база 1С создается успешно.

  • Установка приложения как службы windows 10
  • Установка почтового клиента по умолчанию windows 10
  • Установка пакета обновления 1 sp1 для windows 7
  • Установка питона на windows 10 пошагово
  • Установка офиса на windows 10 бесплатно с официального сайта