Удаление информационной базы 1С из кластера, MS SQL, PostgreSQL и с диска

· 9 мин

Содержание

Клиент-серверную базу 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С Предприятия».

Пошагово

  1. Откройте консоль и разверните Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → Локальный кластер → Информационные базы.
  2. Если кластер защищён, консоль спросит логин и пароль администратора кластера.
  3. Убедитесь, что в узле Сеансы для этой базы пусто. Иначе удаление может завершиться ошибкой.
  4. Щёлкните базу правой кнопкой и выберите «Удалить».
  5. Введите имя и пароль администратора информационной базы — пользователя 1С с полными правами. Если пользователей в базе нет, поле оставьте пустым.
  6. Выберите действие с базой данных в СУБД и подтвердите.

Три варианта в диалоге удаления

ВариантЧто произойдётКогда выбирать
Удалить базу данныхРегистрация в кластере и база в СУБД удаляютсяБазу больше не используют
Очистить базу данныхБаза в СУБД остаётся, но таблицы 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.

Порядок такой:

  1. Запустите ras, если он не запущен как служба: ras cluster --daemon (Linux) или служба ras на Windows — её регистрируют отдельно, по умолчанию она не создаётся.
  2. Узнайте идентификатор кластера: rac cluster list.
  3. Найдите идентификатор базы: rac infobase --cluster=<uuid> summary list.
  4. Удалите базу командой 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

  1. Подключитесь к экземпляру SQL Server под учётной записью с правами sysadmin или владельца базы.
  2. В обозревателе объектов раскройте Databases, щёлкните базу правой кнопкой → Delete.
  3. Внизу окна поставьте флажок Close existing connections — иначе SQL Server откажет, если к базе кто-то подключён (в том числе рабочий процесс 1С).
  4. Флажок Delete backup and restore history information for databases чистит историю бэкапов в msdb. Ставьте его, если старые записи не нужны.
  5. Нажмите 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. Узнайте путь: в окне запуска 1С выделите базу — путь показан внизу, вида File="D:\Bases\Buh2019".
  2. Попросите всех закрыть 1С. Файл, открытый хотя бы одним пользователем, Windows не даст удалить.
  3. Если файл всё равно «занят», посмотрите открытые файлы на сервере: Управление компьютером → Общие папки → Открытые файлы. Оттуда же можно закрыть зависший файл.
  4. Удалите каталог базы целиком.
  5. Уберите базу из списка в окне запуска: выделите её и нажмите «Удалить».

Кнопка «Удалить» в окне запуска убирает только строку из списка. Сама база — файлы или база на сервере — остаётся на месте. Это частая путаница.

Для файловой базы, опубликованной на веб-сервере, публикацию нужно снять отдельно, иначе по старому адресу пользователи получат ошибку.

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 или планировщике, иначе они начнут падать с ошибками.
Хвосты после удаления базы
Выполнено: 0 / 7

8. Где чаще всего ошибаются при удалении базы

  • ❌ Удалили не ту базу. Имена buh и buh_test легко перепутать. Перед удалением откройте свойства базы в консоли и сверьте имя сервера СУБД и имя базы данных.
  • ❌ Удалили базу в SQL, забыли про кластер. Регистрация остаётся, пользователи видят ошибку подключения к базе данных. Лечится удалением регистрации с вариантом «Оставить без изменений».
  • ❌ Удалили регистрацию, забыли про SQL. База живёт в СУБД годами и съедает место. Раз в год полезно сравнить список баз в СУБД со списком в кластере.
  • ❌ Бэкап лежал на том же диске. Его стёрли вместе с папкой данных при «уборке». Копию храните на другом носителе.
  • ❌ Не отключили РИБ. Центральный узел продолжает формировать пакеты обмена для несуществующей базы. Удалите узел в плане обмена главной базы.

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

Можно ли восстановить удалённую базу 1С без резервной копии?
Как правило, нет. После DROP DATABASE СУБД освобождает место, и данные перезаписываются. Шанс есть только у файловой базы через программы восстановления файлов, если на диск после удаления ничего не писали.
Нужны ли права администратора 1С, чтобы удалить базу из кластера?
Если в базе заведены пользователи — да, консоль попросит логин и пароль пользователя с административными правами. Без них удалить базу через консоль не получится, останется вариант через СУБД.
Освобождается ли лицензия после удаления базы?
Клиентские лицензии не привязаны к конкретной базе: их занимают сеансы. Когда сеансы удалённой базы завершены, лицензии сразу доступны для работы в других базах.
Почему после удаления базы в MS SQL диск не освободился?
База могла быть в состоянии OFFLINE или отсоединена — тогда файлы .mdf и .ldf остаются в папке данных. Проверьте её и удалите файлы вручную. Также проверьте, не остались ли рядом старые .bak.
Можно ли удалить базу, не останавливая сервер 1С?
Да. Для удаления через консоль или rac достаточно завершить сеансы именно этой базы. Остановка службы нужна лишь для ручной чистки папки в srvinfo.