Мені потрібно спорожнити файл 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
для обрізання файлу журналу.
Ще один варіант - вилучити базу даних через студію управління. Потім просто видаліть файл журналу або перейменуйте його та видаліть пізніше.
Ще в студії управління знову додайте базу даних. У вікні вкладення видаліть файл журналу зі списку файлів.
БД додає та створює новий порожній файл журналу. Після того, як ви перевірите, чи все в порядку, ви можете видалити перейменований файл журналу.
Вам, ймовірно, не слід використовувати це для виготовлення баз даних.