К статье
Практический материал

Администрирование · 9 мин

Как удалить базу 1С с сервера SQL

Как безопасно удалить базу 1С с сервера SQL: резервная копия, отключение сеансов, удаление через SSMS и T-SQL, очистка кластера 1С и проверка результата.

Удаление базы 1С с сервера SQL — типовая задача администратора: так поступают при выводе из эксплуатации тестовых копий, устаревших архивов прошлых лет или баз, перенесённых на другой сервер. Операция необратима: вместе с базой удаляются все данные, хранящиеся в таблицах, поэтому порядок действий и предварительные проверки важнее самой команды удаления.

Важно понимать, что в клиент-серверной архитектуре 1С существуют два связанных объекта: запись об информационной базе в кластере сервера 1С:Предприятия и сама база данных на SQL Server. Удаление только одного из них приводит к «мусору»: либо кластер ссылается на несуществующую базу, либо на дисках остаются файлы данных, занимающие место.

Ниже описан полный цикл: подготовка и резервное копирование, отключение пользователей, удаление через SQL Server Management Studio и T-SQL, очистка записи в консоли кластера, а также проверка того, что файлы данных действительно освобождены.

Подготовка: что проверить перед удалением

Перед удалением убедитесь, что вы точно знаете, какая база подлежит удалению. На одном SQL Server обычно работает несколько баз 1С, и их имена могут отличаться одной буквой или суффиксом (_test, _old, 2023). Ошибка в имени — самая частая причина потери рабочей базы.

Проверьте сопоставление: в консоли кластера серверов 1С откройте свойства информационной базы и посмотрите значение поля «База данных» — это точное имя базы на SQL Server. Сверьте его со списком баз в SSMS. Если баз несколько, зафиксируйте имя письменно.

Также выясните, не используется ли база внешними системами: обменами данными, планами обслуживания, заданиями агента SQL Server, отчётными инструментами. Удаление базы, на которую ссылается план обмена, приведёт к ошибкам в смежных системах.

Имя базы в кластере 1ССвойства информационной базы

Поле «База данных» должно совпадать с именем в SSMS

Активные сеансыЕсть подключённые пользователи

Завершите сеансы перед удалением, иначе операция завершится ошибкой

Резервная копияОтсутствует или устарела

Создайте свежий бэкап и проверьте его восстановлением на тестовом сервере

Резервное копирование — обязательный шаг

Даже если база кажется «точно ненужной», сделайте полную резервную копию средствами SQL Server. Практика показывает, что запросы на восстановление «удалённой навсегда» базы возникают спустя недели и месяцы — например, когда понадобился документ из архива или данные для налоговой проверки.

Резервную копию создают через SSMS: правый клик по базе → «Задачи» → «Создать резервную копию», тип — «Полная». Укажите путь к файлу .bak на диске с достаточным свободным местом. Альтернатива — команда T-SQL: BACKUP DATABASE [ИмяБазы] TO DISK = N'D:\Backup\ИмяБазы.bak'.

Файл копии храните отдельно от сервера, с которого удаляете базу. Идеальный вариант — проверить копию восстановлением на тестовом сервере: только так можно убедиться, что бэкап не повреждён.

Завершение сеансов и блокировка базы

SQL Server не даст удалить базу, пока к ней есть активные подключения. Сначала завершите сеансы пользователей: в консоли кластера 1С откройте ветку «Сеансы», отфильтруйте по нужной базе и удалите сеансы. Затем в свойствах информационной базы установите блокировку начала сеансов, чтобы пользователи не подключились снова.

