Мы настроили зеркальное отображение базы данных на выходных и забыли снова включить задание резервного копирования журналов транзакций. Когда я пришел этим утром, журнал транзакций увеличился до 58 ГБ и занял большую часть дискового пространства.
Я сделал ручное резервное копирование журнала транзакций на диск, чтобы снова запустить базу данных, однако запуск DBCC SHRINKFILE, по-видимому, не уменьшает физический размер файла журнала транзакций.
DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000)
Если я проверю использование журнала с помощью
DBCC SQLPERF(LOGSPACE)
Я вижу, что используется только 22% текущего журнала
Имя журнала Размер журнала (МБ) Используемое пространство журнала (%) Состояние MyDatabaseName 55440,87 22,38189 0
Если я проверяю log_reuse_wait_desc
в sys.databses, единственная запись, которую я вижу DATABASE_MIRRORING
, так что я предполагаю, что зеркало играет роль в том, почему физический размер файла журнала не уменьшается?
SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = N'MyDatabaseName';
Я также заметил, что мое основное состояние зеркального отображения базы данных - Приостановлено, и попытка Возобновить его немедленно завершается с ошибкой:
Удаленный партнер по зеркальному отображению для базы данных «MyDatabaseName», обнаружена ошибка 5149, состояние 1, серьезность 25. Зеркальное отображение базы данных приостановлено. Устраните ошибку на удаленном сервере и возобновите зеркалирование или удалите зеркалирование и заново установите экземпляр зеркального сервера.
Журналы ошибок на зеркальном сервере также содержат эту ошибку, но также содержат ошибки о переполнении диска файла журнала.
В MODIFY FILE обнаружена ошибка 112 операционной системы (на диске недостаточно места.) При попытке расширить физический файл.
а также
F: \ Databaselogs \ MyDatabaseName_1.ldf: обнаружена ошибка 112 операционной системы (недостаточно места на диске).
Основной сервер имеет 60 ГБ на диске файлов журнала (здесь находятся другие базы данных), в то время как зеркальный сервер имеет только 45 ГБ.
Резервное копирование файла журнала позволило снова использовать базу данных, однако я также хочу уменьшить размер физического файла журнала на диске и возобновить зеркалирование.
Как я могу уменьшить размер моего физического файла журнала транзакций без ущерба для зеркалирования или цепочки резервного копирования?
Я использую SQL Server 2005