2010-03-09 5 views
4

Я пытаюсь сжать мой архив журнала с помощью DBCC SHRINKFILE(db_2.ldf), который является имя файла журналаDBCC SHRINKFILE дает ошибку

Это дает мне ошибку каждый раз, когда:

8985, уровень 16, состояние 1, Строка 1 Не удалось найти файл 'FIelD' для базы данных db в sys.database_files. Файл либо не существует, либо был удален.

Возможно, вы сообщите, что исправить.

ответ

12

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

1

Вы используете его в контексте базы данных, в которой есть журнал, который вы пытаетесь сжать? Перед выполнением команд DBCC убедитесь, что у вас есть правильный оператор USE.

+0

Спасибо и да. Я использовал базу данных, которую я сжимал. – user70636

0

Приведенная ниже команда работает. Однако я не вижу, чтобы это уменьшало размер. Я вижу тот же размер после и перед его запуском. Не могли бы вы сообщить мне, что я мог пропустить.

fileid groupid size maxsize  growth status perf name filename 
2   0 1048 268435456  10 1048642 0   PrimaryLogFileName 

Благодаря

+0

Приведенная ниже команда? – influent

1

Если бы та же проблема здесь, решение было переименовать логический файл, чтобы соответствовать имени базы данных. Ниже приведен пример запроса логические имена файлов, а затем выполнить переименование файлов:

-- retrieve the logical files for the current db 
SELECT [name] AS logical_file FROM sys.database_files df 

-- rename the logical file (to match the database name) 
ALTER DATABASE YourDB 
MODIFY FILE (NAME = 'LogicalFile1', NEWNAME='NewLogicalFile1') 
GO 

ALTER DATABASE YourDB 
MODIFY FILE (NAME = 'LogicalFile2', NEWNAME='NewLogicalFile2') 
GO 

Причиной двух алтарей является то, что, как правило, два файла, связанные с каждой базой данных, файл данных и журнала файл.

0

С SQL Management Studio правой кнопкой мыши имя базы данных, задачи, термоусадочная, базы данных Ctrl + Shift + N (или Action Script в новое окно запроса)

Формирует следующее:

USE [Databasename ] GO DBCC SHRINKDATABASE (N'DataBaseName ') GO