Рассмотрим установку PostgreSQL+1С на Ubuntu — актуальная на 2023 год сборка.
В данной инструкции задействована ВМ с ОС Ubuntu Server 22.04 LTS. Рекомендованные минимальные характеристики для данных сервисов следующие: 6 ядер ЦП, 60 ГБ системный диск SSD и как минимум 12 ГБ ОЗУ. Однако, ресурсы следует рассчитывать из дальнейшего сценария использования и количества пользователей, работающих в базах.
Установка PostgreSQL
Если установлена английская версия Ubuntu, то требуется переконфигурировать локали с помощью команды:
$ sudo dpkg-reconfigure locales
И выбрать ru_RU.UTF-8 UTF-8 (по умолчанию число номер 392), а затем перезагрузить сервер.
Далее приведена последовательность действий, необходимых для успешной установки PSQL:
- Добавить репозиторий последней актуальной версии PSQL (на момент написания данной инструкции таковой является 15.4)
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' $ wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
- Обновить пакеты:
$ sudo apt update && sudo apt upgrade
- Скачать последнюю актуальную версию патченого PosgtreSQL с портала ИТС.
- Распаковать и установить скачанный архив вместе с зависимостями.
$ tar -xvf postgresql_15.1_4.1C_amd64_deb.tar.bz2 $ cd postgresql_15.1_4.1C_amd64_deb && sudo apt install ./* -y
- Настроить конфигурацию:
$ sudo nano /etc/postgresql/15/main/postgresql.conf
Раскомментируем эту строчку и присваиваем ей следующее значение:
listen_address = ‘*’
- В конфигурации настроить autovacuum для предотвращения деградации базы
Раскомментировать следующие строчки и предаём им следующие значения:
autovacuum = on autovacuum_max_workers = x # (где x — половина от количества ядер ЦП на сервере СУБД) autovacuum_vacuum_cost_delay = x # (x — пропорционально количеству количеству воркеров, т.е. если кол-во воркеров, например, 6 – увеличиваем значение по умолчанию в два раза) autovacuum_vacuum_scale_factor = 10 autovacuum_analyze_scale_factor = 0.5
- Также хорошей практикой будет вынести базы на отдельный диск, для этого:
Создаём отдельную директорию (например, /var/lib/postgesqldb ) и монтируем раздел нашего SSD-диска (в нашем случае — это /dev/sda2).
Отключаем службу psql:
$ sudo systemctl stop postgresql $ sudo mkdir -p /var/lib/postgesqldb && sudo chown postgres:postgres /var/lib/postgresqldb && sudo mount /dev/sda2 /var/lib/postgresqldb
Находим строчку data_directory и заменяем значение на ‘/var/lib/postgesqldb’. После чего инициализируем там кластер PSQL:
$ sudo -u postgres /
И заодно добавим в fstab директорию для хранения баз, чтобы она не размонтировалась при следующем перезапуске. Для этого нужно зайти в blkid и найти UUID раздела.
$ blkid
Заходим в /etc/fstab:
$ sudo nano /etc/fstab
И добавляем следующую строчку:
UUID=xxxx-xxxx-xxxxxx-xxx /var/lib/postgresqldb auto rw,user,auto 0 0
(Где иксы заменяем на UUID раздела, который нашли в blkid).
- Дополнительно, если планируется получать доступ к БД с другого компьютера, то следует разрешить подключения к базе в pg_hba.conf. В рассматриваемом нами случае планируется подключение к базам только из локальной сети, поэтому разрешим подключения ко всем базам от всех пользователей СУБД в подсети:
$ sudo nano /etc/postgresql/15/main/pg_hba.conf
Добавляем строчку:
host all all 192.168.89.0/24 md5
При необходимости открыть доступ к базе извне, вместо all all указываем базу данных и пользователя соответственно, а подсеть заменяем на 0.0.0.0/0.
- После проделанных настроек перезапускаем службу и проверяем, что она работает:
$ sudo systemctl restart postgresql.service && sudo systemctl status postgresql.service
Если всё настроено правильно, то будет следующий вывод:
- Меняем пароль для пользователя postgres для подключения к базе:
$ sudo -u postgres psql -U postgres -c "alter user postgres with password 'postgrespwd';"
Вместо postgrespwd можем указать свой пароль.
Установка сервера 1С
- Скачиваем нужную нам версию сервера 1С на портале ИТС.
- Распаковываем с помощью tar архив и запускаем файл .run:
sudo ./setup-full-8.3.21.1393-x86_64.run
- Дальше следуем указаниям в установщике, после успешной установки создаём сервис службы 1С. Для этого нужно убедиться, что создался пользователь usr1cv8, либо создать его самостоятельно:
$ sudo cat /etc/passwd
- Если в списке есть пользователь, то продолжаем дальше, если нет, то создаём вручную:
$ sudo useradd usr1cv8 -mp ‘password’
- Далее нужно найти директорию запускаемого файла ragent, в нашем случае это /opt/1cv8/x86_64/8.3.21.1393/ragent. Создаём сервис: нужно открыть файл в текстовом редакторе, записать содержание и сохранить файл:
$ sudo nano /etc/systemd/system/1CServer.service [Unit] Description=1C Server agent After=network.target [Service] Restart=Always User=usr1cv8 ExecStart=/opt/1cv8/x86_64/8.3.21.1393/ragent [Install] WantedBy=multi-user.target
- Затем обновляем список служб и проверим работает ли служба 1С:
$ sudo systemctl daemon-reload $ sudo systemctl start 1CServer && sudo systemctl status 1CServer
Если всё настроено корректно, получим примерно такой вывод:
Убедившись, что всё работает, устанавливаем службу:
$ sudo systemctl enable 1CServer
Подключение базы 1С
Создать базу 1С можно и в терминале Linux через команду, однако, для удобства, мы воспользуемся оснасткой администрирования сервера 1С, установленной на соседнюю машину на ОС Windows Server.
- Перед тем как присоединять базу, если компьютеры не объединены в домен Active Directory, рекомендуется внести имя сервера СУБД и его IP-адрес в “C:WindowsSystem32driversetchosts”, иначе возможно получение ошибки “Этот хост неизвестен” в 1С.
- Не пытайтесь создать пустую базу в PSQL, а затем подключить её в оснастке 1С! Для PostgreSQL базы 1С не являются нормальными, поэтому все базы создаются средствами 1С, как описано ниже.
- Заходим в оснастку администрирования и добавляем Центральный Сервер 1С. В имени сервера вводим имя или IP-адрес сервера СУБД, на котором устанавливали 1С.
- Далее заходим в кластер и добавляем базу: Правой кнопкой мыши нажать на “Информационные базы (Далее ИБ)” > “Создать” > “ИБ”. Заполняем поля:
Мы добавили ИБ для запуска, можно заходить в конфигуратор и загружать имеющую конфигурацию. Итак, структура готова к работе в 1С.
Нужна помощь? Администрирование linux-серверов и PostgreSQL мы осуществляем в рамках услуги администрирование серверов.