Какие порты открыть для 1с сервера 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.
Подробный вариант пересоздания кластера
2.Из под админских прав запускаем cmd. Если это делаете в win7, то запускаем от Администратора.
4.Проводим инициализацию кластера вручную с указанием пути где он будет находиться.
5.Удаляем службу PostgreSQL, которая была установлена в ходе установки.
sc delete pgsql-9.1.2-1.1C-x64
Где pgsql-9.1.2-1.1C-x64 – Это название службы. Если не знаете название точно, можно посмотреть свойствах службы “PostgreSQL Database Server…” (Пуск – Панель управления – Администрирование – Службы )
6.Создаем новый сервис с указанием нашего кластера
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. Создадим правило через стандартный интерфейс, либо с помощью команды:
Теперь с другого компьютера мы спокойно запускаем клиент 1С:Предприятия, добавляем существующую информационную базу newdb. Не забываем про лицензии, программной / аппаратной защиты.
Резервное копирование
Создание дампа базы данных делаем командой
Восстановление из дампа
Периодическое обслуживание
Рекомендуется настроить AVTO VACUUM в файле конфигурации. Но не пренебрегаем и запуском через планировщик принудительной команды.
Просмотр активности PostgreSQL
Иногда полезно видеть чем сейчас занимается сервер. Поможет такая конструкция:
Вариант использования в качестве сервера баз данных PostgreSQL на windows платформе не очень популярен, но имеет место быть как правило, когда необходимо хоть как-то сэкономить на продуктах от MS. Так же существуют специализированные приложения, которые наилучшим образом работают с PostgreSQL. Для 1с существует модифицированная сборка PostgreSQL дающая как уверяют разработчики сопоставимый с MSSQL уровень производительности и отказоустойчивости. Так ли это на самом деле, проверим на практике :)
1. Установка PostgreSQL
Качаем с сайта 1с последнюю сборку PostgreSQL 64-bit 9.1.2-1.1C, распаковываем архив, запускаем msi-пакет, тот что без int, имеет не большой размер файла.
Нажимаем Start.
Опции установки оставляем по умолчанию.
Задаем пароль пользователю postgres от которого будет стартовать сервис. Нажимаем Далее. Если установка PostgreSQL производится впервые, то мастер предложит создать пользователя postgres.
На этапе инициализации БД, выбираем кодировку UTF8. Задаем логин и пароль внутреннему пользователю postgres. Внимание! Пароли пользователя сервиса PostgreSQL и пароль внутреннего пользователя БД PostgreSQL не должны совпадать. Пароль должен состоять как минимум из четырех символов. Если сервер 1C и PostgreSQL планируется запускать на разных машинах, то необходимо поставить галочку "Поддерживать соединения с любых IP, а не только с localhost". Нажимаем Далее и еще раз Далее. :)
Нажимаем еще два раза Далее и дожидаемся окончания установки.
Затем идем в Start\All Programs\PostgreSQL 9.1.2-1.1C(x64). Запускаем утилиту администрирования pgAdmin III. Пробуем подключится к БД. Вводим пароль, который указывали во время установки.
И получаем следующую ошибку: Error connecting to the server: FATAL: password authentication failed for user "postgres".
Довольно неожиданно, с учетом того, что пароль был набран верно. Решил поковырять pg_hba.conf, но на первый взгляд там все хорошо.
Действительно на сайте pgAdmin доступна уже более новая версия. После чего подключение к БД завершается успехом. Помнится, ранее md5 не вызывал подобных проблем, видимо данный глюк действительно связан со старой версией pgAdmin'a.
Теперь можем создать базу для нужд 1С, либо сделать это при помощи самой 1С :)
2. Установка 1C предприятие 8.2.
Для установки отметим, следующие компоненты: 1С:Предприятие, Сервер 1С:Предприятия, Модули расширения веб-сервера, Администрирование сервера 1С:Предприятия.
На этапе, установки "Установить 1С Предприятие как сервис", задаем пароль пользователю USR1C82.
Нажимаем далее, следим за ходом установки :) Пользователю USR1CV82 при установке должны быть назначены следующие права:
Переходим в оснастку Администрирование серверов 1С Предприятие, смотрим что кластер поднялся, и висит на 1541 порту. На вкладке "Рабочие серверы" так же присутствует наш сервер.
Теперь, можно добавить базу на сервер 1С. Для этого переходим на вкладку "Информационные базы" щелкаемся правой кнопкой и выбираем New - Информационная база. Задаем необходимые параметры для подключения к серверу PostgreSQL. Нажимаем ОК.
Запускаем 1С: Предприятие. Выбираем, добавить существующую информационную базу на сервере.
Далее, задаем параметры для подключения. Нажимаем "Далее" и наконец "Готово".
Операцию по созданию базы, можно проделать напрямую из 1С: Предприятия. Для этого при запуске, выбираем пункт "Создание новой информационной базы".
Для подключения клиентов 1С к серверу извне и работы сервера баз данных, на файрволе, должны быть открыты следующие порты:
Агент сервера (ragent) - tcp:1540 Главный менеджер кластера (rmngr) - tcp:1541 Диапазон сетевых портов, для динамического распределения рабочих процессов - tcp:1560-1591, tcp:5432 - Postgresql. Создадим правило через стандартный интерфейс, либо с помощью команды:
Теперь с другого компьютера мы спокойно запускаем клиент 1С:Предприятия, добавляем существующую информационную базу newdb. Не забываем про лицензии, программной / аппаратной защиты. Теперь, можем загрузить тест Гилева и померить производительность нашей системы.
На VirtualBox с 1Гб памяти, Dual-Core 2.6 GHz, 319-релиз 1с, тест Гилева выдает - 11.42 баллов, примерно так же как на CentOS. На 16.362 чуть больше 11.60 баллов. Оптимизация настроек при помощи EnterpriseDB Tuning Wizard ощутимого прироста (11.66 и 11.62) не дала, хотя возможно в целом польза от него имеется. :)
3. Регламентные работы на сервере PostgreSQL.
Резервное копирование.
Запускаем утилиту администрирования pgAdmin III, щелкаемся правой кнопкой по нужной базе данных. Выбираем ''Резервное копирование".
Соответственно, скрипт автоматического резервного копирования, который мы добавим в планировщик может выглядеть примерно следующим образом:
Восстановление.
Для восстановления, выбираем базу, в которую хотим восстановить данные из резервной копии, желательно в пустую. Щелкаемся правой кнопкой и выбираем "Восстановление". Задаем файл бэкапа, имя роли: postgres, нажимаем "Восстановить"
С помощью командной строки:
где, testdb - пустая база, в которую восстанавливается архив резервной копии.
Операции по обслуживанию:
Команда VACUUM (Сжатие):
Последовательно чистит все таблицы базы данных, подключенной в настоящий момент, удаляет временные данные и освобождает место на диске. Чаще всего команда VACUUM выполняется именно для получения максимального объема свободного дискового пространства на диске и увеличения скорости доступа к данным.
VACUUM - помечает место, занимаемое старыми версиями записей, как свободное. Использование этого варианта команды, как правило, не уменьшает размер файла, содержащего таблицу, но позволяет не дать ему бесконтрольно расти, зафиксировав на некотором приемлемом уровне. При работе VACUUM возможен параллельный доступ к обрабатываемой таблице. Существует несколько дополнительных опций использования VACUUM : VACUUM FULL, VACUUM FREEZE, VACUUM ANALYZE.
VACUUM FULL - пытается удалить все старые версии записей и, соответственно, уменьшить размер файла, содержащего таблицу. Этот вариант команды полностью блокирует обрабатываемую таблицу.
VACUUM FREEZE - Если VACUUM FULL удаляет «мусор» из таблиц и перемещает записи так, чтобы таблицы располагались на диске компактно и состояли из наименьшего числа фрагментов, при этом сжатие выполняется долго и блокирует записи, то VACUUM FREEZE просто удаляет «мусор» из таблиц, но сами записи не перемещает, поэтому выполняется быстрее и не блокирует записи. В настоящий момент эту опцию заменяет autovacuum - автоматическая сборка мусора в postgresql.conf плюс несколько дополнительных опций расширяющих функциональность:
VACUUM ANALYZE - Если в базе есть таблицы, данные в которых не изменяются и не удаляются, а лишь добавляются, то для таких таблиц можно использовать отдельную команду ANALYZE. Также стоит использовать эту команду для отдельной таблицы после добавления в неё большого количества записей.
Команда ANALYZE (Анализ):
Служит для обновления информации о распределении данных в таблице. Эта информация используется оптимизатором для выбора наиболее быстрого плана выполнения запроса. Обычно команда используется в связке с VACUUM ANALYZE.
Команда REINDEX (переиндексация):
Используется для перестройки существующих индексов. Использовать её имеет смысл в случае
- постоянного увеличения его размера.
Второй случай требует пояснений. Индекс, как и таблица, содержит блоки со старыми версиями записей. PostgreSQL не всегда может заново использовать эти блоки, и поэтому файл с индексом постепенно увеличивается в размерах. Если данные в таблице часто меняются, то расти он может весьма быстро. Если вы заметили подобное поведение какого-то индекса, то стоит настроить для него периодическое выполнение команды REINDEX. Учтите: команда REINDEX, как и VACUUM FULL, полностью блокирует таблицу, поэтому выполнять её надо тогда, когда загрузка сервера минимальна.
Можно значительно сократить затраты на программное обеспечение, установив сервер 1С на Linux. В данной инструкции мы рассмотрим процесс настройки сервера 1C 8.3 на Ubuntu 18.04 или 20.04 с сервером баз данных (не файловый вариант). В качестве СУБД мы будем использовать PostgreSQL (на примере версий 9.6, 10, 12 и 13).
Выбор операционной системы должен, в первую очередь, базироваться на основе официальных системных требованиях. Прежде чем сделать окончательный выбор, ознакомьтесь с ними.
Подготовка системы
Задаем имя сервера
Чтобы сервер 1С мог запуститься без ошибки, необходимо ему задать корректное имя:
Настройка брандмауэра
Для корректной работы сервера, необходимо открыть порты:
- 1540 и 1541 для сервера 1С.
- 1560 — запросы к базе данных.
По умолчанию, в Ubuntu действует разрешающая политика и настройка брандмауэра не требуется. В противном случае, вводим команды:
iptables -I INPUT 1 -p tcp --dport 1540:1541 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 1560 -j ACCEPT
И сохраняем правила с помощью iptables-persistent:
apt-get install iptables-persistent
Установка PostgreSQL
Как было сказано выше, мы задействуем СУБД PostgreSQL. Для 1С требуется специальная сборка postgresql, которая может быть установлена из специального дистрибутива или от поставщика 1С. Рассмотрим установку как версии 9.6, так и 10.
Подготовка к установке СУБД
Настраиваем локаль, введя команду:
В открывшемся окне выбираем локаль ru_RU.UTF-8 UTF-8:
Нажимаем OK. В следующем окне также выбираем ru_RU.UTF-8:
. и нажимаем OK.
* Если мы устанавливали русскую версию Linux, возможно, данные настройки уже будут выставлены. Так или иначе, стоит в этом убедиться.
Установка PostgreSQL 9.6 из репозитория
PostgreSQL 9.6 для 1С можно установить из репозитория. Для начала, добавим его:
Установим цифровую подпись для репозитория:
Обновляем списки пакетов:
Устанавливаем библиотеку libpq5 версии 9.6, собранной для postgresql под 1С:
apt-get install libpq5=9.6.*.1C.bionic
Выполняем установку самого PostgreSQL:
apt-get install postgresql-pro-1c-9.6
Установка PostgreSQL 10 от 1С
Сначала устанавливаем компоненты, необходимые для установки СУБД из пакетов.
dpkg -i libicu55_55.1-7_amd64.deb
* libicu55 — Unicode-компоненты для интернационализации.
Теперь устанавливаем postgresql-common:
apt-get install postgresql-common
* postgresql-common позволяет одновременную установку нескольких версий PostgreSQL.
Устанавим пакет libssl:
* если команда вернет ошибку, точное название для новой версии libssl смотрим, перейдя по ссылке.
dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.4_amd64.deb
Переходим к установки самой СУБД. 10-я версия PostgreSQL может быть установлена из дистрибутива, полученного от 1С (в личном кабинете или от поставщика). Архив с дистрибутивом postgresql, в свою очередь, содержит архивы под различные операционные системы — нам нужен файл с окончанием в названии . amd64_deb.tar.bz2
* в данном примере взят файл для 64-х разрядной версии операционной системы. Пакет deb (для систем на базе Debian).
Копируем данный файл на сервер (например, с помощью программы WinSCP) и распаковываем его:
tar jxvf PostgreSQL_10.*.1C_postgresql_10.*.1C_amd64_deb.tar.bz2
Выполним установку пакетов из папки . amd64_deb.
dpkg -i postgresql-10.*.1C_amd64_deb/*.deb
sudo -u postgres /usr/lib/postgresql/10/bin/initdb -D /var/lib/postgresql/10/main --locale=ru_RU.UTF-8
* при инициализации для нас важно задать русскую локаль. В противном случае мы можем получить ошибку «Порядок сортировки не поддерживается базой данных».
Установка PostgreSQL 12 от 1С
Устанавим пакет libssl:
* если команда вернет ошибку, точное название для новой версии libssl смотрим, перейдя по ссылке.
dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.4_amd64.deb
apt-get install libllvm6.0
Распаковываем архив с postgresql:
tar jxvf postgresql_12.*.1C_amd64_deb.tar.bz2
Устанавливаем по очереди
dpkg -i postgresql-12.*.1C_amd64_deb/libpq5_12.*.1C_amd64.deb
dpkg -i postgresql-12.*.1C_amd64_deb/postgresql-client-12_12.*.1C_amd64.deb
dpkg -i postgresql-12.*.1C_amd64_deb/postgresql-12_12.*.1C_amd64.deb
sudo -u postgres /usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --locale=ru_RU.UTF-8
* при инициализации для нас важно задать русскую локаль. В противном случае мы можем получить ошибку «Порядок сортировки не поддерживается базой данных».
PostgreSQL Pro для 1С
Для работы 1С рекомендуется установить специальный выпуск PostgreSQL Pro. Она также может быть загружена и установлена бесплатно.
После заполняем форму для получения инструкции по установке СУБД:
На указанную почту придет инструкция по установке PostgreSQL.
Пример установки PostgreSQL Pro 13. Скачиваем скрипт для установки репозитория:
apt-get install gnupg2
* без данного пакета при попытке установить репозиторий мы получим ошибку:
E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
Error adding key.
Запускаем скачанный скрипт:
Запускаем установку СУБД:
apt-get install postgrespro-1c-13
systemctl enable postgrespro-1c-13
systemctl stop postgrespro-1c-13
Удаляем содержимое каталога data:
rm -rf /var/lib/pgpro/1c-13/data/*
* в противном случае, при попытке инициализировать базу мы получим ошибку Data directory /var/lib/pgpro/1c-13/data is not empty!
/opt/pgpro/1c-13/bin/pg-setup initdb --tune=1c --locale=ru_RU.UTF-8
Запускаем сервис postgrespro:
systemctl start postgrespro-1c-13
Действия после установки postgres
Если мы установили PostgreSQL Pro версию, выполним только первую настройку.
Пароль для пользователя postgres
Задаем пароль для пользователя postgres:
* данную команду мы запускаем под пользователем postgres; мы задаем пароль password для postgresql-пользователя postgres. Дополнительная команда history -d $((HISTCMD-1)) удалить из истории строку с паролем.
Остальные настройки выполняем для PostgreSQL не Pro версии.
Автозапуск
Разрешаем автозапуск сервиса баз данных и стартуем его:
systemctl enable postgresql --now
Блокировка обновлений PostgreSQL
Так как для 1С устанавливается специальная сборка СУБД, необходимо запретить ее обновление. В противном случае будет установлен обычныйpostgresql, что приведет к потери работоспособности сервера.
Смотрим версию установленного сервера баз данных:
dpkg -l | grep postgresql
ii postgresql-10 10.10-4.1C .
ii postgresql-client-10 10.10-4.1C .
.
И так, у нас установлена версия 10.10-4.1C. Вводим:
* где 10.10-4.1C — версия установленного PostgreSQL. Команда apt-mark hold блокируем установку обновлений для пакетов версии 10.10-4.1C.
apt-mark hold postgresql-common postgresql-client-common
Установка сервера 1С
Для установки сервера 1С необходимо сначала установить вспомогательные пакеты, затем сам сервис. Дистрибутив необходимо скачать с сайта 1С — личного кабинета, доступного по подписке.
И так, выполним установку следующих пакетов:
apt-get install imagemagick unixodbc ttf-mscorefonts-installer
- imagemagick — набор программ для чтения и редактирования графических файлов.
- unixodbc — диспетчер драйверов для ODBC.
- ttf-mscorefonts-installer — набор шрифтов Microsoft.
В процессе установки система запросит принять лицензионное соглашение — выбираем Yes.
Копируем на сервер архив с дистрибутивом для 1С, который был загружен с сайта 1С или получен от поставщика. Распаковываем архив командой:
tar zxvf 8.3.16.1148_deb64.tar.gz
* где 8.3.16.1148_deb64.tar.gz — имя архива с 1С версии 8.3.16. В архиве пакеты deb (для Linux на основе Debian) для 64-х разрядной системы.
Устанавливаем все пакеты, которые находились в архиве командой:
dpkg -i 1c-enterprise*.deb
Разрешаем автозапуск сервиса 1С и стартуем его:
systemctl enable srv1cv83
systemctl start srv1cv83
Необходимо убедиться, что сервис запустился:
systemctl status srv1cv83
Если мы получим ошибку «srv1cv83.service not found», находим исполняемый файл srv1cv83:
find /opt -name srv1cv83
В моем случае он был по пути:
Делаем симлинк в каталоге /etc/init.d на найденный файл:
ln -s /opt/1cv8/x86_64/8.3.16.1148/srv1cv83 /etc/init.d/srv1cv83
Снова запускаем сервис:
systemctl start srv1cv83
Настройка кластера и клиента
На любой компьютер в сети установим толстый клиент 1С:Предприятие той же версии, что и сервер. Во время установки обязательно выбираем компонент Администрирование сервера 1С:Предприятие:
Теперь запускаем утилиту Администрирование серверов 1С Предприятия:
В открывшемся окне кликаем правой кнопкой мыши по Central 1C:Enterprise 8.3 servers - выбираем Создать - Центральный сервер 1С:Предприятие 8.3:
Пишем имя сервера 1С или его IP-адрес:
. и нажимаем OK. В панели управления появится подключение — переходим в раздел Кластеры - Локальный кластер - кликаем правой кнопкой по Информационные базы - выбираем Создать - Информационная база:
Заполняем параметры для создания новой базы:
* в данном примере нами были заполнены:
- Имя — задаем произвольное имя для подключения к базе.
- Сервер баз данных — имя или IP-адрес базы. Задаем localhost, так как в нашем случае сервер 1С и сервер баз данных находятся на одном сервере.
- Тип СУБД — выбираем PostgreSQL.
- База данных — имя базы данных.
- Пользователь сервера БД — пользователь, под которым будет выполняться подключение к базе. В нашем примере postgres.
- Пароль пользователя БД — пароль для базы, который мы задали после установки СУБД.
- Создать базу данных в случае ее отсутствия — ставим галочку, чтобы база была создана.
Если мы получим ошибку Этот хост неизвестен:
. необходимо убедиться, что имя сервера разрешается в IP-адрес. Для этого необходимо его добавить в локальную DNS или файл hosts.
База должна создастся. Теперь запускаем 1С клиент и добавляем новую базу - при добавлении выбираем Добавление в список существующей информационной базы:
Указываем произвольное имя информационной базы, а также выбираем тип расположения базы На сервере 1С:Предприятия:
Нажимаем Далее и Готово. Запускаем конфигуратор, загружаем базу и пользуемся.
HASP Licence manager
Если в сервер вставлен аппаратный ключ, необходимо установить HASP Licence manager, чтобы лицензии могли получать компьютеры по сети.
Проверяем, что наш сервер видит ключ:
lsusb | grep -i hasp
Мы должны увидеть что-то на подобие:
Bus 001 Device 003: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 002: ID 0529:0001 Aladdin Knowledge Systems HASP copy protection dongle
Устанавливаем необходимые пакеты:
apt-get install make libc6-i386
- make — утилите, которая в нашем случае используется для компиляция исходного кода.
- libc6-i386 — набор стандартных библиотек для С и математических вычислений.
Создадим каталог для загрузки пакетов и перейдем в него:
mkdir /tmp/hasp ; cd /tmp/hasp
Переходим на страницу загрузки HASP для Ubuntu. Выбираем необходимую версию и копируем ссылки на 2 файла — haspd-modules_. и haspd_.
На момент обновления инструкции на сайте не было пакетов для Ubuntu 20, однако, для данной версии подходят пакеты под Ubuntu 18.
С помощью скопированных ссылок загружаем на сервер два файла:
* в моем примере загрузка выполнялась для Ubuntu 18.04.
Выполним установку скачанных пакетов командой:
dpkg -i haspd*.deb
Разрешим автозапуск сервиса haspd:
systemctl enable haspd
systemctl start haspd
Проверяем, что он корректно стартовал и работает:
systemctl status haspd
Готово — наши компьютеры в локальной сети смогут получить лицензию.
Миграция базы на PostgreSQL
В случае, если это не первая установка и у нас уже есть база, ее нужно перенести на новый сервер. Рассмотрим 2 варианта — база была на другом сервере PostgreSQL и универсальный (файловый вариант или другая СУБД).
С PostgreSQL на PostgreSQL
В данном случае процесс переноса заключается в создании дампа (backup) и его восстановления на новом сервере (restore). Необходимо учесть, что для корректного переноса данных, версии 1С должны совпадать.
Есть несколько инструментов по созданию резервных копий PostgreSQL и их восстановлению. Их описание выходит за рамки данной статьи — подробнее читайте инструкцию Резервное копирование PostgreSQL.
Универсальный способ миграции на PostgreSQL
Данный способ также подойдет и для миграции с PostgreSQL на PostgreSQL. Для начала, открываем нашу базу в конфигураторе на старом 1С - кликаем по Администрирование - Выгрузить информационную базу:
Выбираем путь для сохранения файла. Ждем окончания выгрузки и переносим полученный файл на компьютер с толстым клиентом 1С (если для нового сервера мы используем другой компьютер с 1С).
Открываем конфигуратор для созданной в PostgreSQL базы - кликаем Администрирование - Загрузить информационную базу:
. и выбираем выгруженный ранее файл. Дожидаемся его загрузки - система потребует перезапустить 1С - соглашаемся. Ждем новой загрузки. После можно пользоваться базой 1С на новом сервере.
Веб-публикации
Сервер 1С поддерживает возможность веб-публикаций баз 1С. Это дает возможность открывать программу в браузере или мобильном приложении. В Linux данные публикации осуществляются с помощью Apache.
Установка и запуск Apache
Первым делом, устанавливаем веб-сервер apache:
apt-get install apache2
Разрешаем автозапуск веб-сервера и стартуем сам сервис:
systemctl enable apache2
systemctl start apache2
Публикация 1С на веб-сервере
Публикация базы выполняется с помощью скрипта webinst, который устанавливается с сервером. Для простоты, мы опубликуем базу в корневую директорию /var/www/html, но при желании, можно настроить виртуальные домены.
И так, создадим каталог, в который опубликуем нашу базу:
Переходим в каталог с установленным 1С:
* где 8.3.16.1148 — версия установленной платформы.
Заускаем скрипт для публикации базы:
./webinst -apache24 -wsdir test -dir /var/www/html/test -connstr "Srvr=192.168.1.11;Ref=test;" -confPath /etc/apache2/apache2.conf
* где apache24 — версия установленного apache; test — имя нашей базы, которую мы создали ранее; /var/www/html/test — путь до каталога на сервере, в котором будет опубликована база; 192.168.1.11 — IP-адрес сервера 1С; Ref=test — имя базы в СУБД; /etc/apache2/apache2.conf — путь до конфигурационного файла apache.
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 – размер файла
Сервер: i5-9400, ОЗУ DDR4 16 Гб, SSD 256, ОС Windows Server 2008R2 x64
Установка и настройка PostgreSQL:
1. Подготовка:
Перед установкой и настройкой рекомендуется отключить протокол IPv6, иначе это может затруднить дальнейшую настройку.
Также необходимо установить Microsoft Visual C++ 2015 (на сайте 1С он идет в комплекте)
Также заранее рекомендуется включить службу "Вторичный вход в систему", иначе при установке будет ошибка.
2. Процесс установки
Далее указываем путь установки программы (его не меняем) и путь, где будут располагаться БД (его рекомендуется сменить, чтобы БД хранились не на системном диске)
Если вы не запустили службу "Вторичный вход в систему" то у вас будет ошибка, ее можно включить на этапе установки и продолжить:
После установки запускаем консоль администратора "Пуск-PostgreSQL 11.5-7.1C(x64)-pgAdmin 4"
На этом установка PostgreSQL закончена.
3. Установка 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С Предприятия закончена.
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:
После чего запускаем службу PostgreSQL и можно работать.
Так же иногда по какой то причине после загрузки в PostgreSQL в базе отключается "Полнотекстовый поиск", поэтому после настройки рекомендуется проверить и включить если выключено и обновить индексы (все функции-стандартные-управление полнотекстовым поиском).
Читайте также: