Почему работать DBCC SHRINKFILE непоследователен в работе базы данных?

голоса
1

DBCC SHRINKFILE всегда работает, когда я запускаю его вручную на файл журнала, даже когда я получаю следующее сообщение:

'Cannot shrink log file 2 (Claim_Log) because all logical log files are in use.'

Когда я запускаю его с работы, однако, она сжимается только бревно около одной трети времени. Другие времена, он просто остается большим (около 150GB). Там никогда не бывает ошибок, кроме одной из перечисленных выше. Это утверждение, которое я использую:

DBCC SHRINKFILE (N'Claim_log' , 0, TRUNCATEONLY)

Я «Включить шаг вывода в истории» включен на этапе работы. Есть ли что-то еще, что я могу сделать, чтобы получить больше информации о том, почему это не работает?

Edit: Вот полное сообщение из журнала:

'Executed as user: *. Cannot shrink log file 2 (Claim_Log) because all logical
log files are in use. [SQLSTATE 01000] (Message 9008)  DBCC execution completed. 
If DBCC printed error messages, contact your system administrator. [SQLSTATE 01000]
(Message 2528).  The step succeeded.'

Я уже пытался пинать пользователей из БД и установить его в однопользовательском режиме.

Задан 09/12/2008 в 17:27
источник пользователем
На других языках...                            


3 ответов

голоса
2

Недавно я решил аналогичную проблему, я обнаружил, что в sys.databases, log_reuse_wait_desc был равен "репликации. Видимо, это означает, что что-то к эффекту SQL Server ожидания для задачи репликации, чтобы закончить, прежде чем он может повторно использовать пространство журнала.

Однако репликация никогда не использовалась на нашей БД, ни на нашем сервере. Вы должны быть в состоянии очистить состояние, выполнив «» процедуры sp_removedbreplication; Однако для меня «процедуры sp_removedbreplication» не решить эту проблему. Вместо SQL только что вернулся сказав, что база данных не была частью репликации ...

Я нашел мой ответ здесь:

В основном я должен был создать репликацию, сбросить все указатели репликации к нулю; затем удалить репликацию я только что сделал. т.е.

Execute SP_ReplicationDbOption {DBName},Publish,true,1
GO
Execute sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
GO
DBCC ShrinkFile({LogFileName},0)
GO
Execute SP_ReplicationDbOption {DBName},Publish,false,1
GO
Ответил 06/07/2011 в 05:10
источник пользователем

голоса
2

попробуйте выдавший CHECKPOINT команду, а затем сокращаются журналы

взяты из BOL ( http://msdn.microsoft.com/en-us/library/aa226036(SQL.80).aspx )

Силы всех грязных страниц для текущей базы данных, которые будут записаны на диск. Грязные страницы данные или страница журнала был изменен после вступили в кэш, но изменения еще не были записаны на диск. Для получения дополнительной информации о усечения журнала см Усечение журнала транзакций.

Ответил 09/12/2008 в 18:01
источник пользователем

голоса
0

Средства В настоящее время файл журнал находится в использовании и проверка вопроса пункт, где Контрольная точка будет пишет datfile, что не было написано в файл данные из файла журнала транзакций (грязных страниц). Проверьте, есть ли текущая активность происходит или нет,

Проверка использования для активной транзакции в 2005 SELECT * FROM sys.dm_tran_session_transactions

2000 DBCC LOGINFO

сделать хороший план => 1.Create план Maintenace Для Резервного копирования журнала (составленный план).

Ответил 29/08/2009 в 06:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more