Я считаю себя очень опытным человеком SQL. Но я не могу сделать эти две вещи:
возвращается:
Database Name Log Size (MB) Log Space Used (%) Status
ByBox 1964.25 30.0657 0
Следующее не работает с SQL 2008
DUMP TRANSACTION ByBox WITH TRUNCATE_ONLY
Выполнение следующего ничего не делает
DBCC SHRINKFILE ('ByBox_1_Log' , 1)
DBCC shrinkdatabase(N'bybox')
Я пробовал резервные копии. Я также попытался установить для свойств базы данных - «Восстановить модель» значения «ПОЛНЫЙ» и «ПРОСТОЙ», а также комбинацию всего вышеперечисленного. Я также попытался установить совместимость с SQL Server 2005 (я использую этот параметр, так как я хочу соответствовать нашему производственному серверу) и SQL Server 2008.
Независимо от того, что я пытаюсь, журнал остается на 1964,25 МБ, используется 30%, и он продолжает расти.
Я бы хотел, чтобы журнал вернулся на 0% и уменьшил размер файла журнала, скажем, до 100 МБ, что вполне достаточно. Моя база данных должна ненавидеть меня; он просто игнорирует все, что я прошу сделать с журналом.
Еще одно замечание. В производственной базе данных имеется довольно много реплицированных таблиц, которые я отключаю, когда выполняю восстановление своего блока разработки с помощью следующего:
-- Clear out pending replication stuff
exec sp_removedbreplication
go
EXEC sp_repldone @xactid = NULL, @xact_segno = NULL,
@numtrans = 0, @time = 0, @reset = 1
go
Попытка:
SELECT log_reuse_wait, log_reuse_wait_desc
FROM sys.databases
WHERE NAME='bybox'
Возвращает
log_reuse_wait log_reuse_wait_desc
0 NOTHING
Как я могу исправить эту проблему?
Глядя на это и устанавливая модель восстановления в ПОЛНОЕ Я пробовал следующее:
USE master
GO
EXEC sp_addumpdevice 'disk', 'ByBoxData', N'C:\<path here>\bybox.bak'
-- Create a logical backup device, ByBoxLog.
EXEC sp_addumpdevice 'disk', 'ByBoxLog', N'C:\<path here>\bybox_log.bak'
-- Back up the full bybox database.
BACKUP DATABASE bybox TO ByBoxData
-- Back up the bybox log.
BACKUP LOG bybox TO ByBoxLog
которые вернули:
Processed 151800 pages for database 'bybox', file 'ByBox_Data' on file 3.
Processed 12256 pages for database 'bybox', file 'ByBox_Secondary' on file 3.
Processed 1 pages for database 'bybox', file 'ByBox_1_Log' on file 3.
BACKUP DATABASE successfully processed 164057 pages in 35.456 seconds (36.148 MB/sec).
Processed 2 pages for database 'bybox', file 'ByBox_1_Log' on file 4.
BACKUP LOG successfully processed 2 pages in 0.056 seconds (0.252 MB/sec).
Отлично! Но это не так.
И DBCC SHRINKFILE ('ByBox_1_Log', 1) теперь возвращается с
DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages
7 2 251425 251425 251424 251424
и DBCC SQLPERF (LOGSPACE) по-прежнему сообщает об использовании 30%.
Я думаю, что мне, возможно, придется смириться с тем фактом, что в SQL Server 2008 вполне может быть ошибка или что мой файл журнала каким-то образом поврежден. Тем не менее, моя база данных находится в хорошем рабочем состоянии, что заставляет меня думать, что есть ошибка (содрогается при мысли) .