Обрезать файл журнала транзакций 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)