Удаление информационной базы из кластера 1С и из СУБД без сюрпризов
Содержание
Чтобы удалить базу 1С с сервера, откройте консоль администрирования серверов 1С, раскройте кластер, затем узел Информационные базы, нажмите правой кнопкой на базу и выберите Удалить. Программа спросит, что делать с базой данных в СУБД: оставить её, удалить или очистить. Нужны права администратора кластера и администратора самой информационной базы.
Частое заблуждение — что базу удаляет кнопка Удалить в окне запуска 1С. Она убирает только строчку из списка на вашем компьютере. База на сервере остаётся, занимает место и продолжает числиться в кластере. Правильное удаление базы из 1С с сервера всегда идёт через кластер или через СУБД.
1. Что сделать до удаления базы 1С
Удаление в консоли кластера с флагом «удалить базу данных» необратимо. Корзины нет. Поэтому сначала короткая подготовка.
Сделайте копию, даже если база «точно не нужна»:
- 💾 Выгрузка в
.dt: Конфигуратор →Администрирование → Выгрузить информационную базу. Файл переносим между СУБД и версиями. - 🗄️ Бэкап средствами СУБД:
BACKUP DATABASEв MS SQL илиpg_dumpв PostgreSQL. Для больших баз быстрее, чем.dt. - 📜 Журнал регистрации. В клиент-серверном варианте он лежит в каталоге кластера, в папке с идентификатором базы (подробнее — в разделе 5). После удаления базы его не прочитать штатными средствами.
Проверьте зависимости:
- Нет ли у базы узлов обмена с другими базами. Если она — центральный узел РИБ или источник для Бухгалтерии, обмен в соседних базах начнёт падать с ошибками.
- Не опубликована ли она на веб-сервере. Публикация в IIS или Apache переживёт удаление и будет отдавать ошибку.
- Нет ли внешних заданий: скриптов резервного копирования, регламентов на другом сервере, интеграций по COM или HTTP.
- Кто ещё работает в базе. Сеансы при удалении оборвутся.
Перед удалением предупредите пользователей. Открытые сеансы будут прерваны, несохранённые документы пропадут. Удаляйте базу вне рабочего времени или после того, как все вышли.
Если сомневаетесь, нужна ли база, не удаляйте её сразу. Включите в её свойствах блокировку начала сеансов на неделю-две. Если никто не пришёл жаловаться — удаляйте.
2. Удаление базы через консоль кластера серверов 1С
Это основной способ для Windows. Консоль администрирования ставится вместе с сервером 1С или отдельным компонентом «Администрирование сервера 1С:Предприятия».
Пошагово
- Запустите
Администрирование серверов 1С Предприятияиз меню «Пуск». - Раскройте
Central 1C:Enterprise 8.3 servers→ имя сервера →Кластеры→ нужный кластер. Если кластер защищён, консоль запросит логин и пароль администратора кластера. - Перейдите в
Сеансыи проверьте, кто сейчас в базе. Завершите сеансы правой кнопкой →Удалить, если пользователей уже предупредили. - Откройте узел
Информационные базы, нажмите правой кнопкой на нужную базу и выберитеУдалить. - В окне удаления введите имя и пароль администратора информационной базы. Если в базе нет ни одного пользователя, поля оставьте пустыми.
- Выберите, что делать с базой данных в СУБД (см. таблицу ниже), и подтвердите.
| Вариант | Что происходит | Когда выбирать |
|---|---|---|
| Оставить базу данных без изменений | База исчезает из кластера, данные в СУБД остаются | Хотите перенести базу на другой сервер или удалить данные позже вручную |
| Удалить базу данных | Кластер удаляет и регистрацию, и саму БД в СУБД | База больше не нужна, копия сделана |
| Очистить базу данных | БД в СУБД остаётся, но все таблицы удаляются | Нужно пустое место под новую базу с тем же именем и настройками СУБД |
Вариант «Оставить без изменений» — самый безопасный. Базу всегда можно снова зарегистрировать в кластере, указав ту же базу данных в СУБД. Данные и пользователи сохранятся.
Если консоль не открывается
Самая частая причина — после обновления платформы не зарегистрирована библиотека консоли. Выполните от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1691\bin\radmin.dll"
Номер версии в пути замените на установленный у вас. Версия консоли должна совпадать с версией сервера 1С.
3. Почему Конфигуратор не удаляет серверную базу
В Конфигураторе нет команды удаления информационной базы. Он работает с конфигурацией и данными внутри базы, а саму базу как объект кластера не трогает. Через Конфигуратор делается только подготовка: выгрузка .dt и, при необходимости, проверка, что база действительно та.
Окно запуска 1С работает со списком баз из файла ibases.v8i. Он лежит в профиле пользователя:
%APPDATA%\1C\1CEStart\ibases.v8i
Кнопка Удалить в окне запуска убирает запись из этого файла. Данные не затрагиваются ни на сервере, ни на диске.
Как удалить файловую базу
Файловая база — это папка с файлом 1Cv8.1CD. Порядок такой:
- Посмотрите путь к базе: в окне запуска выделите её и прочитайте строку внизу окна (
File="D:\Bases\Buh"). - Удалите базу из списка кнопкой
Удалить. - Убедитесь, что в базе никто не работает , и удалите папку целиком через проводник.
Если папка не удаляется — файл 1Cv8.1CD занят чьим-то процессом. Значит, кто-то ещё открыл базу по сети. Найдите пользователя или процесс 1cv8.exe на сервере, где лежит папка.
Кэш удалённой базы в %LOCALAPPDATA%\1C\1cv8\ можно не чистить вручную: он занимает немного и не мешает. Но если удаляете много баз, папки с идентификаторами старых баз можно убрать при закрытой 1С.
4. Удаление базы с сервера 1С командной строкой: rac и SQL
Для Linux и для массовых операций удобнее утилита rac. Она работает через сервер администрирования ras, который нужно запустить заранее. Порт ras по умолчанию — 1545.
Запуск ras
На Linux:
/opt/1cv8/x86_64/8.3.24.1691/ras cluster --daemon
На Windows ras обычно регистрируют как службу. Готовая служба есть не всегда: её создают командой sc create с путём к ras.exe и параметром cluster --service.
Порядок команд rac
- Получите идентификатор кластера:
rac localhost:1545 cluster list
- Найдите идентификатор базы по имени:
rac localhost:1545 infobase summary list --cluster=<UUID-кластера>
- Удалите базу:
rac localhost:1545 infobase drop \
--cluster=<UUID-кластера> \
--infobase=<UUID-базы> \
--infobase-user="Администратор" --infobase-pwd="пароль" \
--drop-database
Вместо --drop-database можно указать --clear-database (очистить БД) или не указывать ни один из флагов — тогда база данных в СУБД останется. Если на кластере есть администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров для вашей версии покажет rac help infobase.
Пароли в командной строке попадают в историю оболочки. После работы очистите историю или передавайте пароли через переменные окружения в скрипте с ограниченными правами.
Удаление только средствами СУБД
Иногда регистрация в кластере уже снята, а база данных в SQL осталась. Тогда удаляйте её напрямую.
MS SQL Server (в SQL Server Management Studio):
ALTER DATABASE [buh_test] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [buh_test];
Первая команда обрывает все подключения к базе, вторая удаляет её вместе с файлами .mdf и .ldf.
PostgreSQL (версии 13 и новее):
DROP DATABASE buh_test WITH (FORCE);
В более ранних версиях сначала завершите подключения:
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'buh_test';
DROP DATABASE buh_test;
Не удаляйте базу в СУБД, пока она зарегистрирована в кластере. Кластер продолжит считать её живой, пользователи получат ошибку подключения к СУБД, а регистрация «повиснет». Сначала кластер, потом СУБД — или сразу флагом --drop-database.
5. Как ведут себя разные СУБД и что остаётся на сервере
Кластер 1С сам удаляет базу данных только тогда, когда пользователь СУБД, указанный в свойствах информационной базы, имеет на это права. Отсюда разница по СУБД.
| СУБД | Что нужно для удаления БД из консоли | Что может остаться |
|---|---|---|
| MS SQL Server | Права на удаление базы у пользователя SQL (роль dbcreator или sysadmin) | Логин SQL, задания SQL Agent на бэкап этой базы |
| PostgreSQL | Пользователь — владелец базы или суперпользователь | Роль PostgreSQL, задания cron с pg_dump |
| Oracle, IBM Db2 | Права зависят от схемы установки, часто удаление выполняет администратор СУБД | Схемы и табличные пространства — согласуйте с DBA |
Остатки в каталоге кластера. Для каждой базы сервер 1С создаёт папку с её идентификатором в рабочем каталоге кластера. Там журнал регистрации (1Cv8Log) и индексы полнотекстового поиска. Типичные пути:
- Windows:
C:\Program Files\1cv8\srvinfo\reg_1541\<UUID-базы> - Linux:
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<UUID-базы>
После удаления базы такая папка иногда остаётся. Её можно удалить вручную, но только убедившись, что UUID действительно принадлежал удалённой базе: сверьте с выводом rac infobase summary list до удаления.
Запишите UUID базы ещё до удаления. Потом найти, какая из десятка папок в reg_1541 «осиротела», будет намного сложнее.
Не забудьте про хвосты вне 1С:
- 🌐 публикацию на веб-сервере (
default.vrdи настройку в IIS или Apache); - 🔁 задания резервного копирования, которые будут падать каждую ночь;
- 🔑 логин SQL или роль PostgreSQL, если они создавались под эту базу;
- 📋 ярлыки и списки баз у пользователей — разошлите обновлённый
ibases.v8iили поправьте общий список.
6. Автоматическое удаление баз: скрипт и планировщик
Автоматизация нужна, когда регулярно создаются временные базы: тестовые копии для проверки обновлений, базы для обучения, стенды разработчиков. Удалять рабочие базы по расписанию не нужно.
Схема простого скрипта для Windows:
- Выгрузить базу
в
.dtпакетным запуском Конфигуратора. - Удалить базу через
racс флагом--drop-database. - Записать результат в лог.
@echo off
set V8=C:\Program Files\1cv8\8.3.24.1691\bin
set RAC="%V8%\rac.exe" localhost:1545
set CL=<UUID-кластера>
set IB=<UUID-базы>
"%V8%\1cv8.exe" DESIGNER /S "srv1c\buh_test" /N "Администратор" /P "пароль" ^
/DumpIB "D:\Archive\buh_test.dt" /Out "D:\Archive\buh_test_dump.log"
if errorlevel 1 (
echo Выгрузка не удалась, база не удалена >> D:\Archive\drop.log
exit /b 1
)
%RAC% infobase drop --cluster=%CL% --infobase=%IB% ^
--infobase-user="Администратор" --infobase-pwd="пароль" --drop-database >> D:\Archive\drop.log 2>&1
Проверка errorlevel после выгрузки — ключевая строка. Если копия не сделалась, база не удаляется.
Запуск по расписанию:
- Windows: «Планировщик заданий» → создать задачу
→ действие «Запуск программы» → путь к
.bat. Запускайте от учётной записи, у которой есть доступ к папке архива. - Linux: строка в
crontabпользователя, от которого работаетras, с запуском shell-скрипта той же логики.
7. Базы в 1С:Fresh и в арендованном облаке
В облаке у вас нет доступа к кластеру и СУБД, поэтому rac и SQL не помогут.
1С:Fresh и сервисы на его технологии. База там называется приложением. Удаляет её владелец абонента или администратор абонента через личный кабинет сервиса, в списке приложений. Перед удалением скачайте копию приложения — сервис позволяет выгрузить её в файл и потом загрузить в локальную 1С.
Аренда 1С у хостинга (RDP или веб-доступ). Обычно база числится в договоре или в панели управления провайдера. Удаление делает провайдер по заявке или через свою панель. Сразу попросите выгрузку .dt и уточните, через сколько дней данные стираются окончательно и не продолжает ли база тарифицироваться.
В облаке удаление базы часто не уменьшает счёт автоматически. Проверьте, что вместе с базой отключили и связанные услуги: дополнительные места, хранение копий.
8. Ошибки при удалении базы с сервера
Отдельный случай — база «зависла» в кластере: удалить её не дают активные фоновые задания или сеансы, которые возвращаются. Включите в свойствах базы блокировку регламентных заданий и блокировку начала сеансов, завершите сеансы и повторите удаление. Перезапуск службы сервера 1С тоже помогает, но обрывает работу всех баз кластера — делайте это только вне рабочего времени.