Уменьшение файла журнала в SQL Server не меняет размер файла.

Я работаю в организации и столкнулся с проблемой, когда не могу сжать файл журнала. База данных SQL-сервера занимает 400 ГБ из 600 ГБ на жестком диске. Размер файла журнала составляет около 350 ГБ.

Я попытался сжать файл журнала, но размер остался прежним. Модель восстановления моей базы данных ПРОСТА.

Я просмотрел онлайн-сообщения, в которых есть предложения сделать резервную копию файла журнала, а затем попытаться сжать его. Но у меня недостаточно свободного места на моем диске для сохранения резервной копии журнала. (Примечание: в моей системе есть только один диск. и я не должен делать резервную копию на внешнем диске).

Поможет ли перенос всей этой БД на другой диск? Любые решения?


person LOL    schedule 20.09.2017    source источник
comment
SELECT log_reuse_wait_desc FROM sys.databases. Кроме того, введите DBCC SHRINKFILE из SMSS (по сценарию, а не через графический интерфейс) и посмотрите, какое сообщение оно напечатает. Если он не может сжать файл журнала, он сообщит вам, почему.   -  person Jeroen Mostert    schedule 20.09.2017


Ответы (3)


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

person cloudsafe    schedule 20.09.2017

Я попытался сжать файл журнала, но размер остался прежним. Модель восстановления моей базы данных ПРОСТА.

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

Если ваша БД находится в SIMPLE, вы не можете делать резервные копии журналов.

Вместо этого вы должны выполнить один или несколько раз:

CHECKPOINT; DBCC SHRINKFILE...

Это поможет в случае, когда log_reuse_wait_desc показывает NOTHING/CHECKPOINT.

Если он показывает что-то еще, вы должны устранить причину того, что он показывает на

person sepupic    schedule 20.09.2017

Если ваша база данных находится в режиме SIMPLE, измените размер файла журнала на меньшее значение, например 1 МБ. Сервер сделает его как можно меньше.

Однако имейте в виду, что размер файла журнала рассчитан на включение всех активных транзакций. В вашем примере в какой-то момент у вас было 350 ГБ транзакций в процессе. Обратите внимание, что существующая активность сервера может помешать его уменьшению до желаемого размера.

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

Вы можете и должны переместить файл журнала на другой диск, чем файл базы данных.

person Wes H    schedule 20.09.2017