Дополнительно проверьте фоновые задания и регламентные операции: они тоже держат соединения. Если соединения остаются, можно перевести базу в однопользовательский режим с принудительным разрывом подключений командой ALTER DATABASE [ИмяБазы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE.

Порядок действий
  1. 1
    Создайте полную резервную копию базы и сохраните файл вне сервера
  2. 2
    Завершите сеансы пользователей в консоли кластера 1С и включите блокировку сеансов
  3. 3
    Переведите базу в SINGLE_USER при наличии зависших соединений
  4. 4
    Удалите запись информационной базы в консоли кластера, выбрав режим без удаления базы данных СУБД
  5. 5
    Удалите базу данных через SSMS или командой DROP DATABASE
  6. 6
    Проверьте, что файлы .mdf и .ldf удалены, и освободите место на дисках

Удаление записи в консоли кластера 1С

В консоли управления серверами 1С выберите информационную базу, откройте контекстное меню и нажмите «Удалить». Появится диалог с выбором режима: «Удалить информационную базу» (вместе с базой данных СУБД) или «Очистить информацию о базе» (удаляется только запись в кластере, база на SQL Server остаётся).

Рекомендуемый путь — выбрать очистку записи без удаления базы данных, а саму базу удалить отдельно средствами SQL Server. Так вы контролируете каждый этап и снижаете риск ошибок, связанных с правами учётной записи сервера 1С на СУБД.

Удаление базы данных на SQL Server

Через SQL Server Management Studio

В SSMS подключитесь к нужному экземпляру, раскройте узел «Базы данных», найдите целевую базу и в контекстном меню выберите «Удалить». В окне удаления отметьте флажок «Закрыть существующие соединения» — это автоматически разорвёт оставшиеся подключения. Подтвердите операцию кнопкой «ОК».

Через T-SQL

Тот же результат даёт команда DROP DATABASE [ИмяБазы]. Перед ней убедитесь, что текущий контекст — база master, и что активных соединений нет. При необходимости сначала выполните перевод в SINGLE_USER, как описано выше.

sql
USE master;
GO
ALTER DATABASE [MyBase1C] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DROP DATABASE [MyBase1C];
GO

После DROP DATABASE файлы данных (.mdf) и журнала транзакций (.ldf) удаляются с диска автоматически. Если база была переведена в OFFLINE перед удалением, файлы могут остаться — их придётся удалить вручную из каталога данных SQL Server.

Проверка результата и очистка остатков

Убедитесь, что база исчезла из списка в SSMS (обновите узел «Базы данных»), а запись удалена из консоли кластера 1С. Проверьте каталог данных SQL Server: файлы с именем удалённой базы не должны там остаться.

Дополнительно проверьте задания агента SQL Server и планы обслуживания: шаги, ссылавшиеся на удалённую базу, будут завершаться ошибкой. Удалите или отключите такие задания. Также убедитесь, что список баз в файле ibases.v8i на клиентских машинах не содержит ссылок на удалённую базу — иначе пользователи получат ошибку при запуске.

Контрольные точки

Как проверить результат

Список баз в SSMS
Норма

Удалённой базы нет в списке

Тревожный признак

База на месте — удаление не выполнено

Каталог данных SQL Server
Норма

Файлы .mdf и .ldf отсутствуют

Тревожный признак

Файлы остались — удалите вручную после проверки

Журнал агента SQL Server
Норма

Нет ошибок обращения к удалённой базе

Тревожный признак

Задания завершаются ошибкой — отключите устаревшие задания

Типичные ошибки и ограничения

Самая распространённая ошибка — попытка удалить базу при активных соединениях: SQL Server вернёт ошибку, и администратор тратит время на поиск «зависших» сеансов. Вторая частая проблема — удаление не той базы из-за похожих имён. Третья — забытые файлы данных после удаления базы в состоянии OFFLINE, которые продолжают занимать дисковое пространство.

Учтите ограничение: удалить базу может только учётная запись с правами sysadmin или владелец базы. Если операция выполняется из консоли кластера 1С, права нужны учётной записи службы сервера 1С, а не администратора кластера.

Типичные ошибки
01
Удаление без резервной копии — данные теряются без возможности восстановления
02
Удаление базы при активных сеансах — операция завершается ошибкой, сеансы приходится искать повторно
03
Путаница между именами баз со схожими названиями — удаляется рабочая база вместо тестовой
04
Забытые задания агента SQL Server — журнал заполняется ошибками обращения к несуществующей базе
Итог

Что важно запомнить

Безопасное удаление базы 1С с SQL Server — это последовательность: резервная копия, завершение сеансов, очистка записи в кластере, удаление базы данных и контроль остаточных файлов и заданий. Каждый пропущенный шаг создаёт риск потери данных или мусора в инфраструктуре.

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

Можно ли восстановить базу 1С после DROP DATABASE?

Только из резервной копии. Сама команда DROP DATABASE удаляет файлы данных безвозвратно. Поэтому перед удалением всегда создавайте полный бэкап и желательно проверяйте его восстановлением на тестовом сервере.

Что произойдёт, если удалить базу на SQL Server, но оставить запись в кластере 1С?

Запись останется в списке информационных баз, но при попытке подключения пользователи получат ошибку соединения с СУБД. Такую «мёртвую» запись следует удалить из консоли кластера в режиме очистки информации о базе.

Нужно ли останавливать службу сервера 1С перед удалением базы?

Нет, останавливать службу не требуется. Достаточно завершить сеансы конкретной базы и заблокировать новые подключения. Сервер 1С продолжит обслуживать остальные базы.

Почему после удаления базы файлы .mdf и .ldf остались на диске?

Так бывает, если база перед удалением была переведена в состояние OFFLINE — в этом случае DROP DATABASE не удаляет файлы. Удалите их вручную из каталога данных SQL Server, предварительно убедившись, что это файлы именно удалённой базы.

Чем удаление базы отличается от отсоединения (Detach)?

При отсоединении база снимается с регистрации в SQL Server, но файлы .mdf и .ldf остаются на диске — базу можно присоединить обратно на этом или другом сервере. Detach подходит для переноса или архивации, DROP DATABASE — для окончательного удаления.

Как удалить базу, если нет доступа к консоли кластера 1С?

Можно удалить базу данных напрямую через SSMS или T-SQL — технически этого достаточно. Но запись в кластере останется, поэтому при первой возможности попросите администратора кластера очистить её, чтобы избежать ошибок у пользователей.