Администрирование · 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. Команда создаёт файл выгрузки, из которого базу можно восстановить на этом или другом сервере.
pg_dump -U postgres -F c -f /backup/1c_base.dump my_databaseПосле создания копии проверьте, что файл существует и имеет ненулевой размер. В идеале — выполните тестовое восстановление на отдельном сервере или в базу с другим именем: только так можно убедиться, что бэкап реально пригоден.
Удаление базы через консоль кластера серверов 1С
Самый корректный способ — удалить информационную базу через консоль администрирования серверов 1С:Предприятия. Откройте консоль, раскройте нужный кластер, перейдите в раздел «Информационные базы», найдите базу в списке и выберите «Удалить» в контекстном меню.
При удалении консоль задаёт ключевой вопрос: что делать с базой данных на СУБД. Доступны варианты — удалить базу данных вместе с регистрацией, оставить базу данных на сервере СУБД (снять только регистрацию в кластере) или отменить операцию. Если цель — полное удаление, выбирайте удаление базы данных. Если базу нужно сохранить для подключения позже или на другом сервере — выбирайте «оставить».
- 1Откройте консоль администрирования серверов 1С и разверните нужный кластер
- 2В разделе «Информационные базы» найдите целевую базу и сверьте имя БД в свойствах
- 3Завершите активные сеансы и соединения с этой базой
- 4Убедитесь, что резервная копия создана и доступна
- 5Выберите «Удалить» и укажите вариант «удалить базу данных» или «оставить без изменений»
- 6Дождитесь завершения операции и проверьте, что запись исчезла из списка
Учтите: удаление базы данных из консоли кластера выполняется от имени учётной записи, указанной в свойствах информационной базы для доступа к СУБД. Если у этой учётной записи нет прав на удаление базы (например, она владелец только этой БД, но операция требует дополнительных разрешений), удаление завершится ошибкой — тогда базу придётся удалить средствами самой СУБД.
Удаление базы данных в MS SQL Server
Если регистрация в кластере уже снята или удаление из консоли не сработало, удалите базу непосредственно в SQL Server. Откройте SQL Server Management Studio, подключитесь к нужному экземпляру, найдите базу в списке Databases.
Перед удалением переведите базу в однопользовательский режим или закройте активные подключения — иначе получите ошибку о том, что база используется. В диалоге удаления есть флажок «Close existing connections» — он принудительно разрывает соединения. Затем: правый клик по базе → Delete → подтверждение.
Ту же операцию можно выполнить T-SQL командой:
ALTER DATABASE [my_database] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [my_database];После удаления проверьте каталог данных SQL Server: файлы .mdf и .ldf при штатном удалении стираются автоматически. Если файлы остались (бывает при аварийных ситуациях), их можно удалить вручную, но только убедившись, что база точно удалена из экземпляра.
Удаление базы данных в PostgreSQL
Для PostgreSQL удаление выполняется командой DROP DATABASE. Важное ограничение: нельзя удалить базу, к которой есть активные подключения, и нельзя удалить базу, к которой вы сами подключены в текущем сеансе. Подключитесь к служебной базе postgres и завершите чужие сессии к целевой базе.
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 или скрипты обслуживания, ссылающиеся на удалённую базу; настройки резервного копирования; публикации на веб-сервере (если база была опубликована, удалите соответствующий каталог публикации и запись в настройках веб-сервера).
Проверка результата и что делать, если что-то пошло не так
После удаления выполните контрольные проверки: базы нет в списке информационных баз кластера, базы нет в списке баз данных СУБД, файлы данных освободили место на диске, в журналах сервера нет периодических ошибок обращения к удалённой базе.
Как проверить результат
Удалённой базы нет в списке
Запись осталась — регистрация не снята, удалите её вручную
База отсутствует в SSMS или в выводе \l в psql
База на месте — удалите её средствами СУБД
Объём освободился примерно на размер базы
Файлы .mdf/.ldf остались — проверьте, удалена ли база из экземпляра
Нет повторяющихся ошибок подключения к базе
Ошибки продолжаются — где-то осталась ссылка на базу (обмены, задания, публикации)
Если удалили не ту базу и бэкапа нет — немедленно остановите все операции записи на диски сервера СУБД и обратитесь к специалистам по восстановлению данных. Шансы невысоки, но попытки «починить» самостоятельно (переустановка СУБД, запуск утилит восстановления без образа диска) обычно добивают остатки данных.
Что важно запомнить
Перед удалением SQL-базы 1С сделайте резервную копию и сверьте имя базы в свойствах. Удаляйте через консоль кластера серверов с выбором судьбы базы данных или напрямую средствами СУБД. После удаления очистите списки баз у пользователей, публикации и задания обслуживания, а затем проверьте, что запись, база и файлы действительно исчезли.
Частые вопросы об удалении SQL-баз 1С
Можно ли удалить базу 1С, пока пользователи в ней работают?
Технически сеансы можно завершить принудительно, но делать это без предупреждения нельзя: у пользователей могут быть несохранённые данные. Правильный порядок — предупредить, дождаться выхода, завершить оставшиеся сеансы в консоли кластера и только потом удалять.
Что выбрать при удалении из кластера: «удалить базу данных» или «оставить»?
«Удалить базу данных» — если база больше не нужна нигде. «Оставить без изменений» — если вы переносите базу на другой сервер 1С, хотите подключить её позже или сохраняете данные для архивного доступа средствами СУБД.
База удалена из кластера, но место на диске не освободилось. Почему?
При удалении регистрации был выбран вариант «оставить базу данных», либо удаление на СУБД завершилось с ошибкой. Проверьте список баз в SSMS или psql — скорее всего, база данных всё ещё существует и её нужно удалить отдельно.
Как удалить базу, если сервер 1С уже не работает?
Регистрация в кластере в этом случае не имеет значения — удалите базу данных напрямую средствами СУБД через SSMS, pgAdmin или консольные команды. Записи в списках баз на клиентах удаляются вручную в диалоге запуска.
Можно ли восстановить удалённую базу из файла .dt?
Да, если выгрузка в .dt была сделана заранее. Создайте новую пустую информационную базу в кластере и выполните загрузку через конфигуратор («Администрирование» → «Загрузить информационную базу»). Учтите, что для больших баз загрузка занимает значительное время.
Нужно ли удалять базу из списка на компьютерах пользователей?
Запись в списке после удаления базы становится нерабочей — при попытке входа пользователь получит ошибку подключения. Само по себе это не опасно, но записи лучше удалить: вручную на каждом рабочем месте или централизованно через общий файл списка баз.