Удаление информационной базы 1С из кластера, MS SQL, PostgreSQL и с диска
Содержание
Клиент-серверную базу
1С правильно удалять из консоли администрирования серверов 1С: откройте кластер, раздел Информационные базы, выберите базу, нажмите «Удалить» и в диалоге выберите вариант «Удалить базу данных». Так платформа одним действием уберёт регистрацию базы в кластере и сама базу данных на сервере СУБД. Файловую базу
удаляют проще — это папка с файлом 1Cv8.1CD, её стирают целиком.
Сложности начинаются, когда базу удалили только наполовину: из кластера убрали, а в MS SQL или PostgreSQL она осталась и занимает место. Или наоборот, базу данных снесли в СУБД, а в кластере висит «мёртвая» регистрация. Ниже порядок для каждого варианта и проверка, что от базы не осталось хвостов.
1. Что сделать до удаления базы 1С
Удаление необратимо. Корзины у СУБД нет, а консоль кластера не переспрашивает дважды.
Сначала сделайте резервную копию, даже если база «точно не нужна». Через полгода может понадобиться справка за старый период, а восстановить уже будет не из чего.
Два вида копии, лучше обе:
- 💾 Выгрузка
.dt— в КонфигуратореАдминистрирование → Выгрузить информационную базу. Не зависит от СУБД, загружается в любую базу 1С. - 🗄️ Бэкап средствами СУБД —
.bakдля MS SQL, дампpg_dumpдля PostgreSQL. Делается быстрее на больших базах.
Проверьте зависимости — что ещё смотрит на эту базу:
- 🔄 обмены и узлы распределённой базы (РИБ): другие базы будут ждать пакеты и копить ошибки;
- 🌐 публикация на веб-сервере (IIS или Apache) — тонкий клиент, мобильные приложения, HTTP-сервисы;
- ⏰ задания SQL Server Agent и планы обслуживания, скрипты бэкапа в cron или планировщике Windows;
- 👥 пользователи, у которых база в списке запуска;
- 🔐 внешние отчёты и обработки, обращающиеся к базе через COM или OData.
Последний шаг подготовки — отключить людей. В свойствах базы в консоли кластера включите флажок «Блокировка начала сеансов включена», задайте сообщение и при необходимости «Блокировка регламентных заданий включена». Затем завершите активные сеансы в узле Сеансы.
Завершение сеансов обрывает работу пользователей без сохранения. Предупредите их заранее и делайте это вне рабочего времени.
2. Удаление базы через консоль администрирования серверов 1С
Это основной способ для клиент-серверного варианта. Консоль ставится вместе с сервером 1С; запускается из меню «Пуск», папка «1С:Предприятие 8», ярлык «Администрирование серверов 1С Предприятия».
Пошагово
- Откройте консоль и разверните
Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → Локальный кластер → Информационные базы. - Если кластер защищён, консоль спросит логин и пароль администратора кластера.
- Убедитесь, что в узле
Сеансыдля этой базы пусто. Иначе удаление может завершиться ошибкой. - Щёлкните базу правой кнопкой и выберите «Удалить».
- Введите имя и пароль администратора информационной базы — пользователя 1С с полными правами. Если пользователей в базе нет, поле оставьте пустым.
- Выберите действие с базой данных в СУБД и подтвердите.
Три варианта в диалоге удаления
| Вариант | Что произойдёт | Когда выбирать |
|---|---|---|
| Удалить базу данных | Регистрация в кластере и база в СУБД удаляются | Базу больше не используют |
| Очистить базу данных | База в СУБД остаётся, но таблицы 1С из неё удаляются | Нужно сохранить базу в СУБД с её настройками и правами, а данные 1С убрать |
| Оставить базу данных без изменений | Удаляется только регистрация в кластере | Базу переносят на другой сервер 1С или хотят подключить заново |
💡 Вариант «Оставить без изменений» — безопасный способ убрать базу из списка кластера. Данные не пострадают: в любой момент базу можно зарегистрировать снова, указав то же имя базы данных на сервере СУБД.
Если консоль не открывается
Частая причина — не зарегистрирована библиотека radmin.dll после установки или обновления платформы. Регистрация выполняется из командной строки от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1586\bin\radmin.dll"
Номер версии в пути подставьте свой — по фактической папке в C:\Program Files\1cv8. Разрядность библиотеки должна совпадать с разрядностью консоли.
3. Удалить базу 1С из командной строки через rac
На Linux-серверах консоли нет, а на Windows скриптом удобнее, если баз десятки. Для этого есть утилита rac, которая работает через сервер администрирования ras.
Порядок такой:
- Запустите
ras, если он не запущен как служба:ras cluster --daemon(Linux) или служба ras на Windows — её регистрируют отдельно, по умолчанию она не создаётся. - Узнайте идентификатор кластера:
rac cluster list. - Найдите идентификатор базы:
rac infobase --cluster=<uuid> summary list. - Удалите базу командой
drop.
rac cluster list
rac infobase --cluster=<uuid_кластера> summary list
rac infobase --cluster=<uuid_кластера> drop \
--infobase=<uuid_базы> \
--infobase-user=Администратор --infobase-pwd=пароль \
--drop-database
Ключ --drop-database удаляет и базу в СУБД, --clear-database очищает её, без этих ключей снимается только регистрация в кластере. Если на кластере есть администратор, добавьте --cluster-user и --cluster-pwd. Полный список параметров выдаёт rac help infobase.
4. Удаление базы 1С на Microsoft SQL Server вручную
Ручное удаление в MS SQL нужно, когда регистрацию в кластере уже сняли с вариантом «Оставить без изменений» или база в СУБД осталась «сиротой» после переустановки сервера 1С.
Через SQL Server Management Studio
- Подключитесь к экземпляру SQL Server под учётной записью с правами
sysadminили владельца базы. - В обозревателе объектов раскройте
Databases, щёлкните базу правой кнопкой →Delete. - Внизу окна поставьте флажок
Close existing connections— иначе SQL Server откажет, если к базе кто-то подключён (в том числе рабочий процесс 1С). - Флажок
Delete backup and restore history information for databasesчистит историю бэкапов вmsdb. Ставьте его, если старые записи не нужны. - Нажмите
OK.
Через T-SQL
USE master;
GO
ALTER DATABASE [buh_2019] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DROP DATABASE [buh_2019];
GO
ROLLBACK IMMEDIATE откатывает чужие транзакции и отключает всех. Если рабочий процесс 1С держит соединение, сначала завершите сеансы базы в консоли кластера.
Проверьте имя базы дважды. Имя информационной базы в кластере и имя базы данных в SQL могут не совпадать. Точное имя в СУБД видно в свойствах базы в консоли, поле «База данных».
DROP DATABASE удаляет и файлы .mdf/.ldf, если база в состоянии ONLINE. Если база была отсоединена (Detach) или в состоянии OFFLINE, файлы останутся на диске — их стирают вручную из папки данных SQL Server.
После удаления загляните в Security → Logins: если под базу создавали отдельный логин, а другим базам он не нужен, удалите и его.
5. Удаление базы 1С на PostgreSQL
Логика та же: база удаляется командой DROP DATABASE, и PostgreSQL не даст это сделать, пока к ней есть подключения.
Через psql
sudo -u postgres psql
-- кто подключён
SELECT pid, usename, client_addr
FROM pg_stat_activity
WHERE datname = 'buh_2019';
-- отключить всех
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'buh_2019' AND pid <> pg_backend_pid();
DROP DATABASE buh_2019;
В PostgreSQL 13 и новее хватает одной команды: DROP DATABASE buh_2019 WITH (FORCE); — она сама завершит подключения.
Для сборок PostgreSQL от фирмы 1С и Postgres Pro команды те же. Из оболочки можно обойтись без входа в psql: dropdb -U postgres buh_2019.
Через pgAdmin
В дереве Databases щёлкните базу правой кнопкой → Delete (в новых версиях Delete (Force) сразу закрывает подключения). Если пункта с принудительным удалением нет, сначала отключите сеансы запросом выше.
💡 Имена баз в PostgreSQL чувствительны к регистру, если создавались в кавычках. Если DROP DATABASE Buh отвечает, что базы нет, попробуйте DROP DATABASE "Buh";.
6. Как удалить файловую базу 1С
У файловой базы нет сервера и СУБД. Вся база — каталог, внутри которого файл 1Cv8.1CD и служебные файлы.
- Узнайте путь: в окне запуска 1С выделите базу — путь показан внизу, вида
File="D:\Bases\Buh2019". - Попросите всех закрыть 1С. Файл, открытый хотя бы одним пользователем, Windows не даст удалить.
- Если файл всё равно «занят», посмотрите открытые файлы на сервере:
Управление компьютером → Общие папки → Открытые файлы. Оттуда же можно закрыть зависший файл. - Удалите каталог базы целиком.
- Уберите базу из списка в окне запуска: выделите её и нажмите «Удалить».
Кнопка «Удалить» в окне запуска убирает только строку из списка. Сама база — файлы или база на сервере — остаётся на месте. Это частая путаница.
Для файловой базы, опубликованной на веб-сервере, публикацию нужно снять отдельно, иначе по старому адресу пользователи получат ошибку.
7. Проверка после удаления и очистка хвостов
База удалена, но следы остаются в нескольких местах. Пройдитесь по списку.
На сервере 1С
- 📁 Каталог кластера
srvinfo(по умолчаниюC:\Program Files\1cv8\srvinfoили/home/usr1cv8/.1cv8/1C/1cv8на Linux), внутриreg_1541— папки с именами-идентификаторами баз. После штатного удаления папка базы обычно исчезает. Если осталась, удаляйте её при остановленной службе сервера 1С. - 📋 В консоли кластера база не должна значиться в
Информационных базах, а вСеансахиСоединенияхне должно быть записей с её именем.
Остановка службы сервера 1С обрывает работу всех баз кластера, а не только удалённой. Делайте это ночью или в выходные.
На сервере СУБД
- MS SQL:
SELECT name FROM sys.databases;— базы в списке нет. - PostgreSQL:
\lв psql — то же. - Свободное место на диске с данными выросло примерно на размер базы.
У пользователей
- 🗂️ Строка в окне запуска — удаляется кнопкой «Удалить» или правкой файла
%APPDATA%\1C\1CEStart\ibases.v8i. - 🧹 Локальный кэш базы — папки с идентификатором базы в
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8. Удалять их безопасно при закрытой 1С. - Если список баз раздаётся централизованно через общий файл
.v8i, поправьте его, иначе база вернётся в список у всех.
Публикации и задания
- Снимите веб-публикацию: в Конфигураторе
Администрирование → Публикация на веб-сервере → Отключитьили удалите приложение в IIS / секцию в конфигурации Apache. - Отключите задания бэкапа в SQL Server Agent, cron или планировщике, иначе они начнут падать с ошибками.
8. Где чаще всего ошибаются при удалении базы
- ❌ Удалили не ту базу. Имена
buhиbuh_testлегко перепутать. Перед удалением откройте свойства базы в консоли и сверьте имя сервера СУБД и имя базы данных. - ❌ Удалили базу в SQL, забыли про кластер. Регистрация остаётся, пользователи видят ошибку подключения к базе данных. Лечится удалением регистрации с вариантом «Оставить без изменений».
- ❌ Удалили регистрацию, забыли про SQL. База живёт в СУБД годами и съедает место. Раз в год полезно сравнить список баз в СУБД со списком в кластере.
- ❌ Бэкап лежал на том же диске. Его стёрли вместе с папкой данных при «уборке». Копию храните на другом носителе.
- ❌ Не отключили РИБ. Центральный узел продолжает формировать пакеты обмена для несуществующей базы. Удалите узел в плане обмена главной базы.
9. Частые вопросы
Можно ли восстановить удалённую базу 1С без резервной копии?
DROP DATABASE СУБД освобождает место, и данные перезаписываются. Шанс есть только у файловой базы через программы восстановления файлов, если на диск после удаления ничего не писали.Нужны ли права администратора 1С, чтобы удалить базу из кластера?
Освобождается ли лицензия после удаления базы?
Почему после удаления базы в MS SQL диск не освободился?
OFFLINE или отсоединена — тогда файлы .mdf и .ldf остаются в папке данных. Проверьте её и удалите файлы вручную. Также проверьте, не остались ли рядом старые .bak.Можно ли удалить базу, не останавливая сервер 1С?
rac достаточно завершить сеансы именно этой базы. Остановка службы нужна лишь для ручной чистки папки в srvinfo.