Как удалить базу 1с с сервера sql
Перейти к содержимому

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

  • автор:

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

В этой статье описывается удаление пользовательской базы данных в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

Предварительные условия

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

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

Безопасность

Разрешения

Для выполнения инструкции DROP DATABASE пользователь должен, как минимум, иметь разрешение CONTROL на базу данных.

Использование Azure Data Studio (предварительная версия)

Удаление базы данных
  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните этот экземпляр.
  2. Разверните базы данных, щелкните правой кнопкой мыши базу данных, чтобы удалить, а затем нажмите кнопку «Удалить«.
  3. Чтобы подтвердить удаление базы данных, нажмите кнопку «Да«.

Использование среды SQL Server Management Studio

Удаление базы данных
  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните этот экземпляр.
  2. Разверните базы данных, щелкните правой кнопкой мыши базу данных, чтобы удалить, а затем нажмите кнопку «Удалить«.
  3. Убедитесь, что выбрана правильная база данных, а затем нажмите кнопку «ОК«.

Использование Transact-SQL

Дополнительные сведения см. в разделе DROP DATABASE (Transact-SQL).

Удаление базы данных
  1. Соединитесь с ядром СУБД .
  2. На стандартной панели выберите пункт Создать запрос.
  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере удаляются Sales базы данных и NewSales базы данных.
USE master ; GO DROP DATABASE Sales, NewSales ; GO 

Дальнейшие действия. После удаления базы данных

Создать резервную копию базы данных master . Если master необходимо восстановить, любая база данных, которая была удалена с момента последней резервной master копии, по-прежнему будет содержать ссылки в представлениях системного каталога и может привести к возникновению сообщений об ошибках.

Ограничения

  • Системные базы данных не могут быть удалены.
  • Дополнительные сведения см. в разделе DROP DATABASE (Transact-SQL).

Далее

  • CREATE DATABASE (SQL Server Transact-SQL)
  • ALTER DATABASE (Transact-SQL)
  • DROP DATABASE (Transact-SQL)
  • Обзор восстановления и восстановления (SQL Server)

Удаление базы из списка баз

1 Для удаления базы из списка баз запустите загрузчик 1С:

2 В открывшемся окне выберите базу, которую Вы хотите удалить

Нажмите клавишу «Удалить»

Фактически, база останется на месте, вы просто удаляете у себя возможность ее запуска.

Если у Вас возникли вопросы, вы всегда можете обратиться в службу поддержки по телефону 8-800-505-37-68. Мы работаем 24/7

Как урезать / очистить базу данных 1С средствами MS-SQL

Эта статья для тех, кто хоть раз сталкивался с необходимостью очистить базу 1С , за период с устаревшими данными. Речь пойдет об удалении данных в ненужном периоде напрямую, средствами SQL -сервера. Также следует уточнить, что речь идет о конфигурациях, использующих компоненту «Оперативный учет». На бухгалтерских и расчетных базах данный метод не тестировался.

Для начала рассмотрим, как происходит резка периода. На определенную дату, чаще всего не конец года, скажем « 31.12.2003 », вычисляются конечные остатки по всем регистрам. Далее, на начало года, на « 01.01.2004 », вводятся эти остатки документами ввода начальных остатков. При этом в новом году в документах не должно быть ссылок на документы прошлого года – так называемых документов, введенных на основании, иначе удаление средствами 1С не сможет удалить документы, на которые есть ссылки. Также следует уделить внимания периодическим реквизитам, введенных документами, так как в момент отмены проведения документа эти периодические реквизиты перестанут существовать. Чтобы не было казусов, все периодические реквизиты, устанавливаемые документами нужно перед удалением выставить заново с начала года.

Теперь рассмотрим, как обычно происходит очистка базы средствами 1С . Запускается какая-то обработка проведения, которая помечает на удаление все документы. Это достаточно длительный процесс, так как при проведении каждого из документов 1С :Предприятие очищает все движения документов, в том числе периодические реквизиты, введенные документом. Это достаточно длительный процесс с учетом большого количества документов. Далее через пункт меню «Операции -> Удаление помеченных объектов» выполняется окончательное удаление.

В совокупности – это достаточно длительный процесс, особенно для больших баз с большим количеством документов в удаляемом периоде.

