Можно ли перейти с полного восстановления на простое восстановление в Sql Server

#asp.net #sql #sql-server #sql-server-2008

#asp.net #sql #sql-server #sql-server-2008

Вопрос:

У меня есть старая база данных — членство пользователей / роль, которая была настроена автоматически с помощью ASP.Net 2 года назад:

введите описание изображения здесь

Текущая версия Sql Server: Sql Server 10.5.1617

Файл журнала базы данных пользователей огромен (файл ldf примерно в 400 раз превышает размер файла mdf).

В настоящее время для модели восстановления установлено значение «Полный». Я понимаю, что это такое, и мне не нужно восстановление на определенный момент времени.

Если бы я просто изменил модель восстановления на «простую» из Sql Server Management Studio: введите описание изображения здесь

… и нажал ok, чтобы сохранить изменения — буду ли я каким-либо образом рисковать своей текущей базой данных? Или Sql Server в порядке с внесением подобных изменений в действующие базы данных? И будет ли файл журнала автоматически сжиматься?

Спасибо за ваш совет,

Отметить

Комментарии:

1. Возможно, этот вопрос больше подходит для dba.stackexchange.com

2. Я сделаю это — спасибо, Стив, Марк

Ответ №1:

Все должно быть в порядке, транзакции были совершены. Файл журнала ожидает резервного копирования и для этого выпущен. Переход на простое восстановление означает, что вы не сможете выполнять текущие резервные копии, но данные будут передаваться в БД таким же образом, как и раньше, журналы просто удаляются после того, как sql завершит запись транзакции.

Ответ №2:

Чтобы ответить на оба ваших вопроса:

  1. Изменение модели восстановления в действующей базе данных безопасно. Вы не должны испытывать никаких простоев, блокировок и т.д.
  2. Файл журнала не будет сжиматься сам по себе. Вы можете обнаружить, что после настройки модели восстановления на simple она не может быть сжата сразу. Если вы обнаружите, что не можете уменьшить его, взгляните на dbcc loginfo , в частности, на столбец «статус». Каждая строка в выходных данных этой команды представляет один файл виртуального журнала (vlf). Команда shrink сможет очистить только непрерывный блок неактивных (т. Е. status = 0) VLF-файлов в конце файла. TL; DR — Если у вас есть строки со статусом = 2 внизу, подождите, пока этого не произойдет, а затем сократите.