Восстановление ежедневной дифференциальной резервной копии - нет файлов, готовых к повторению транзакций.

Использую SQL Server. Возникла проблема с моими дифференциальными резервными копиями. Я делаю полную резервную копию своей базы данных в конце недели, а кроме того, я также ежедневно делаю дифференциальную резервную копию базы данных. Я создал задание, которое автоматически выполняет эти задачи резервного копирования. После того, как я принял эти полные и разнонаправленные чашки, я восстанавливаю их каждый день и неделю с помощью шуделара. Моя задача полного восстановления успешно работает каждую неделю, но когда другая моя задача, которая восстанавливает ежедневную дифференциальную резервную копию, пытается работать, она терпит неудачу с сообщением об ошибке «Журнал или дифференциальная резервная копия не может быть восстановлена, потому что нет файлов, готовых к повторению транзакций».

У меня два сервера баз данных. Один из них - производственный сервер, а другой - сервер отчетов. Сервер отчетов содержит ту же базу данных на производственном сервере БД. В конце каждой недели я беру полную резервную копию сервера db in prodcution db для сервера отчетов. Таким же образом каждую полночь я также делаю дифференциальное резервное копирование базы данных на сервере prodcution для сервера отчетов. На следующий день я восстанавливаю последнюю копию в базе данных на сервере отчетов. Я использую визуальный инструмент cron для этого процесса, но он не сработал с этой ошибкой. Я попытался восстановить вручную, но получил такое же сообщение об ошибке.

Вот мои команды восстановления.

EXEC [dbo].[DatabaseRestoreMany] 
    @Databases = 'DB_2004',
    @BackupRoot = '\\BCKPSRVR\BKUP\',
    @BackupTypes = 'DIFF',
    @DataFileDirectory = 'D:\DBFILES\DB_2004\',
    @LogFileDirectory = 'D:\DBFILES\DB_2004\',
    @DirectoryPerDatabase = 'Y',
    @RecoveryState = 'STANDBY',
    @ReturnBackupList = 'N',
    @ReturnTaskList = 'N',
    @Execute = 'Y'

Как я могу решить эту проблему? Можешь мне помочь?

Заранее спасибо.


person Omer    schedule 13.03.2019    source источник
comment
Нам нужно больше информации о том, как работают задачи, в частности, какие команды и программы они запускают. Вы написали, что задачи отвечают за создание резервных копий, но сообщение об ошибке предполагает, что проблема связана с восстановлением.   -  person Etienne Ott    schedule 13.03.2019
comment
›››, но когда другая моя задача, ежедневное дифференциальное резервное копирование, пытается работать, это не удается. Журнал или дифференциальное резервное копирование ** не может быть восстановлено ** делаете, резервное копирование или восстановление? Вы пишете, что он делает резервную копию, но в ошибке говорится, что он пытается ВОССТАНОВИТЬ   -  person sepupic    schedule 13.03.2019
comment
У меня два сервера баз данных. Один из них - производственный сервер, а другой - сервер отчетов. Сервер отчетов содержит ту же базу данных на производственном сервере БД. В конце каждой недели я беру полную резервную копию сервера db in prodcution db для сервера отчетов. Таким же образом каждую полночь я также делаю дифференциальное резервное копирование базы данных на сервере prodcution для сервера отчетов. На следующий день я восстанавливаю последнюю копию в базе данных на сервере отчетов. Я использую визуальный инструмент cron для этого процесса, но он не сработал с этой ошибкой. Я попытался восстановить вручную, но получил такое же сообщение об ошибке.   -  person Omer    schedule 13.03.2019
comment
Что такое DatabaseRestoreMany? Какие команды выполняют эту процедуру? Вы пытаетесь восстановить резервную копию diff без предварительного восстановления полной резервной копии?   -  person sepupic    schedule 13.03.2019
comment
DatabaseRestoreMany - это процедура хранения, написанная кем-то ранее. @sepupic Позвольте мне привести вам пример процесса. Сегодня среда. Я восстановил полную резервную копию базы данных в воскресенье. После этого я день ото дня восстанавливал свою резервную копию. Когда моя работа пытается восстановить резервную копию diff до создания отчетов db, она дает сбой и вызывает исключение. Вот почему я восстановил руководство по различиям. Вчера и сегодня я видел ту же проблему.   -  person Omer    schedule 13.03.2019


Ответы (1)


У вас есть эта ошибка, потому что до восстановления из differential backup не было восстановлено full backup.

Сегодня среда. Я восстановил полную резервную копию базы данных в воскресенье.

Вы восстановили полную резервную копию с помощью recovery. Ваша база данных заработала, она online, и теперь невозможно восстановить ни log, ни differential backup.

Чтобы восстановить свой differential backup, сначала необходимо восстановить full backup с помощью norecovery, и только после этого вы сможете восстановить свой differential backup.

Пожалуйста, обратитесь к этой статье BOL, чтобы понять, как можно восстановить дифференциальную резервную копию: Восстановить дифференциальную резервную копию базы данных (SQL Server)

Чтобы восстановить разностную резервную копию базы данных

Выполните инструкцию RESTORE DATABASE, указав предложение NORECOVERY, чтобы восстановить полную резервную копию базы данных, которая была сделана перед дифференциальной резервной копией базы данных. Дополнительные сведения см. В разделе Как восстановить полную резервную копию.

Выполните оператор RESTORE DATABASE, чтобы восстановить разностную резервную копию базы данных, указав:

Имя базы данных, к которой применяется дифференциальная резервная копия базы данных.

Устройство резервного копирования, с которого восстанавливается дифференциальная резервная копия базы данных.

Предложение NORECOVERY, если у вас есть резервные копии журнала транзакций, которые нужно применить после восстановления дифференциальной резервной копии базы данных. В противном случае укажите предложение RECOVERY.

person sepupic    schedule 13.03.2019