Обрезать файл журнала транзакций SQL Server

В моем локальном диске C: у меня есть файл ldf для базы данных, размещенной на одном из наших серверов. У меня есть локальная копия одной из баз данных размером 1 ГБ и ldf (файл журнала) этой базы данных, которая составляет 16 ГБ. Он съедает много моего локального места на моем жестком диске. Я хотел бы обрезать этот файл. Многие из того, что я читаю в Интернете, это не так, но кажется, что они говорят о файлах на сервере, на которых работает база данных. Это не тот случай, это на моей локальной машине.

Расположение файла на моей машине:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

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

Как я могу обрезать этот файл?

Спасибо!

Ответы

Ответ 1

Перейдите в панель проводника объектов в SSMS и щелкните правой кнопкой мыши на соответствующей базе данных. Выберите задачи → сжатие → файлы. Измените параметр типа файла на "Журнал", выберите опцию "Реорганизовать страницы до освобождения неиспользуемого пространства" и установите значение 1 МБ. Нажмите ОК.

Если это не работает, проверьте, настроена ли ваша база данных с полной моделью восстановления базы данных. Щелкните правой кнопкой мыши базу данных и перейдите к свойствам. Выберите "Параметры" и установите флажок "Восстановить модель". Установите простой (если вы можете!!!), а затем сжимайте журналы.

Ответ 2

Другим вариантом, который вы можете попробовать, является использование WITH TRUNCATE_ONLY:

BACKUP LOG  databasename  WITH TRUNCATE_ONLY
DBCC SHRINKFILE (  adventureworks_Log, 1)

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

ALTER DATABASE mydatabase SET RECOVERY SIMPLE
 DBCC SHRINKFILE (adventureworks_Log, 1)