Порядок обновления сервера 1С и баз на MS SQL: от бэкапа до проверки кластера

· 10 мин

Содержание

Обновить 1С на сервере SQL — это четыре действия в строгом порядке: снять резервную копию базы средствами MS SQL, остановить службу агента сервера 1С, установить новую версию платформы и переключить службу на её папку bin, затем обновить клиентов. Релиз конфигурации обновляют отдельно и только после того, как сервер и клиенты работают на одной версии платформы.

Есть два подхода. Замена на месте — служба переключается на новую версию, простой 20–40 минут, откат за пять минут. Параллельный запуск — новая версия поднимается второй службой на других портах, базу проверяют на копии, а пользователей переводят потом. Второй вариант дольше, но для баз в сотни гигабайт и десятков пользователей он спокойнее.

Инструкция дана для Windows Server и MS SQL Server. Для PostgreSQL шаги на стороне 1С те же, меняется только способ резервного копирования.

1. Подготовка: что проверить до обновления сервера 1С

Сервер и клиент 1С должны совпадать по версии до последней цифры сборки. Клиент 8.3.24.1548 не подключится к серверу 8.3.24.1586. Поэтому обновление сервера всегда тянет за собой обновление всех рабочих мест и терминальных серверов.

Что собрать заранее:

  • 📦 дистрибутив сервера x86-64 (это отдельный архив, не «тонкий клиент» и не клиентская платформа);
  • 📄 описание релиза конфигурации, ради которой обновляете платформу: там указан минимальный номер платформы и список релизов, с которых возможен переход;
  • 🗄️ требования новой версии к MS SQL Server — проверьте, что ваша версия СУБД в списке поддерживаемых;
  • 🔑 пароль администратора кластера (если задан) и учётные данные пользователя sa или другого логина с правами на резервное копирование ;
  • 🕐 окно обслуживания: вечер или выходной, когда в базе никого нет.

Сделайте копию папки с данными кластера. По умолчанию это C:\Program Files\1cv8\srvinfo. Внутри reg_1541 лежит файл 1CV8Clst.lst — реестр кластера со списком баз, рабочих серверов и администраторов. Если он испортится, базы придётся регистрировать заново.

robocopy "C:\Program Files\1cv8\srvinfo" "D:\Backup\srvinfo_before_update" /E /COPYALL

Копируйте srvinfo при остановленной службе — так файл реестра кластера гарантированно не будет в процессе записи. На первом шаге достаточно скопировать хотя бы 1CV8Clst.lst, полную копию сделайте после остановки службы.

Готовность к обновлению
Выполнено: 0 / 6

2. Резервная копия базы в MS SQL и остановка сервера 1С

Закройте вход в базу

Откройте консоль администрирования серверов 1С. В ветке Информационные базы откройте свойства нужной базы и включите:

  1. Блокировка начала сеансов включена — новые пользователи не войдут.
  2. Сообщение о блокировке — текст, который увидят пользователи.
  3. Код разрешения — с ним администратор сможет войти в заблокированную базу (параметр запуска /UC).
  4. Блокировка регламентных заданий включена — фоновые задания не будут мешать.

Затем в ветке Сеансы посмотрите, кто ещё работает. Попросите людей выйти. Принудительно завершать сеанс стоит только после предупреждения: несохранённый документ пропадёт.

Сделайте бэкап средствами SQL

Копия средствами СУБД снимается быстрее выгрузки .dt и восстанавливается целиком. Выполните в SQL Server Management Studio:

BACKUP DATABASE [buh]
TO DISK = N'D:\Backup\buh_before_update.bak'
WITH COPY_ONLY, COMPRESSION, CHECKSUM, STATS = 10;

RESTORE VERIFYONLY
FROM DISK = N'D:\Backup\buh_before_update.bak'
WITH CHECKSUM;
  • COPY_ONLY не ломает цепочку ваших плановых резервных копий и журналов.
  • COMPRESSION уменьшает файл в 3–5 раз; в редакции Express сжатие недоступно — уберите этот параметр.
  • RESTORE VERIFYONLY проверяет, что файл читается. Это не полная гарантия, но битый бэкап отсеет.

