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

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

Как удалить базу на сервере 1С: полная инструкция

Как удалить базу на сервере 1С: удаление через консоль кластера, из MS SQL и PostgreSQL, отличия файлового и клиент-серверного варианта, резервные копии и типичные ошибки.

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

Перед удалением обязательно определите, зачем вы это делаете: база устарела и больше не нужна, её переносят на другой сервер или требуется пересоздать пустую базу с тем же именем. От цели зависит, нужна ли финальная резервная копия и в каком порядке выполнять действия. В большинстве случаев перед удалением делают выгрузку в файл .dt или полный backup средствами СУБД — это единственная страховка от необратимой потери данных.

Ниже разобраны оба сценария: работа через консоль администрирования серверов 1С и удаление базы непосредственно в MS SQL Server и PostgreSQL, а также проверка результата и типичные ошибки.

Что именно удаляется: запись в кластере и база данных на СУБД

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

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

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

Подготовка: резервная копия и завершение сеансов

Удаление базы — необратимая операция. Даже если база «точно не нужна», практика показывает, что через месяц может понадобиться один документ или справочник из неё. Поэтому первый шаг — резервная копия. Для небольших баз достаточно выгрузки в файл .dt через конфигуратор (Администрирование → Выгрузить информационную базу). Для больших баз выгрузка в .dt может занимать часы, поэтому надёжнее сделать полный backup средствами СУБД.

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

Удаление базы через консоль кластера серверов 1С

Основной и рекомендуемый способ — консоль администрирования серверов 1С (в Windows она открывается через «Администрирование серверов 1С Предприятия»). Порядок действий следующий.

Порядок удаления через консоль кластера
  1. 1
    Сделайте выгрузку .dt или backup средствами СУБД и убедитесь, что копия создана
  2. 2
    Откройте консоль администрирования серверов 1С и раскройте нужный кластер
  3. 3
    В ветке «Информационные базы» найдите нужную базу и завершите все её сеансы
  4. 4
    Откройте свойства базы и при необходимости установите блокировку начала сеансов
  5. 5
    Щёлкните по базе правой кнопкой мыши и выберите «Удалить»
  6. 6
    В диалоге выберите вариант «Удалить базу данных» (а не «оставить» или «очистить»), если данные на СУБД тоже не нужны
  7. 7
    Подтвердите действие и дождитесь завершения операции
  8. 8
    Проверьте на СУБД, что база данных действительно удалена

В диалоге удаления предлагается три варианта. «Удалить базу данных» — полное удаление и записи в кластере, и базы на СУБД. «Оставить базу данных» — удаляется только регистрация в кластере, данные остаются (подходит при переносе или если база понадобится позже). «Очистить базу данных» — структура и запись остаются, но все данные стираются; этот вариант используют редко, в основном для подготовки пустой базы.

Для выполнения операции учётная запись, указанная в свойствах базы для подключения к СУБД, должна иметь права на удаление базы данных. Если прав недостаточно, консоль выдаст ошибку, и запись в кластере тоже может не удалиться — тогда действия придётся повторить после выдачи прав или удалить объекты по отдельности.

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

Если база на СУБД осталась после удаления записи из кластера (или кластер уже недоступен), её удаляют через SQL Server Management Studio (SSMS). Подключитесь к экземпляру SQL Server, раскройте узел «Базы данных», найдите нужную базу по имени — оно указано в свойствах информационной базы в кластере.

Щёлкните по базе правой кнопкой, выберите «Удалить» (Delete) и в диалоге обязательно установите флажок «Закрыть существующие соединения» (Close existing connections). Без этой отметки удаление завершится ошибкой, если к базе есть хоть одно активное подключение — например, от работающего сервера 1С.

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

Альтернатива графическому интерфейсу — T-SQL команда DROP DATABASE. Перед ней базу переводят в однопользовательский режим с принудительным разрывом соединений, как показано выше. Имя базы подставьте своё; ошибка в имени приведёт к удалению не той базы, поэтому имя лучше скопировать из свойств, а не набирать вручную.

Удаление базы данных в PostgreSQL

В PostgreSQL базу удаляют через pgAdmin или командой SQL. В pgAdmin: подключитесь к серверу, найдите базу в дереве, щёлкните правой кнопкой и выберите «Delete/Drop». Активные подключения помешают удалению, поэтому сначала остановите службу агента сервера 1С или завершите сеансы.

sql
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mybase1c' AND pid <> pg_backend_pid();
DROP DATABASE mybase1c;

Первая команда принудительно завершает все подключения к базе, вторая удаляет её. В современных версиях PostgreSQL доступен вариант DROP DATABASE с опцией FORCE, который делает то же самое одной командой. Учтите, что в PostgreSQL нельзя удалить базу, находясь в подключении к ней самой — выполняйте команду из подключения к служебной базе postgres.

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

После удаления проверьте три точки: отсутствие записи в консоли кластера, отсутствие базы в списке баз данных СУБД и отсутствие файлов базы на диске. В MS SQL Server файлы .mdf и .ldf при штатном удалении удаляются автоматически, но при сбоях могут остаться — тогда их удаляют вручную из каталога данных SQL Server.

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

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

Список баз в консоли кластера
Норма

