Удаление информационной базы с сервера 1С без следов: кластер, СУБД, каталоги и кэш
Содержание
Чтобы полностью удалить базу 1С с сервера, нужно пройти три уровня: снять регистрацию информационной базы в кластере 1С, удалить саму базу данных в СУБД (MS SQL или PostgreSQL) и подчистить остатки на дисках — каталог базы в srvinfo, веб-публикацию, списки баз и кэш у пользователей. Если сделать только первый шаг, база исчезнет из консоли, но таблицы на десятки гигабайт останутся в СУБД.
Порядок зависит от варианта работы. Для клиент-серверной базы удобнее всего удалить её из консоли кластера с флажком удаления базы данных — тогда сервер 1С сам выполнит удаление в СУБД. Для файловой базы, лежащей на сервере, кластер не участвует: удаляется каталог с файлом 1Cv8.1CD. Платформу 1С при этом трогать не нужно, если на сервере остаются другие базы.
| Где «живёт» база | Что удаляем | Чем |
|---|---|---|
| Кластер серверов 1С | регистрацию информационной базы | консоль администрирования или rac |
| СУБД | базу данных с таблицами | консоль кластера (флажок) или SQL-команда |
| Диск сервера 1С | каталог базы в reg_1541, журналы | проводник, при остановленной службе |
| Веб-сервер | публикацию базы | webinst, менеджер IIS, конфиг Apache |
| Компьютеры пользователей | строку в списке баз, кэш | окно запуска 1С, %APPDATA% |
1. Подготовка: копия, сеансы и всё, что ссылается на базу
Удаление базы данных в СУБД необратимо. Корзины там нет.
Сделайте выгрузку .dt или полную резервную копию базы
средствами СУБД и проверьте, что файл копии открывается. Даже если базу «точно никто не использует», через месяц бухгалтер вспомнит про архивный отчёт.
Что проверить до удаления:
- 📋 Имя базы в СУБД. Оно может не совпадать с именем в кластере. Откройте свойства информационной базы в консоли и выпишите поля «Сервер баз данных», «Тип СУБД» и «База данных». Удалять в СУБД будете именно это имя.
- 🔗 Не зарегистрирована ли та же база в другом кластере. Бывает, что тестовый сервер 1С смотрит на ту же базу данных. Удаление с флажком «удалить базу данных» снесёт её для обоих.
- 🕒 Регламентные задания и скрипты. Планы обслуживания SQL, задания резервного копирования, пакетные файлы с
1cv8.exe DESIGNER, обмены с другими базами — после удаления они начнут падать с ошибками. - 🌐 Веб-публикация и мобильные клиенты. Если база опубликована, ссылка перестанет работать, но сама публикация останется.
- 👥 Пользователи. Предупредите всех, кто работал в базе, и уберите её из общих списков.
Как завершить сеансы
Пока к базе подключены пользователи или фоновые задания, СУБД не даст её удалить.
- В консоли кластера откройте свойства информационной базы.
- Включите «Блокировка начала сеансов включена», задайте сообщение и при необходимости код разрешения.
- Включите «Блокировка регламентных заданий включена».
- В ветке «Сеансы» этой базы выделите все сеансы и удалите их.
- В ветке «Соединения» убедитесь, что активных соединений не осталось.
Удаление сеансов обрывает работу пользователей без сохранения. Делайте это вне рабочего времени или после личного предупреждения.
2. Удаление информационной базы из кластера серверов 1С
Это главный шаг. Здесь же можно сразу удалить и базу данных в СУБД.
Через консоль администрирования серверов
- Запустите «Администрирование серверов 1С Предприятия» и подключитесь к центральному серверу.
- Раскройте
Кластеры → <ваш кластер> → Информационные базы. - Щёлкните базу правой кнопкой и выберите «Удалить».
- В окне удаления введите имя и пароль администратора информационной базы (пользователя 1С с полными правами). Если в базе нет пользователей, поля оставьте пустыми.
- Выберите действие с базой данных. Вариантов три: удалить базу данных, очистить её (таблицы удаляются, пустая база в СУБД остаётся) или оставить базу данных в СУБД без изменений.
- Для полного удаления выберите удаление базы данных и подтвердите.
Сервер 1С выполнит удаление от имени пользователя СУБД, указанного в свойствах информационной базы. Если у этого пользователя нет прав на удаление базы, операция завершится ошибкой. Тогда выберите «оставить без изменений», а базу данных удалите вручную (раздел 3).
Если консоль не запускается после переустановки платформы, перерегистрируйте оснастку: regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" из командной строки администратора.
Через rac (сервер администрирования RAS)
На Linux и на серверах без графической консоли удобнее утилита rac. Ей нужен запущенный сервер администрирования ras (по умолчанию порт 1545).
rem 1. Узнаём идентификатор кластера
rac cluster list
rem 2. Находим идентификатор базы
rac infobase summary list --cluster=<uuid кластера>
rem 3. Удаляем базу из кластера вместе с базой данных в СУБД
rac infobase drop --cluster=<uuid кластера> --infobase=<uuid базы> ^
--infobase-user=Администратор --infobase-pwd=<пароль> --drop-database
Если на кластере заданы администраторы, добавьте --cluster-user и --cluster-pwd. Вместо --drop-database можно указать --clear-database — это аналог очистки. Без обоих ключей база удалится только из кластера. Полный список параметров — в rac help infobase.
Перед удалением полезно посмотреть сеансы
: rac session list --cluster=<uuid> --infobase=<uuid>.
3. Удаление базы данных в MS SQL и PostgreSQL вручную
Ручной шаг нужен, если база удалена из кластера без флажка, если не хватило прав или если в СУБД остались базы от давно забытых информационных баз.
MS SQL Server
В SQL Server Management Studio: правой кнопкой по базе → «Удалить» → включите «Закрыть существующие соединения» → «ОК». То же самое запросом:
-- имя базы берите из свойств ИБ в консоли кластера
ALTER DATABASE [buh_old] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [buh_old];
После удаления проверьте:
- 🗑️ Файлы
.mdfи.ldf.DROP DATABASEудаляет их сам, если база была в режиме «в сети». База в режиме offline удаляется из SQL Server, а файлы остаются на диске — их нужно удалить вручную. - 🔑 Логин SQL. Если под базу создавался отдельный логин, удалите его в
Безопасность → Имена входа, когда он больше нигде не используется. - 🕒 Планы обслуживания и задания SQL Agent. Задание резервного копирования, где база указана явно, будет падать каждую ночь.
- 💾 Старые бэкапы. Каталог резервных копий часто занимает больше места, чем сама база.
PostgreSQL
Подключитесь к любой другой базе (например, postgres) — удалить базу, к которой вы подключены, нельзя.
-- PostgreSQL 13 и новее: соединения закрываются автоматически
DROP DATABASE "buh_old" WITH (FORCE);
-- более старые версии: сначала закрыть соединения
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'buh_old' AND pid <> pg_backend_pid();
DROP DATABASE "buh_old";
Из командной строки то же делает dropdb -U postgres buh_old. Место на диске освобождается сразу: у PostgreSQL каждая база лежит отдельным каталогом внутри каталога данных.
Проверьте имя дважды. Базы buh и buh_old легко перепутать, а отменить DROP DATABASE нельзя — только восстановить из копии.
4. Очистка каталогов сервера 1С, веб-публикации и кэша клиентов
После удаления из кластера на дисках остаются служебные данные. Они не мешают работе, но занимают место и путают при следующей настройке.
Каталог базы в srvinfo
Сервер 1С хранит данные кластера в каталоге srvinfo. Внутри reg_1541 (номер совпадает с портом менеджера кластера) у каждой информационной базы есть своя папка с именем-идентификатором, например reg_1541\8f1b...-.... В ней — журнал регистрации, кэш конфигурации, данные полнотекстового поиска.
Типичные расположения:
| ОС | Каталог |
|---|---|
| Windows, служба по умолчанию | C:\Program Files\1cv8\srvinfo\reg_1541\ |
| Linux | /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/ |
Если каталог srvinfo переносили, его путь виден в параметрах службы агента (ключ -d в командной строке запуска).
Как удалить папку базы:
- Узнайте идентификатор удалённой базы — он был в выводе
rac infobase summary listили в свойствах базы. Если не записали, сравните список папок с идентификаторами оставшихся баз: лишняя папка и есть удалённая. - Обычно папка удаляется и без остановки службы. Если Windows пишет, что файл занят, остановите службу агента сервера 1С.
- Удалите папку и запустите службу.
Остановка службы агента обрывает сеансы во ВСЕХ базах этого сервера. Делайте это только в согласованное окно. Остальные папки и файлы в reg_1541 (список кластера 1CV8Clst.lst, папки других баз) не трогайте — без них кластер потеряет настройки.
Файловая база на сервере
Если база файловая и просто лежит в общей папке сервера, удаление — это удаление всего её каталога: 1Cv8.1CD и служебных файлов рядом. Сначала убедитесь, что никто не работает
в базе: пока файл открыт хотя бы одним пользователем, Windows его не отдаст. В оснастке «Общие папки» → «Открытые файлы» видно, кто держит 1Cv8.1CD.
Веб-публикация
Если базу публиковали на веб-сервере, удалите публикацию — иначе по адресу будет открываться ошибка подключения к несуществующей базе.
- IIS: удалите виртуальный каталог базы в диспетчере IIS, затем папку публикации с файлом
default.vrd. - Apache: удалите блок публикации из
httpd.conf(строкиAlias,<Directory>иib=с именем базы), перезапустите Apache, удалите папку сdefault.vrd. - Утилита webinst умеет удалять публикацию ключом
-delete; точный набор параметров для вашей версии смотрите в выводеwebinst -?.
Списки баз и кэш на компьютерах пользователей
На клиентах база остаётся строкой в окне запуска и кэшем:
- 📄 Список баз:
%APPDATA%\1C\1CEStart\ibases.v8i. Проще удалить строку через окно запуска 1С кнопкой «Удалить». - 🧹 Кэш: папки с идентификаторами в
%APPDATA%\1C\1cv8\и%LOCALAPPDATA%\1C\1cv8\. Удаление кэша безопасно для других баз: платформа заново создаст его при следующем запуске. - 🗂️ Общий список баз. Если базы раздаются через
1CEStart.cfg(параметрCommonInfoBases) или через сервер списка баз, уберите строку и там. Иначе база вернётся в окно запуска у всех.
5. Реестр Windows, службы и задачи: что действительно нужно чистить
Информационные базы 1С в реестре Windows не регистрируются. Список баз хранится в файлах, кластер — в srvinfo. Поэтому «чистка реестра от базы» сводится к проверке смежных мест.
Где реально остаются следы базы:
- ⏰ Планировщик заданий Windows. Задачи, запускающие
1cv8.exeс параметром/S<сервер>\<база>или пакетные файлы выгрузки. - 📜 Скрипты и ярлыки. Ярлыки на рабочих столах с параметром
/IBNameили/S, bat-файлы резервного копирования. - 🔄 Другие базы. Узлы планов обмена, в которых удалённая база указана как получатель. Их нужно пометить на удаление или отключить синхронизацию в базе-партнёре.
- 🔐 Брандмауэр и порты. Если под базу открывали отдельный кластер с нестандартными портами, правила стоит закрыть.
В реестре записи относятся к платформе, а не к базам: службы сервера 1С (ветка HKLM\SYSTEM\CurrentControlSet\Services), данные установщика, регистрация COM-компонент. Их убирает штатная деинсталляция платформы, ручная правка не нужна.
6. Удаление платформы 1С:Предприятие, если сервер больше не нужен
Платформу удаляют, только когда сервер 1С выводится из эксплуатации или переносится. Если на сервере остались другие базы, этот раздел пропустите.
- Убедитесь, что в кластере не осталось информационных баз:
rac infobase summary listвозвращает пустой список. - Остановите службы агента сервера 1С и сервера администрирования (
ras), если он установлен службой. - Удалите все версии платформы через «Программы и компоненты» (
appwiz.cpl). Каждая версия удаляется отдельно. - Проверьте, что службы исчезли:
sc query state= all | findstr /i 1C. Если служба осталась (например, регистрировали вручную), удалите еёsc delete "<точное имя службы>". - Удалите каталог
srvinfoи остаткиC:\Program Files\1cv8\.
Каталог C:\ProgramData\1C\licenses хранит программные лицензии сервера. Если лицензию планируется перенести на другой сервер, не удаляйте файлы вслепую: перенос программной лицензии выполняется через повторную активацию, и для неё понадобятся пин-коды комплекта.
На Linux платформа удаляется пакетным менеджером (apt remove или dnf remove пакетов 1c-enterprise-*), служба — через systemctl disable и удаление её unit-файла, если он создавался вручную.
7. Как проверить, что база удалена полностью
Пройдитесь по всем трём уровням.
| Проверка | Как | Ожидаемый результат |
|---|---|---|
| Кластер | rac infobase summary list --cluster=<uuid> или консоль | базы нет в списке |
| MS SQL | SELECT name FROM sys.databases; | имени базы нет |
| PostgreSQL | SELECT datname FROM pg_database; или \l в psql | имени базы нет |
| Диск сервера 1С | содержимое reg_1541 | нет папки с идентификатором базы |
| Диск СУБД | каталог файлов данных | нет .mdf/.ldf базы, место освободилось |
| Веб | адрес бывшей публикации | 404, а не ошибка 1С |
| Клиенты | окно запуска 1С | базы нет в списке |