SQL Server :: ПОЛНАЯ резервная копия не записана в msdb.dbo.backupset и файл журнала необычно большой

У меня есть сервер, на котором работает SQL Server 2019, но базы данных все еще находятся на Compatibility level 110 (так что в основном это означает SQL Server 2012).

Мы делаем ПОЛНУЮ резервную копию каждую ночь, и я действительно вижу, что файлы копируются в нужную папку каждый день. Но если я запустил этот запрос, и я добавляю backup_finish_date desc, чтобы проверить, когда была сделана последняя ПОЛНАЯ резервная копия. Я вижу, что это дата на несколько месяцев назад:

введите описание изображения здесь

Итак, я нашел это руководство, в котором говорится, что это может быть ошибка в SQL Server, и предлагается выполнить эту проверку:

USE msdb
GO
SELECT server_name, database_name, backup_start_date, is_snapshot, database_backup_lsn
FROM backupset

... В результате обратите внимание на столбцы database_backup_lsn и is_snapshot. Запись, представляющая фактическую операцию резервного копирования базы данных, имеет следующие характеристики: Значение столбца database_backup_lsn не равно 0. Значение столбца is_snapshot равно 0.

введите описание изображения здесь

Мне все хорошо, похоже database_backup_lsn column is not 0 и is_snapshot column is 0

Затем в руководстве предлагается выполнить этот запрос для проверки целостности резервной копии:

WITH backupInfo AS( SELECT database_name AS [DatabaseName], 
name AS [BackupName], is_damaged AS [BackupStatus],
backup_start_date AS [backupDate],
ROW_NUMBER() OVER(PARTITION BY database_name 
ORDER BY backup_start_date DESC) AS BackupIDForDB 
FROM msdb..backupset) SELECT DatabaseName 
FROM backupinfo WHERE BackupIDForDB = 1 and BackupStatus=1 

введите описание изображения здесь

Результат - ничего!

В руководстве говорится: ... Если этот запрос возвращает какие-либо результаты, это означает, что у вас нет хороших резервных копий базы данных после указанной даты.

Так что теперь я боюсь, что наша резервная копия облажалась. Мы делаем резервную копию с CHECKSUM, но мы не запускали DBCC CHECKDB уже много лет, поэтому мы, возможно, (успешно и с CHECKSUM) делаем резервные копии поврежденных баз данных. Давайте работать:

DBCC CHECKDB('msdb') WITH NO_INFOMSGS, ALL_ERRORMSGS

введите описание изображения здесь

И результат ничего, так что вроде все хорошо.

И в то же время размер файла журнала (155 ГБ) кажется необычно большим по сравнению с размером файла данных в 514 ГБ

РЕДАКТИРОВАТЬ:

Я делаю полную резервную копию каждую ночь и резервную копию журнала каждый час

ИЗМЕНИТЬ 2:

Брент Озар предлагает запустить SELECT name, log_reuse_wait_desc FROM sys.databases;, и в результате у меня NOTHING почти везде:

введите описание изображения здесь


person Francesco Mantovani    schedule 23.09.2020    source источник
comment
Что касается журнала, как часто вы выполняете резервное копирование журнала транзакций? Вы упомянули, что делаете полную резервную копию ежедневно, но ничего не делаете в резервных копиях журнала транзакций.   -  person Larnu    schedule 23.09.2020
comment
Спасибо @Larnu, я делаю ПОЛНУЮ резервную копию ежедневно и резервное копирование журнала каждый час   -  person Francesco Mantovani    schedule 23.09.2020


Ответы (1)


... И решение было:

Мы используем Always On availability groups, и резервные копии были сделаны в среде аварийного переключения (сервер реплик).

Я вижу в сети много вопросов, похожих на мой, на которые действительно нет ответа. Я считаю, что я не единственный, кто столкнулся с этой проблемой

person Francesco Mantovani    schedule 24.09.2020