Удалённой базы нет в ветке «Информационные базы»

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

Запись осталась — удалите её повторно

Список баз данных на СУБД
Норма

База отсутствует в SSMS или pgAdmin

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

База на месте — удалите её вручную на СУБД

Файлы на диске SQL-сервера
Норма

Файлы .mdf и .ldf с именем базы отсутствуют

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

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

Список баз в окне запуска 1С у пользователей
Норма

База не отображается или удалена из списка

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

Пользователи видят мёртвую ссылку — очистите списки или файл ibases.v8i

Отдельный след — списки баз у пользователей. Если базы публиковались через общий список (файл ibases.v8i или веб-публикация), удалённая база останется в окне запуска как неработающая ссылка. Удалите её из общего списка или сообщите пользователям, что строку можно убрать самостоятельно кнопкой «Удалить» в окне выбора баз — на сервер это уже никак не влияет.

Типичные ошибки и особые ситуации

Типичные ошибки
01
Удаление записи из кластера с опцией «оставить базу данных» — данные продолжают занимать диск SQL-сервера, и через месяц никто не помнит, чья это база
02
Удаление базы на СУБД до удаления записи в кластере — в консоли остаётся битая ссылка, а пользователи получают ошибки соединения
03
Отсутствие проверки резервной копии — файл .dt создан, но повреждён, и восстановить из него базу невозможно
04
Удаление не той базы из-за похожих имён (например, рабочей вместо тестовой копии) — всегда сверяйте имя базы на СУБД со свойствами информационной базы
05
Попытка удалить базу при активных сеансах — операция блокируется или обрывает работу пользователей

Особый случай — файловая база, размещённая на сервере в сетевой папке. Она не регистрируется в кластере и не существует на СУБД: удаление сводится к удалению папки с файлом 1Cv8.1CD и сопутствующими файлами. Перед этим убедитесь, что ни у одного пользователя база не открыта, иначе файл будет заблокирован. Запись о такой базе удаляется только из списков запуска на клиентских машинах.

Ещё одна ситуация — база опубликована на веб-сервере (IIS или Apache). После удаления самой базы публикация остаётся и отдаёт ошибки. Удалите соответствующий виртуальный каталог или приложение в веб-сервере и файл настройки публикации (default.vrd), чтобы не оставлять мёртвые точки входа.

Маршрут решения

Как выбрать действие

База больше не нужна совсемСделайте backup, удалите базу через консоль кластера с опцией «удалить базу данных», проверьте СУБД и диск
База переносится на другой серверСделайте backup средствами СУБД, удалите запись из кластера с опцией «оставить базу данных», удалите данные на СУБД только после успешного восстановления на новом сервере
Нужна пустая база с той же конфигурациейНе удаляйте базу — сделайте выгрузку .dt и загрузите её в новую базу, либо используйте опцию «очистить базу данных»
Кластер 1С недоступен или переустановленУдалите базу данных напрямую в MS SQL Server или PostgreSQL, запись в кластере пересоздастся при новой установке
Итог

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

Полное удаление базы на сервере 1С = удаление записи в консоли кластера с опцией «удалить базу данных» плюс проверка, что база исчезла с СУБД и её файлы удалены с диска. Перед этим — проверенная резервная копия и завершение всех сеансов. Удаление только на одном уровне оставляет мусор на другом.

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

Можно ли восстановить базу после удаления?

Штатными средствами 1С — нет. Восстановление возможно только из резервной копии: файла выгрузки .dt или backup базы данных, сделанного средствами СУБД. Если копии нет, теоретически остаются дорогостоящие методы восстановления удалённых файлов с диска, но их результат не гарантирован. Именно поэтому проверка копии перед удалением — обязательный шаг.

Чем отличается «очистить базу данных» от «удалить базу данных»?

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

Удалил базу в SQL Server, но она осталась в списке в консоли кластера. Что делать?

Откройте консоль администрирования серверов 1С, найдите запись базы в ветке «Информационные базы» и удалите её с опцией «оставить базу данных» — физической базы уже нет, поэтому удалится только регистрация. После этого ссылка исчезнет и из списков запуска, если они формируются централизованно.

Нужны ли особые права для удаления базы?

Да. Нужны права администратора кластера серверов 1С (если в кластере заведены администраторы) и права на удаление базы данных на СУБД — обычно роль dbcreator или sysadmin в MS SQL Server либо право DROP DATABASE в PostgreSQL. Учётная запись, указанная в свойствах информационной базы, должна обладать этими правами, иначе операция завершится ошибкой.

Как удалить файловую базу, размещённую на сервере?

Файловая база не связана с кластером и СУБД. Убедитесь, что все пользователи вышли, затем удалите папку с файлом 1Cv8.1CD через проводник или командную строку. Затем удалите строку базы из списков запуска на клиентских компьютерах или из общего файла списка баз, если он использовался.

Что делать с публикацией базы на веб-сервере после её удаления?

Публикация не удаляется автоматически вместе с базой. Удалите соответствующее приложение или виртуальный каталог в IIS либо Apache, а также файл настройки публикации default.vrd. Иначе веб-сервер продолжит отдавать ошибки при обращении к адресу удалённой базы.