Установка и настройка 1С на Debian с PostgreSQL
Возможность сэкономить на дорогих лицензиях от Microsoft побуждает многие компании искать альтернативные варианты запуска 1С. Сегодня расскажу об одной из таких альтернатив — установке и настройке сервера 1С на Linux (Debian) в связке с базой данных PostgreSQL. Я не просто покажу, как запустить 1С на Linux, но и поделюсь полной информацией по эксплуатации этой системы, так как имею подобный опыт.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.
Что лучше: MSSQL или PostgreSQL?
Сложно сказать. С одной стороны, крутые исследователи заявляют о том, что правильно настроенный PostgreSQL выигрывает у MSSQL:
И тут я такой: «А если поднять у MSSQL tempdb в RAM диск?» И снова становится непонятно. Но понятно одно, MSSQL стоит денег, а PostgreSQL бесплатный.
Итак, тестовый стенд (или правильнее сказать, реальный?):
- Сервер, виртуальный, операционная система Windows Server 2019 Standard, триальная.
- CPU: 16 ядер
- ОЗУ: 64 ГБ
- Диск SSD, отдельный для БД.
- Размер базы: 50 Гб
- 1С 8.3 и PostgreSQL 11.9-1.1C вместе на одном сервере
- 50 аккаунтов пользователей 1С в настоящее время
По хорошему, мух следует отделять от котлет. И разносить 1С и БД на разные серверы. Однако, на практике, часто бывает иначе. Сервер имеется один, на нём размещают и базу и сервер 1С. И это не просто предположение, вчера привезли новый сервер и поставили задачу: установить Windows, MSSQL и 1С. Всё на одну машину. Но это немного другая история, не связанная с текущей.
Установка PostgreSQL в стандартном виде, достаточном для запуска 1С без дополнительных настроек
Выбираем русский язык и двигаемся дальше.
Пока все просто, «далее».
Опции установки можно не менять, 1С работать будет. Далее.
Postgre, как и сервер 1С, может сам создать пользователя, под которым будете запускаться служба. Обращаю ваше внимание на то, что если указать учетную запись с правами администратора, то служба корректно работать не будет. Обязательно создавайте нового пользователя.
Следующее окно установки.
Инициализируем кластер. Если у нас сервер баз данных и сервер приложений 1С находятся на разных компьютерах, тогда устанавливаем галочку «Поодерживать подсоединения с любых IP», иначе не трогаем. Обязательно указываем кодировку UTF8. Создаем суперпользователя СУБД. Далее…
Уже почти все. Далее.
Для начальной работы нам ничего дополнительного не нужно, снимаем галочку, завершаем установку.
Результат наших усилий — готовый к работе PostgreSQL. Если нас устраивает, что базы будут лежать в Program FilesPostgreSQL9.1.2-1.1Cdata — заканчиваем на этом, раскрываем базы и наслаждаемся процессом. Однако, чаще все-таки базы данных «лежат» на специально предназначенных для этого дисковых массивах, а не на системном диске. Для того, чтобы настроить расположение данных, перед установкой прочитайте следующий раздел.
Сервер баз данных не обнаружен
could not translate host name «NAME» to address: Temporary failure in name resolution
На первый взгляд ошибка понятна: клиент не может разрешить имя сервера СУБД, типичная ошибка для небольших сетей, где отсутствует локальный DNS-сервер. В качестве решения добавляют запись в файл hosts на клиенте, что не дает никакого результата.
А теперь вспоминаем, о чем было сказано несколько раньше. Клиентом сервера СУБД является сервер 1С, но никак не клиентский ПК, следовательно запись нужно добавлять на сервере 1С:Предприятие в файл /etc/hosts на платформе Linux или в C:WindowsSystem32driversetchosts на платформе Windows.
Аналогичная ошибка будет возникать, если вы забыли добавить запись типа A для сервера СУБД на локальном DNS-сервере.
Установка зависимостей для PostgreSQL
10)Удаление пакета PostgreSQL
11)Ошибки при установке PostgreSQL
dpkg: зависимости пакетов не позволяют настроить пакет postgresql-10:
postgresql-10 зависит от postgresql-common (>= 182~), однако:
Пакет postgresql-common не установлен.
postgresql-10 зависит от ssl-cert, однако:
Пакет ssl-cert не установлен.
postgresql-10 зависит от libicu55 (>= 55.1-1~), однако:
Пакет libicu55 не установлен.
dpkg: ошибка при обработке пакета postgresql-10 (—install):
проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет postgresql-client-10:
postgresql-client-10 зависит от postgresql-client-common (>= 182~), однако:
Пакет postgresql-client-common не установлен.
dpkg: ошибка при обработке пакета postgresql-client-10 (—install):
проблемы зависимостей — оставляем не настроенным
Обрабатываются триггеры для libc-bin (2.27-3ubuntu1) …
При обработке следующих пакетов произошли ошибки:
postgresql-10
postgresql-client-10
http://infostart.blog-buh.ru/public/502542/
12)Проверка работы сервиса PostgreSQL:
● postgresql.service — PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor prese
Active: active (exited) since Wed 2018-08-22 19:15:16 UTC; 4min 49s ago
Main PID: 23794 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4636)
CGroup: /system.slice/postgresql.service
авг 22 19:15:16 srv-db systemd[1]: Starting PostgreSQL RDBMS…
авг 22 19:15:16 srv-db systemd[1]: Started PostgreSQL RDBMS.
13)Проверка порта tcp 5432 PostgreSQL
tcp LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* users:((«postgres»,pid=25968,fd=3))
tcp LISTEN 0 128 [::]:5432 [::]:* users:((«postgres»,pid=25968,fd=6))
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN —
tcp6 0 0 . 5432 . * LISTEN
14)Аутентификация клиента postgresql контролируется конфигурационным файлом, который обычно
называется pg_hba.conf и хранится в каталоге кластера БД. (HBA означает host-based
authentication — аутентификацию на основе хоста.)
Какой ип сеть прослушивать tcp, звезда — все сетевые интерфейсы
/etc/postgresql/10/main/postgresql.conf
15)Добавление сервиса postgresql в автозагрузку
запуск сервиса postgresql
16)Теперь установим пароль пользователя postgresql командой:
Восстановление БД Postgree
Для восстановления, выбираем базу, в которую хотим восстановить данные из резервной копии, желательно в пустую. Щелкаемся правой кнопкой и выбираем «Восстановление». Задаем файл бэкапа, имя роли: postgres, нажимаем «Восстановить»С помощью командной строки:
где, testdb — пустая база, в которую восстанавливается архив резервной копии.
Описание структуры сервиса
Для правильного функционирования сервиса должна быть описана его структура.
Настройки доступа
На вкладке «Администрирование» открываем «Настройки конфигурации» → «Настройки доступа», пропишем внешний и внутренний адреса менеджера сервиса и пароль для пользователя удаленного доступа RemoteAccess.
В качестве внешнего адреса будет fapache.knopka.int/ext/sm
В качестве внутреннего fapache.knopka.int/int/sm
Для начала этого будет достаточно, к настройкам остальных полей вернемся позже.
Сегменты сервиса
На вкладке «Администрирование» открываем «Сегменты сервиса» и создаем новый сегмент. Назовем его «Локальная сеть».
Регистрация версий платформы 1С: Предприятие
В сервисе допускается использование нескольких кластеров серверов, использующих разные платформы. Каждую версию платформы нужно зарегистрировать в менеджере сервиса.
«Администрирование» → «Версии платформы 1С: Предприятие»
Регистрация серверов администрирования (ras)
«Администрирование» → «Серверы администрирования (ras)». Добавляем все серверы, где поднят ras, например:
Регистрация рабочих серверов
«Администрирование» → «Рабочие серверы». Добавим все наши рабочие серверы и учетную запись администратора рабочего сервера:
Регистрация кластера серверов
«Администрирование → Кластеры». Добавим кластеры и учетную запись администратора кластера:
Регистрация менеджера сервиса
«Администрирование → Конфигурации». Создаем новую конфигурацию, тип конфигурации для менеджера сервиса — «Управляющая». Имя конфигурации должно в точности совпадать с именем конфигурации в Конфигураторе.
В этом же окне в левой части выбираем «Версии конфигурации» и создаем новую запись, выбрав «Ввести информацию о версии вручную». Сейчас файл конфигурации можно не добавлять, это нужно только для обновления конфигурации на эту версию. Остальные поля заполняем так:
Теперь надо зарегистрировать информационную базу менеджера сервиса: «Администрирование → Информационные базы». Заполняем как на скриншоте, не забываем поставить галочку «на поддержке».
Далее заходим в «Администрирование → Менеджеры сервиса» и добавляем запись:
Возвращаемся в «Администрирование» открываем «Настройки конфигурации» → «Настройки доступа» и выберем в поле «Этот менеджер сервиса» наш менеджер сервиса.
На данный момент описание структуры сервиса можно закончить, к дополнительным настройкам веб-серверов и их групп вернемся позже, когда будет функционировать шлюз приложений.
Создание базы 1С на Постгри
Создание базы — очень простой процесс. В списке баз необходимо нажать «Добавить», выбрать пункт «Создание новой информационной базы», указать название базы и выбрать вариант расположения — «На сервере 1С: Предприятия», где заполнить настройки подобно указанным на скриншоте:
Где пароль и имя пользователя те, которые Вы указывали на этапе настройки кластера.
Вот и всё — можно работать с системой.
Другие статьи по 1С:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.