Удаление кластера 1С:Предприятия 8.3 без потери баз и с чистым сервером
Содержание
Кластер серверов
1С удаляют в консоли администрирования: узел сервера → Кластеры → правый клик по кластеру → Удалить. Или одной командой rac cluster remove. Агент сервера (ragent) при этом должен работать: без него удалять нечем.
Частое заблуждение — что вместе с кластером исчезнут и данные. Нет: кластер хранит только регистрацию информационных баз, а сами базы лежат в СУБД (MS SQL, PostgreSQL) и остаются на месте. Потерять их можно другим путём — если перед удалением кластера по одной снимать базы с флагом удаления базы данных. Ниже порядок, при котором сервер остаётся чистым, а данные целыми.
Подготовка: что записать до удаления кластера 1С
Удаление кластера необратимо в том смысле, что настройки не уходят в корзину. Всё, что не записали заранее, потом придётся вспоминать. Перед удалением выгрузите из консоли:
- 📋 список информационных баз: имя в кластере, сервер СУБД, имя базы данных в СУБД, тип СУБД, пользователь СУБД;
- 🔌 порты: порт кластера (по умолчанию 1541), порт агента (1540), диапазон рабочих процессов (по умолчанию 1560–1591), если меняли;
- 🖥 рабочие серверы кластера и их параметры: число баз и соединений на процесс, ограничения памяти, требования назначения функциональности;
- 👤 администраторов кластера и центрального сервера — логины точно, пароли из вашего хранилища паролей;
- ⏱ параметры баз: блокировка регламентных заданий, смещение дат, параметры безопасности.
Список баз удобно получить командой — он пригодится и для проверки после удаления:
rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<UUID кластера> --cluster-user=admin --cluster-pwd=***
Здесь 1545 — порт службы RAS по умолчанию. Если RAS не запущен, rac не подключится; тогда переписывайте свойства баз из консоли вручную.
Резервная копия каталога srvinfo
Сделайте копию каталога srvinfo до любых действий. Это единственный быстрый способ отката. Порядок:
- Предупредите пользователей: при остановке службы агента оборвутся все сеансы всех баз на этом сервере.
- В нерабочее время остановите службу агента сервера 1С.
- Скопируйте каталог целиком. В Windows по умолчанию это
C:\Program Files\1cv8\srvinfo, в Linux — домашний каталог пользователяusr1cv8(обычно/home/usr1cv8/.1cv8/1C/1cv8). - Запустите службу обратно.
Внутри лежат файл 1cv8wsrv.lst со списком кластеров центрального сервера и каталоги вида reg_1541 — по одному на кластер. В reg_1541\1CV8Clst.lst хранится реестр кластера: базы, рабочие серверы, администраторы.
Заодно сделайте свежие резервные копии баз средствами СУБД. Удаление кластера их не трогает, но ошибка в соседнем шаге может задеть.
Какие зависимости проверить перед удалением кластера
Кластер редко живёт сам по себе. Пройдитесь по связям, иначе после удаления «отвалится» то, о чём забыли.
| Что зависит от кластера | Что будет после удаления | Что сделать заранее |
|---|---|---|
Клиенты со строкой Srvr="сервер:1541";Ref="база" | Ошибка подключения к серверу | Подготовить новый список баз или файл .v8i |
Веб-публикации (default.vrd на IIS/Apache) | Публикация перестанет открываться | Записать, какие базы опубликованы |
| Обмены, интеграции, COM- и HTTP-подключения извне | Обмены встанут с ошибкой | Предупредить владельцев интеграций |
| Регламентные задания в базах | Перестанут выполняться | Перенести расписание на новый кластер или отключить |
| Резервирование кластеров | Резервный кластер потеряет пару | Исключить кластер из резервирования до удаления |
| Скрипты обслуживания с UUID кластера | Скрипт упадёт с ошибкой | Найти и поправить UUID в .bat/.sh |
UUID кластера после пересоздания будет новым. Если ваши скрипты обслуживания ищут кластер по UUID, их придётся править в любом случае.
💡 Если цель — сменить порт или переехать на другой сервер, иногда проще не удалять старый кластер сразу. Создайте новый, зарегистрируйте в нём базы, переключите пользователей, а старый удалите через неделю, когда убедитесь, что всё работает.
Сеансы, фоновые задания и освобождение портов
Агент сервера во время удаления должен работать, поэтому службу на этом этапе не останавливают. Останавливают работу пользователей и фоновых заданий.
- Разошлите предупреждение и назначьте окно, например на вечер пятницы.
- В свойствах каждой базы кластера включите блокировку начала сеансов и блокировку регламентных заданий.
- Посмотрите активные сеансы:
rac session list --cluster=<UUID>, или узелСеансыв консоли. - Завершите оставшиеся сеансы — консолью или
rac session terminate --cluster=<UUID> --session=<UUID сеанса>. Пользователи потеряют несохранённые данные, поэтому делайте это только после предупреждения. - Проверьте, что нет соединений от внешних систем — обменов, веб-сервисов.
После удаления процессы rmngr и rphost этого кластера завершаются. Порт кластера и диапазон рабочих процессов освобождаются. Проверить, что порт свободен, можно так:
netstat -ano | findstr ":1541"
В Linux то же самое покажет ss -tlnp | grep 1541. Если порт занят процессом, который не завершился, найдите его по PID в диспетчере задач. Не убивайте процесс вслепую, пока не убедились, что он относится к удалённому кластеру.
Удаление кластера серверов 1С: консоль и командная строка
Через консоль администрирования
- Откройте
Администрирование серверов 1С Предприятия(оснастка MMC, ставится вместе с сервером). - Разверните
Central 1C:Enterprise 8.3 servers→ ваш центральный сервер →Кластеры. - Щёлкните правой кнопкой по нужному кластеру →
Удалить. - Если на кластере заданы администраторы, консоль запросит логин и пароль администратора кластера.
- Подтвердите удаление и обновите дерево (
F5).
Если консоль не открывается или пишет, что не найдена оснастка, перерегистрируйте библиотеку radmin.dll той же версии, что и сервер (от имени администратора):
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"
Вместо 8.3.xx.xxxx подставьте номер установленной версии. Разрядность консоли и библиотеки должна совпадать.
Через rac
На серверах без графической оболочки и для повторяемых процедур удобнее утилита rac. Ей нужна запущенная служба RAS, подключённая к агенту.
rac localhost:1545 cluster list
rac localhost:1545 cluster remove --cluster=<UUID кластера> --cluster-user=admin --cluster-pwd=***
rac localhost:1545 cluster list
Первая команда показывает UUID и порт каждого кластера, последняя — что нужного кластера в списке больше нет. Если центральный сервер защищён администраторами агента, добавьте параметры --agent-user и --agent-pwd. Остальные ключи смотрите в rac help cluster.
Удалять ли базы перед кластером
Обычно — нет. Если нужно снять базу с регистрации отдельно, при удалении база предлагает выбор:
- оставить базу данных без изменений — только регистрация уходит из кластера;
- очистить базу данных ;
- удалить базу данных на сервере СУБД.
Второй и третий варианты уничтожают данные. В rac infobase drop им соответствуют ключи --clear-database и --drop-database. Без ключей команда снимает только регистрацию.
Чистка сервера после удаления: srvinfo, служба, реестр
Если сервер 1С на машине остаётся и обслуживает другие кластеры, на этом удаление закончено. Чистка ниже нужна, когда кластер был единственным или вы убираете сервер 1С с машины полностью.
Каталог кластера
Проверьте srvinfo. Каталог reg_<порт> удалённого кластера может остаться на диске. Если кластер с этим портом больше не нужен, остановите службу агента, перенесите каталог в архивную папку и запустите службу. Переносить надёжнее, чем удалять: при ошибке его легко вернуть.
Служба агента
Службу агента удаляют через ragent той версии, которая её регистрировала:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -rmsrvc
Если версия уже удалена, а служба осталась в списке, помогает системная команда. Имя службы посмотрите в её свойствах:
sc query type= service state= all | findstr /i "1C"
sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"
Остановка и удаление службы агента обрывают сеансы всех кластеров этого сервера. Делайте это только тогда, когда сервер 1С на машине больше не нужен целиком.
Служба RAS, если её ставили отдельно, удаляется той же командой sc delete под своим именем.
Реестр и прочие следы
Ручная правка реестра нужна редко. После sc delete раздел службы в HKLM\SYSTEM\CurrentControlSet\Services исчезает сам. Если служба удалена, а раздел остался, — экспортируйте его в .reg и только потом удаляйте.
Не забудьте также:
- 🧱 правила брандмауэра для портов 1540, 1541, 1560–1591;
- 🌐 веб-публикации, указывающие на удалённый кластер;
- 📦 саму платформу — через «Программы и компоненты», если она больше не нужна.
Программные лицензии хранятся отдельно от кластера, в C:\ProgramData\1C\licenses. Удаление кластера их не затрагивает.
Удаление кластера в распределённой архитектуре
Когда в кластере несколько рабочих серверов, порядок другой. Сначала разбирают кластер изнутри, потом удаляют его на центральном сервере.
- Резервирование. Если кластер входит в пару с резервным кластером, сначала исключите его из резервирования на обоих центральных серверах. Иначе оставшийся кластер продолжит искать пару.
- Требования назначения функциональности. Уберите правила, которые закрепляют базы или фоновые задания за конкретными рабочими серверами.
- Рабочие серверы. Удалите из кластера все рабочие серверы, кроме центрального. На каждом удалённом сервере проверьте, что процессы
rphostэтого кластера завершились. - Сам кластер. Удалите его на центральном сервере — консолью или
rac cluster remove. - Агенты на бывших рабочих серверах. Если на них нет других кластеров и они больше не нужны, остановите и удалите службу агента на каждом.
| Ситуация | Что удалять | Затрагивает базы |
|---|---|---|
| Сервер выводится из кластера | Только рабочий сервер | Нет, базы обслуживают остальные серверы |
| Кластер больше не нужен | Рабочие серверы, затем кластер | Только регистрацию |
| Сервер 1С уходит с машины | Кластер, службу агента, платформу | Только регистрацию |
💡 Удаляйте рабочие серверы по одному и после каждого проверяйте, что пользователи других кластеров работают. Так вы сразу увидите, если где-то перепутали сервер.
Проверка: кластер удалён полностью
Удаление считается законченным, когда все пункты ниже сходятся.
Отдельно проверьте журнал событий Windows (раздел «Приложение») или системный журнал в Linux. Ошибки агента 1С сразу после удаления часто говорят о забытом резервировании или скрипте, который всё ещё стучится в старый кластер.
Если кластер удалили по ошибке
Порядок зависит от того, есть ли копия srvinfo.
Копия srvinfo есть
- Предупредите пользователей: сервер будет недоступен несколько минут.
- Остановите службу агента.
- Переименуйте текущий
srvinfo, например вsrvinfo_bad. - Верните на место скопированный каталог.
- Запустите службу и проверьте в консоли кластер и список баз.
Кластер вернётся с прежним UUID, портами и администраторами. Скрипты править не придётся.
Копии нет
Создайте кластер заново и зарегистрируйте базы поверх существующих баз данных:
- В консоли:
Кластеры→Создать→Кластер. Укажите тот же порт, что был. - Добавьте администраторов кластера.
- Для каждой базы:
Информационные базы→Создать→Информационная база. Введите прежнее имя базы, сервер СУБД, имя базы данных и учётную запись СУБД. - Не ставьте флажок создания базы данных в случае её отсутствия. Если ошиблись в имени, вместо подключения к существующей базе появится новая пустая.
- Зайдите в каждую базу и проверьте данные за последний день.
Данные и пользовательские настройки хранятся в самой базе, а не в реестре кластера, поэтому после повторной регистрации они на месте. Сбросятся настройки уровня кластера: параметры баз в консоли, требования назначения функциональности, UUID.
Частые вопросы
Можно ли удалить кластер, если служба агента остановлена?
rac работают через агент, без него кластер не удалить. Чистить каталог reg_<порт> вручную при остановленной службе можно, но это крайняя мера и только с копией srvinfo.Сохранятся ли базы данных на SQL Server или PostgreSQL?
Консоль просит пароль администратора кластера, а его никто не помнит. Что делать?
srvinfo из резервной копии, где пароль известен, или обратитесь к администратору, который настраивал сервер. Сбрасывать администраторов правкой файлов реестра кластера не стоит.Как удалить кластер на Linux?
rac с любой машины, где есть клиентские утилиты и доступ к RAS. Затем остановите и отключите службу сервера 1С через systemctl, если сервер больше не нужен.Можно ли после удаления создать кластер на том же порту?
netstat и каталог reg_<порт> в srvinfo.