Если база данных постоянно отсоединяется от экземпляра, нужно ли выполнять какие-либо задачи по очистке?
10
Если база данных постоянно отсоединяется от экземпляра, нужно ли выполнять какие-либо задачи по очистке?
Ответы:
Если вы отсоедините базу данных от экземпляра, вам потребуется выполнить удаление файла на уровне ОС. Более безопасный подход - удалить базу данных.
Я предлагаю сделать окончательное резервное копирование базы данных после того, как вы переведете ее в режим «Только чтение» (так как это обеспечит отсутствие каких-либо действий во время резервного копирования), после чего удалите ее из системы с помощью команды «Удалить базу данных» .
Полный набор команд будет выглядеть примерно так:
После этого вам нужно будет искать любые задания, которые запускали сценарии для базы данных. Я бы посоветовал вам просто подождать, чтобы увидеть, что не получается (после чего вы можете написать сценарий / удалить задание), поскольку существует множество способов, которыми задание может ссылаться на базу данных (не все из них легко определить).
Наконец, вы захотите удалить всех пользователей из экземпляра, которые имели доступ только к этой базе данных. Этот скрипт должен определить, кто эти пользователи, хотя версия Макса намного чище (я не осознавал, что он опубликовал подход, пока я не отредактировал свой ответ, чтобы включить это):
источник
Я проголосовал за ответ Джона; Я просто хотел бы добавить некоторые детали о других предметах, которые вы, возможно, захотите убрать.
Задания и предупреждения агента SQL Server могут ссылаться на базу данных. Очистка их предотвратит появление ненужных ошибок.
Удалите все логины, которые были созданы специально для базы данных. Следующий T-SQL идентифицирует возможные входы-кандидаты, которые вы могли бы исследовать, чтобы увидеть, используются ли они. Код идентифицирует логины, на которые не ссылается ни одна база данных.
Резервные устройства могут существовать для этой базы данных. Хотя их удаление не является строго необходимым, если они не используются, они должны пойти на устранение потенциальной путаницы в будущем.
Триггеры уровня сервера могут ссылаться на базу данных.
Ищите планы обслуживания, которые ссылаются на базу данных - они потерпят неудачу, если они не будут обновлены для удаления отсутствующей базы данных.
источник
Все основные моменты уже были рассмотрены. Ниже приведены мои 2 цента:
Отсоединение базы данных никогда не является постоянным решением, так как оно предназначалось для перемещения файлов базы данных внутри сервера или на другой сервер. Окончательное удаление базы данных может быть выполнено с помощью опции Удалить в SSMS или командой базы данных DROP, как упомянуто выше.
Обычно базы данных, которые намеренно хранятся в автономном режиме и продолжают генерировать оповещения, - это те, которые мы отсоединяем и храним до тех пор, пока они не будут окончательно удалены (удалены).
Задание перед отсоединением: запустите,
sp_helpdb dbname
чтобы узнать расположение файлов.Задачи очистки:
Помимо логинов, агентских заданий, триггеров и уже упомянутых пунктов Макса, эти 2 также могут быть рассмотрены.
источник