Не начинайте обновление, пока не убедились, что файл .bak создан и проверен. Если на сервере несколько баз 1С, бэкап нужен каждой, которую будете открывать новой платформой.

Выгрузку в .dt через Конфигуратор делайте дополнительно, если база небольшая (до 20–30 ГБ). Это страховка на случай, когда базу придётся переносить на другой сервер.

Остановите службу агента

Остановка службы обрывает все сеансы и фоновые задания. Делайте это, только когда сеансов в консоли не осталось.

net stop "1C:Enterprise 8.3 Server Agent (x86-64)"

Если на сервере зарегистрирована служба администрирования RAS (её используют внешние консоли и скрипты мониторинга), остановите и её. Имя службы RAS задаётся при регистрации — найдите её в services.msc по слову RAS.

3. Установка новой платформы на сервер

Каждая версия ставится в собственную папку, например C:\Program Files\1cv8\8.3.24.1548\. Старая версия остаётся на диске — это и есть ваш быстрый откат.

  1. Запустите setup.exe из дистрибутива сервера x86-64 от имени администратора.
  2. В составе компонентов отметьте Сервер 1С:Предприятия и Администрирование сервера 1С:Предприятия. Клиент на сервере ставьте, только если планируете запускать там Конфигуратор.
  3. Галку установки сервера как службы Windows снимите, если служба уже есть. Иначе установщик попытается создать вторую службу с тем же именем.
  4. Дождитесь окончания установки.

Переключите службу на новую версию

Служба запускает ragent.exe по пути, записанному в реестре. Откройте regedit и найдите ключ:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)

В параметре ImagePath поменяйте только номер версии в пути. Остальные ключи оставьте как были:

"C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

Здесь -port 1540 — порт агента, -regport 1541 — порт менеджера кластера, -range 1560:1591 — диапазон для рабочих процессов, -d — папка с данными кластера. Если порты у вас нестандартные, сохраните свои значения.

Этот приём удобнее переустановки службы: учётная запись (обычно USR1CV8), её пароль и права на srvinfo не меняются. Ошибиться можно только в номере версии.

Если есть служба RAS, поправьте путь к ras.exe в её ImagePath так же.

Перерегистрируйте оснастку консоли под новую версию, иначе консоль может не открыться или подключаться к старой библиотеке:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Запустите службу:

net start "1C:Enterprise 8.3 Server Agent (x86-64)"

4. Проверка кластера после обновления платформы

Откройте консоль администрирования и пройдите по пунктам:

Что проверитьГде смотретьНормальное состояние
Кластер виденКорень консоли → центральный серверКластер раскрывается без ошибок
ВерсияДиспетчер задач → вкладка «Подробности» → путь к ragent.exe и rphost.exeВ пути папка новой версии
Список базВетка Информационные базыВсе базы на месте
Рабочие процессыВетка Рабочие процессыПроцессы запущены, включены
Порты`netstat -anofindstr 1540`

Проверьте и брандмауэр: правила часто пишут на конкретный файл программы. Если правило разрешало C:\Program Files\1cv8\8.3.22.xxxx\bin\ragent.exe, новая версия под него не попадёт. Надёжнее разрешить порты 1540, 1541 и диапазон 1560–1591 правилом по портам.

Если в консоли не видно баз, а служба запущена — почти всегда это неправильный -d в ImagePath или у учётной записи службы нет прав на папку srvinfo.

Добавьте папку srvinfo в исключения антивируса, если её там ещё нет. Сканирование журналов и кэша сеансов на лету заметно тормозит сервер.

5. Как обновить клиентов под новую версию сервера

Пока клиент не обновлён, он не войдёт в базу. Варианты:

СпособКогда подходитЧто сделать
ВручнуюДо 5–10 рабочих местПоставить клиентскую платформу той же версии на каждый компьютер
Общая папка с дистрибутивомОфис, много местУказать путь к папке в 1CEStart.cfg, клиент ставится при запуске
Терминальный серверПользователи работают через RDPОбновить платформу один раз на терминальном сервере
Групповые политикиДомен, сотни местРаздать установку пакетом MSI через GPO

Для общей папки положите распакованный дистрибутив клиента в сетевой каталог, например \\fs\1c_distr\8.3.24.1548. На клиентах в файле C:\ProgramData\1C\1CEStart\1CEStart.cfg пропишите строку:

DistributiveLocation=\\fs\1c_distr

При подключении к серверу новой версии стартовое окно найдёт нужную сборку в этой папке и установит её. Для установки у пользователя должны быть права на запись в Program Files — либо разрешите это политикой, либо ставьте клиентов заранее вручную.

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

6. Обновление конфигурации базы на SQL-сервере

Новая платформа сама по себе не меняет конфигурацию и режим совместимости. Релиз Бухгалтерии, ЗУП или УТ ставят отдельно — обычно именно ради него платформу и обновляли.

Через Конфигуратор

  1. Запустите Конфигуратор новой версии, подключитесь к базе с кодом разрешения (если блокировка сеансов ещё включена, без кода не пустит).
  2. Конфигурация → Поддержка → Обновить конфигурацию — укажите файл обновления .cfu нужного релиза.
  3. После сравнения и объединения выполните Конфигурация → Обновить конфигурацию базы данных (F7).
  4. Дождитесь реструктуризации. Для MS SQL она идёт на стороне СУБД. На больших базах это может занять от десятков минут до нескольких часов.
  5. Закройте Конфигуратор и войдите в режим 1С:Предприятие под администратором. Запустятся обработчики обновления версии программы — не прерывайте их.

Релиз можно накатить только с тех версий, что перечислены в описании дистрибутива. Если ваша база отстала на год, придётся пройти цепочку промежуточных релизов. Платформу при этом меняют по мере того, как этого требует очередной релиз.

Пакетный режим

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /UC 1234 /UpdateCfg "D:\Distr\1Cv8.cfu" /UpdateDBCfg /Out "D:\Logs\buh_update.log"

Результат смотрите в файле журнала. Пароль в командной строке виден в истории — после работ удалите скрипт или храните его в защищённой папке.

После реструктуризации

Обновите статистику SQL — после большой реструктуризации планы запросов могут стать неудачными, и база начнёт «тормозить» без видимой причины:

USE [buh];
EXEC sp_updatestats;

Затем снимите блокировку начала сеансов и регламентных заданий в свойствах базы в консоли кластера.

7. План отката, если после обновления всё пошло не так

Откат продумайте до начала работ, а не в два часа ночи.

Что именно сломалось после обновления?

Восстановление из .bak перезапишет всё, что пользователи ввели после бэкапа. Если базу уже открыли для работы, сначала выясните, что успели внести.

8. Ошибки после обновления 1С на сервере и как их устранить

Диагностика: выберите симптом

Удаляйте только папки snccntx*. Файл 1CV8Clst.lst и другие файлы reg_1541 не трогайте — в них реестр кластера.

Если база после реструктуризации отвечает медленно, первым делом проверьте, что sp_updatestats действительно выполнился. Затем посмотрите на свободное место на дисках с файлами базы и tempdb: реструктуризация увеличивает журнал транзакций, и диск мог заполниться.

9. Частые вопросы

Обязательно ли обновлять платформу при каждом релизе конфигурации?
Нет. Платформу меняют, когда релиз требует номер платформы не ниже указанного в описании. Если ваша версия подходит, достаточно обновить конфигурацию.
Можно ли держать на одном сервере две версии 1С одновременно?
Да. Каждая версия ставится в свою папку. Для параллельной работы второй службе задают другие порты, например -port 2540 -regport 2541 -range 2560:2591, и отдельную папку данных. Клиенты подключаются к такому кластеру с указанием порта: srv1c:2541.
Нужно ли что-то менять в MS SQL при обновлении платформы?
Как правило, нет: база SQL и логины остаются прежними. Проверьте только, что версия SQL Server поддерживается новой платформой, и после реструктуризации обновите статистику.
Сколько длится обновление сервера 1С?
Замена платформы — 20–40 минут вместе с проверкой. Реструктуризация базы при обновлении релиза зависит от объёма: небольшие базы укладываются в десятки минут, базы в сотни гигабайт — в несколько часов. Засеките время на копии базы, чтобы спланировать окно.
Можно ли обновить сервер без остановки работы пользователей?
Нет: при смене версии службы сеансы обрываются. Сократить простой помогает параллельный запуск новой версии на других портах и перевод пользователей после проверки.