В настоящее время мне приходится иметь дело с журналом транзакций SQL Server, который вышел из-под контроля. Отказ от ответственности: я не dba, и это не моя область знаний, поэтому, пожалуйста, потерпите меня.
В настоящее время у меня есть файл журнала транзакций объемом 115 ГБ для базы данных объемом 500 МБ, который (очевидно) в течение некоторого времени плохо управлялся, чтобы он мог войти в это состояние.
Главный приоритет - освободить место на диске, занимаемое этим файлом, прежде чем мы исчерпаем! Мне сказали, что увеличивать размер диска нельзя, даже временно, и, исходя из прошлого роста, мы должны действовать довольно скоро.
Насколько я понимаю, лучший подход - это поддерживать базу данных в режиме полного восстановления, но регулярно делать резервные копии файла журнала, отслеживать это в течение определенного периода времени и корректировать исходный размер и приращение в соответствии с требованиями. Все в порядке.
Поскольку в полночь мы регулярно выполняем полное резервное копирование БД, могу ли я временно перевести базу данных в простой режим восстановления (после запуска одной из этих резервных копий), сжать файл журнала, чтобы освободить (практически все) пространство и затем верните его в полное восстановление с помощью стратегии резервного копирования, упомянутой выше?
Я думаю, что если что-то случится в это время, мы можем просто восстановить полную резервную копию без использования журналов.
ОБНОВИТЬ
Несколько дополнительных деталей в ответ на некоторые ответы и комментарии:
Мы хотим сохранить возможность восстановления на определенный момент времени, чтобы база данных оставалась в режиме полного восстановления.
Причина, по которой файл t-log стал настолько большим, заключается в том, что он никогда не копировался . Проверено как log_reuse_wait_desc возвращает «LOG_BACKUP».