Альтернативный вариант очистки базы 1С – воспользоваться имеющимися в нашем распоряжении средствами MS-SQL . Из вышеуказанной последовательности мы можем ускорить последние два пункта, а именно пометку на удаление и окончательное удаление документов.

Что требуется сделать? Просто запустить скрипт, например из SQL Query Analizer ’а. Текст скрипта представлен ниже:

USE MyTestBase
Go
CREATE TABLE ##ID
(IDDOC char(9) primary key clustered)
Go
INSERT INTO ##ID
SELECT DISTINCT IDDOC
FROM _1SJOURN
WHERE (DATE_TIME_IDDOC < '20040101')
Go
BEGIN TRANSACTION
DECLARE Mycur cursor for
SELECT sysobjects.name,syscolumns.name
FROM syscolumns INNER JOIN
sysobjects ON syscolumns.id = sysobjects.id
WHERE (syscolumns.name = N’iddoc’) OR
(syscolumns.name = N’docid’)
OPEN MyCur
DECLARE @TableName varchar(20)
DECLARE @ColName varchar(20)
FETCH NEXT FROM MyCur INTO @TableName, @ColName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (‘Delete from ‘+@TableName+’ with (tablock) where ‘+@ColName+’ IN (Select IDDOC FROM ##ID)’)
FETCH NEXT FROM MyCur INTO @TableName, @ColName
END
CLOSE MyCur
DEALLOCATE MyCur
COMMIT TRANSACTION
DROP TABLE ##ID

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

После выполнения данного скрипта остается только войти в режим конфигуратора и сделать пересчет служебных данных и пересчет итогов. На случай, если вы не избавились от ссылок на старые документы, то необходимо сделать еще и проверку логической целостности. В настройках поставить « Очищать ссылки ».

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

Теперь о производительности. Я проверил оба варианта очистки базы 1С — удаление в 1С методом выбора всех документов и удаления их без контроля ссылочной целостности, и удаление путем выполнения данного скрипта. В базе данных содержалась информация за период с « 01.09.2001 » по « 15.06.2004 ». Удалялся период по 2003 год включительно. Конфигурация самописная, но в данном случае, думаю, это никакого значения не имеет. Данные сравнения указаны в таблице:

Время, минут:секунд. Удаление средствами 1C Удаление средствами MS-SQL
53:41 5:39

Как видно по результатам сравнения, удаление средствами MS-SQL фактически ровно в 10 раз быстрее. Это соотношение действительно с учетом того, что для обоих вариантов будет запущен полный пересчет итогов из конфигуратора. Хотя в случае с 1C его выполнять желательно, но не обязательно (почему — читайте здесь и здесь), а в случае с MS-SQL — обязательно. Так что, если вы не будете выполнять пересчет итогов в случае удаления в 1С , то для полноценного сравнения времени работы нужно к времени работы скрипта ( 5:39 ), добавить время пересчета итогов в конфигураторе ( 2:00 ).

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

Как удалить базу данных с MS SQL сервера удалённо через командную строку Windows

Как удалить SQL базу с сервера MSQ SQL путём выполнения команды в одну строку? В случае с Linux тут всё было бы понятно. Подключаемся по ssh и выполняем необходимые действия с базами данных, при желании можно автоматизировать некие процедуры путём скриптов. Но появилась задача сделать это из окружения Windows при помощи простой командной строки. Как это сделать?

Программа SQLCMD

Для начала нам необходимо скачать программу sqlcmd с официального сайта. Выбираем разрядность программы с скачиваем дистрибутив. Возможно для установки sqlcmd нам понадобится Microsoft ODBC Driver 17 for SQL Server. Качаем его тут. Всё скачали и установили. Теперь можно запускать командную строку и работать с sqlcmd.

Как удалить SQL базу при помощи SQLCMD

Подробно о функционале самой программы я тут писать не собирался и не буду. Вы можете самостоятельно ознакомиться со всеми её возможностями в официальной документации.

Для удаления базы данных с сервера используйте слеующий код, подставив свои параметры:

sqlcmd -S ip_адрес/hostname -U пользователь -P Пароль -Q "DROP DATABASE имя_базы;"

Автору на кофе ☕ или просто поднять мотивацию писать больше статей для вас �� !

Отдельное спасибо всем, кто отправляет донатики ��! Очень приятно и неожиданно. Благодаря вам сайт может и в дальнейшем обходиться без рекламных баннеров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *