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

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

Как удалить SQL базу 1С правильно и без потери данных

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

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

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

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

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

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

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

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

Резервное копирование перед удалением

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

Для MS SQL Server резервная копия создаётся через SQL Server Management Studio: правый клик по базе → Tasks → Back Up → тип Full. Файл .bak сохраните на отдельный диск или сетевое хранилище, а не на тот же том, где лежат файлы базы.

Для PostgreSQL используется утилита pg_dump. Команда создаёт файл выгрузки, из которого базу можно восстановить на этом или другом сервере.

bash
pg_dump -U postgres -F c -f /backup/1c_base.dump my_database

После создания копии проверьте, что файл существует и имеет ненулевой размер. В идеале — выполните тестовое восстановление на отдельном сервере или в базу с другим именем: только так можно убедиться, что бэкап реально пригоден.

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

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

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

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

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

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

Если регистрация в кластере уже снята или удаление из консоли не сработало, удалите базу непосредственно в SQL Server. Откройте SQL Server Management Studio, подключитесь к нужному экземпляру, найдите базу в списке Databases.

Перед удалением переведите базу в однопользовательский режим или закройте активные подключения — иначе получите ошибку о том, что база используется. В диалоге удаления есть флажок «Close existing connections» — он принудительно разрывает соединения. Затем: правый клик по базе → Delete → подтверждение.

Ту же операцию можно выполнить T-SQL командой:

sql
ALTER DATABASE [my_database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [my_database];

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

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

Для PostgreSQL удаление выполняется командой DROP DATABASE. Важное ограничение: нельзя удалить базу, к которой есть активные подключения, и нельзя удалить базу, к которой вы сами подключены в текущем сеансе. Подключитесь к служебной базе postgres и завершите чужие сессии к целевой базе.

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

Также можно использовать консольную утилиту dropdb: dropdb -U postgres my_database. В графическом интерфейсе pgAdmin удаление доступно через контекстное меню базы — Delete/Drop, предварительно базу можно отключить от новых подключений.

Файлы базы PostgreSQL хранятся внутри общего каталога данных кластера и удаляются самой СУБД — вручную в этот каталог лезть не нужно, это может повредить весь экземпляр PostgreSQL.

Удаление записи из списка баз на клиентах и очистка остатков

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

Если используется общий список баз через файл .v8i на сетевом ресурсе или публикацию на веб-сервере — достаточно удалить запись из этого файла, и она пропадёт у всех пользователей, которые подключены к общему списку.

Дополнительно проверьте: регламентные задания планировщика Windows или скрипты обслуживания, ссылающиеся на удалённую базу; настройки резервного копирования; публикации на веб-сервере (если база была опубликована, удалите соответствующий каталог публикации и запись в настройках веб-сервера).

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

Проверка результата и что делать, если что-то пошло не так

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

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

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

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

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

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

Запись осталась — регистрация не снята, удалите её вручную

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

База отсутствует в SSMS или в выводе \l в psql

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

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

Свободное место на диске данных
Норма

Объём освободился примерно на размер базы

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

Файлы .mdf/.ldf остались — проверьте, удалена ли база из экземпляра

Журналы сервера 1С и СУБД
Норма

Нет повторяющихся ошибок подключения к базе

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

Ошибки продолжаются — где-то осталась ссылка на базу (обмены, задания, публикации)

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

Итог

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

Перед удалением SQL-базы 1С сделайте резервную копию и сверьте имя базы в свойствах. Удаляйте через консоль кластера серверов с выбором судьбы базы данных или напрямую средствами СУБД. После удаления очистите списки баз у пользователей, публикации и задания обслуживания, а затем проверьте, что запись, база и файлы действительно исчезли.

Частые вопросы об удалении SQL-баз 1С

Можно ли удалить базу 1С, пока пользователи в ней работают?

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

Что выбрать при удалении из кластера: «удалить базу данных» или «оставить»?

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

База удалена из кластера, но место на диске не освободилось. Почему?

При удалении регистрации был выбран вариант «оставить базу данных», либо удаление на СУБД завершилось с ошибкой. Проверьте список баз в SSMS или psql — скорее всего, база данных всё ещё существует и её нужно удалить отдельно.

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

Регистрация в кластере в этом случае не имеет значения — удалите базу данных напрямую средствами СУБД через SSMS, pgAdmin или консольные команды. Записи в списках баз на клиентах удаляются вручную в диалоге запуска.

Можно ли восстановить удалённую базу из файла .dt?

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

Нужно ли удалять базу из списка на компьютерах пользователей?

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