Мне нужно очистить файл LDF перед отправкой коллеге. Как заставить SQL Server обрезать журнал?
Мне нужно очистить файл LDF перед отправкой коллеге. Как заставить SQL Server обрезать журнал?
Ответы:
если я хорошо помню ... в анализаторе запросов или эквивалент:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
.
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
.
В студии управления:
Properties
, затем Options
.Tasks
-> Shrink
->Files
В качестве альтернативы SQL для этого:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
Ссылка: http://msdn.microsoft.com/en-us/library/ms189493.aspx
use mydatabase
перед выполнениемdbcc shrinkfile
Для SQL Server 2008 команда выглядит так:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
Это уменьшило мой файл журнала 14 ГБ до 1 МБ.
Для SQL 2008 вы можете сделать резервную копию журнала на nul
устройство:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
А затем используйте DBCC SHRINKFILE
для усечения файла журнала.
Еще один вариант - отключить базу данных через Management Studio. Затем просто удалите файл журнала или переименуйте его и удалите позже.
Вернувшись в Management Studio, снова присоедините базу данных. В окне прикрепления удалите файл журнала из списка файлов.
БД присоединяется и создает новый пустой файл журнала. После проверки все в порядке, вы можете удалить переименованный файл журнала.
Вы, вероятно, не должны использовать это для производственных баз данных.