Переход сервера 1С:Предприятия 8.3 на новую платформу под Linux без потери баз
Содержание
Обновить 1С на Linux — значит поставить рядом новую версию платформы, остановить службу сервера
старой версии и запустить службу новой. Старая сборка при этом не удаляется: она лежит в своём каталоге /opt/1cv8/x86_64/<версия>/ и служит точкой отката. Базы данных в PostgreSQL и реестр кластера остаются на месте.
Ниже порядок для сервера и клиента на Ubuntu/Debian и RHEL-подобных системах (Astra, РЕД ОС, ALT устроены так же). Команды даны для платформы 8.3.20 и новее, где 1С поставляется единым установщиком setup-full-….run. Для более старых сборок с пакетами .deb/.rpm отличия отмечены отдельно.
Что проверить на сервере до обновления
Начните с инвентаризации. Пять минут здесь спасают от ночного отката.
Какая версия работает сейчас
Посмотрите, какие версии уже установлены:
ls /opt/1cv8/x86_64/
Для сборок до 8.3.20, поставленных пакетами, каталог другой — /opt/1C/v8.3/x86_64/. Там версия одна, и номер видно по пакетам:
dpkg -l | grep 1c-enterprise # Debian, Ubuntu, Astra
rpm -qa | grep 1C_Enterprise # RHEL-подобные
Какая именно версия сейчас обслуживает пользователей, покажет запущенный процесс агента:
ps aux | grep ragent
systemctl list-units --type=service | grep -i 1c
В строке процесса виден полный путь к ragent — в нём номер версии. Также видны параметры запуска: порт агента (по умолчанию 1540), каталог данных кластера и параметр -debug, если он включён. Запишите их — новая служба должна стартовать с теми же значениями.
Что сохранить
- 💾 Резервные копии баз. Для PostgreSQL —
pg_dumpкаждой базы. Для файловых баз — копия каталога с1Cv8.1CD. Выгрузка.dtчерез Конфигуратор тоже подойдёт. - 📁 Каталог реестра кластера. По умолчанию это
/home/usr1cv8/.1cv8/1C/1cv8/. Там лежат1cv8wsrv.lst(список кластеров) и папкаreg_1541со списком информационных баз. - 🔑 Лицензии. Программные лицензии хранятся в
/var/1C/licenses/. Скопируйте каталог целиком. - 📝 Параметры службы. Для старой init-службы — файл
/etc/default/srv1cv83(Debian) или/etc/sysconfig/srv1cv83(RHEL). Для systemd — свои override-файлы, если вы их создавали.
Копию реестра кластера и лицензий снимайте при остановленной службе — так файлы гарантированно целые.
Совместима ли конфигурация с новой платформой
Типовые конфигурации требуют минимальную версию платформы. Требование указано в описании релиза конфигурации. Обратное тоже бывает: старый релиз конфигурации может работать некорректно на слишком новой платформе. Если базы давно не обновлялись, сначала уточните, какой номер платформы подходит ко всем вашим базам одновременно — сервер один на весь кластер.
Дистрибутив и пакеты, которые нужны системе
Какой файл скачивать
Дистрибутив берут на портале обновлений 1С по договору ИТС или из комплекта поставки. Для Linux есть несколько вариантов архива:
| Архив | Что внутри | Когда брать |
|---|---|---|
| Сервер 1С:Предприятия (64-bit) для DEB/RPM | Установщик setup-full-…-x86_64.run с серверными компонентами | Обновление сервера |
| Технологическая платформа для Linux (64-bit) | Тот же установщик, включая клиенты | Сервер и клиент на одной машине |
| Тонкий клиент для Linux | Только тонкий клиент | Рабочие места пользователей |
Распакуйте архив и сделайте установщик исполняемым:
tar xzf server64_8_3_24_1548.tar.gz
chmod +x setup-full-8.3.24.1548-x86_64.run
Номер 8.3.24.1548 здесь и далее — пример. Подставляйте свою версию.
Зависимости
Серверу 1С нужны шрифты, библиотека работы с изображениями и несколько системных пакетов. Без них сервер запустится, но упадут печатные формы, диаграммы и выгрузка в PDF.
Для Ubuntu и Debian:
sudo apt update
sudo apt install -y fontconfig imagemagick libgsf-1-114 unixodbc
sudo apt install -y ttf-mscorefonts-installer
sudo fc-cache -fv
Для RHEL-подобных систем пакеты называются похоже, ставятся через dnf. Шрифты Microsoft там приходится устанавливать вручную из rpm-сборки сообщества.
Если сервер без выхода в интернет, соберите пакеты на соседней машине командой apt download и перенесите их вместе с дистрибутивом.
Установка новой версии из консоли
Сборки 8.3.20 и новее
Установщик ставит новую версию в отдельный каталог и не трогает старую. Список компонентов и параметров покажет справка:
./setup-full-8.3.24.1548-x86_64.run --help
Тихая установка сервера с модулем расширения веб-сервера и утилитами администрирования:
sudo ./setup-full-8.3.24.1548-x86_64.run --mode unattended \
--enable-components server,server_admin,ws
Если на этой же машине нужен клиент, добавьте client_full или client_thin. Имена компонентов сверяйте с выводом --help именно вашей сборки: набор от версии к версии понемногу меняется.
После установки проверьте каталог:
ls /opt/1cv8/x86_64/8.3.24.1548/
Там должны быть ragent, rmngr, rphost, rac, ras и файл юнита systemd вида srv1cv8-8.3.24.1548@.service.
Сборки до 8.3.20 (пакеты .deb и .rpm)
Старые версии ставились набором пакетов: common, server, ws, client и языковые. Пакетная установка заменяет файлы в единственном каталоге /opt/1C/v8.3/x86_64/, поэтому две такие версии рядом не живут.
sudo dpkg -i 1c-enterprise83-common_*.deb 1c-enterprise83-server_*.deb
Порядок важен: сначала common, потом server, потом остальные. При переходе со старой пакетной сборки на 8.3.20+ старую службу srv1cv83 нужно отключить вручную, иначе две версии будут бороться за порт 1540.
Права на каталоги и владелец файлов
Сервер 1С работает от системного пользователя usr1cv8 из группы grp1cv8. Установщик создаёт их сам, если их ещё нет. Проблемы с правами появляются, когда каталог данных кластера перенесли, восстановили из копии под root или подключили новый диск.
Верните владельца:
sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8
sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses
Если каталог данных кластера у вас нестандартный, например /srv/1c, примените ту же команду к нему.
Что ещё проверить:
- 🔐 У
usr1cv8должны быть права на запись в каталог временных файлов и в свой домашний каталог. - 📂 Для файловых баз, которые открывает сервер (например, через веб-публикацию), владельцем каталога базы тоже должен быть пользователь, от которого работает процесс.
- 🛡️ На Astra Linux с включённым мандатным контролем пользователю службы нужно назначить метки доступа. Без этого служба стартует, но не видит свои файлы.
Не меняйте владельца всего /opt/1cv8 на usr1cv8. Исполняемые файлы должны принадлежать root — иначе любой, кто получит доступ под сервисной учётной записью, сможет подменить бинарник.
Переключение службы и разбор сбоев запуска
Остановка старой версии
Остановка службы обрывает все сеансы пользователей. Предупредите людей заранее и делайте переключение вне рабочих часов. Перед остановкой посмотрите, кто подключён:
/opt/1cv8/x86_64/8.3.24.1548/rac cluster list
/opt/1cv8/x86_64/8.3.24.1548/rac session list --cluster=<uuid>
Для работы rac нужен запущенный сервер администрирования ras. Если он не запущен — смотрите rac help.
Остановите и отключите старую службу. Для systemd:
sudo systemctl stop srv1cv8-8.3.22.1709@default
sudo systemctl disable srv1cv8-8.3.22.1709@default
Для старой init-службы:
sudo systemctl stop srv1cv83
sudo systemctl disable srv1cv83
Запуск новой версии
Подключите юнит из каталога новой версии и запустите экземпляр default:
sudo systemctl link /opt/1cv8/x86_64/8.3.24.1548/srv1cv8-8.3.24.1548@.service
sudo systemctl enable --now srv1cv8-8.3.24.1548@default
Если старая служба запускалась с нестандартным портом или каталогом данных, перенесите эти значения. Откройте файл юнита, посмотрите, какие переменные окружения он читает, и задайте их через sudo systemctl edit srv1cv8-8.3.24.1548@default.
Сервер администрирования запускается аналогично — его юнит лежит в том же каталоге (ras-8.3.24.1548.service).
Проверка и диагностика
systemctl status srv1cv8-8.3.24.1548@default
journalctl -u srv1cv8-8.3.24.1548@default -n 50
ss -tlnp | grep -E '154[01]'
Агент должен слушать порт 1540, менеджер кластера — 1541. Рабочие процессы занимают диапазон портов, который задан в свойствах рабочего сервера (по умолчанию 1560–1591).
PostgreSQL и файловые базы при смене платформы
Клиент-серверные базы на PostgreSQL
Обновление платформы не требует обновлять PostgreSQL. Базы остаются в той же СУБД, сервер 1С новой версии подключается к ним по тем же параметрам из реестра кластера.
Что учесть:
- 🐘 Используйте сборку PostgreSQL с патчами для 1С (от 1С или Postgres Professional). Ванильный PostgreSQL для баз 1С не подходит.
- 📋 Каждая версия платформы поддерживает определённый диапазон версий PostgreSQL. Если вы заодно обновляете СУБД, проверьте это по описанию версии платформы.
- ⏱️ Первый вход в базу после смены платформы может длиться дольше обычного: платформа перестраивает служебные данные и кэши.
Обновлять платформу и PostgreSQL в одну ночь не советую. Сделайте это в разные дни — тогда при сбое ясно, кто виноват.
Резервная копия базы PostgreSQL перед работами:
sudo -u postgres pg_dump -Fc -f /backup/buh_$(date +%F).dump buh
Файловые базы
У файловой базы нет сервера: её открывает напрямую клиент. Поэтому для неё обновляется только клиентская часть на каждой машине, где базу запускают.
- 👥 Все пользователи файловой базы должны перейти на новую версию клиента одновременно. Разные версии на одной базе — путь к ошибкам блокировок.
- 🗂️ Проверьте права на каталог базы: все пользователи Linux, которые работают с ней, должны иметь доступ на чтение и запись к файлу
1Cv8.1CDи каталогу, где он лежит. - 🌐 Если файловая база опубликована через Apache, после обновления перепубликуйте её модулем
wsap24.soиз каталога новой версии и перезапустите Apache.
Клиенты на рабочих местах
Для клиент-серверного режима номер клиента должен совпадать с номером сервера целиком: 8.3.24.1548 к серверу 8.3.24.1548. Совпадения первых трёх частей мало.
На рабочих местах Linux клиент ставится тем же установщиком:
sudo ./setup-full-8.3.24.1548-x86_64.run --mode unattended \
--enable-components client_full
Если пользователи запускают 1С через ярлык, ведущий на конкретную версию, ярлык придётся поправить. Удобнее запускать через 1cestart — он сам выбирает подходящую установленную версию.
На рабочих местах Windows клиент обновляют обычным установщиком платформы. При большом парке настройте автоматическое распространение дистрибутива — так новое рабочее место сразу получит нужную сборку.
Откат и уборка старых версий
Если после переключения что-то пошло не так, откат занимает минуту:
- Остановите и отключите службу новой версии.
- Включите и запустите службу старой версии.
- Проверьте, что пользователи входят.
Работает это только для сборок 8.3.20+, где версии лежат в разных каталогах. Пакетную сборку до 8.3.20 откатывают переустановкой старых пакетов — держите их под рукой.
Старые версии удаляйте не сразу, а через неделю-две стабильной работы. В каталоге каждой версии лежит деинсталлятор (uninstaller-full в сборках 8.3.20+). Перед удалением убедитесь, что служба этой версии отключена и нигде не используется.