База данных SQL в асинхронной репликации AO — файл журнала не сокращается после резервного копирования

У меня есть база данных, размер файла журнала которой составляет 527 ГБ, что показывает почти 100% использование. БД находится в асинхронной репликации АО с другим сервером SQL. БД находится в режиме полного резервного копирования, и резервное копирование журнала происходит каждый час. Я попытался сжать файл журнала, это не сработало, выдало следующее сообщение.

Msg 1468, Level 16, State 2, Line 2
The operation cannot be performed on database "MYDB" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.
Msg 5069, Level 16, State 1, Line 2
ALTER DATABASE statement failed.
The log for database 'MYDB' cannot be shrunk until all secondaries have moved past the point where the log was added..

(1 row(s) affected)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Я думаю, что это не так, потому что репликация не передает все журналы, и это было все время. Как решить проблему, не выводя базу данных из группы репликации AO? Я могу перевести его в синхронный режим, но я не хочу, чтобы он выходил из АО.


person arifr    schedule 11.10.2018    source источник


Ответы (1)


Чтобы выяснить причину вашей проблемы, взгляните на результаты запроса ниже (поле log_truncation_holdup_reason):

select * from sys.dm_db_log_stats(db_id('YourDatabaseName'))

UPD: Для версий ниже 2016 SP2 вы можете получить то же самое с помощью запроса:

SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = 'YourDatabaseName'

Если это AVAILABILITY_REPLICA, проверьте активные транзакции, чтобы понять, какая из них может вызвать это.

dbcc opentran

В зависимости от результатов вы сможете решить, что вам следует делать.

person Denis Rubashkin    schedule 11.10.2018
comment
Извините за задержку. Я получаю это сообщение при выполнении вашего запроса. «Недопустимое имя объекта sys.dm_db_log_stats» - person arifr; 17.10.2018