«Невозможно выполнить дифференциальное резервное копирование для базы данных «myDb», поскольку текущая резервная копия базы данных не существует».

«Невозможно выполнить дифференциальное резервное копирование для базы данных «myDb», поскольку текущая резервная копия базы данных не существует».

У меня, похоже, довольно распространенная проблема при попытке сделать дифференциальное резервное копирование. У нас есть SQL Server 2008 Standard (64 бит), и мы используем Litespeed v 5.0.2.0 для создания резервных копий. Мы делаем полные резервные копии раз в неделю, а дифференциальные — ежедневно. Проблема в том, что каждый раз, когда я пытаюсь сделать дифференциальное резервное копирование, я получаю следующую ошибку:

Открытие VDI не удалось из-за запрошенного прерывания. РЕЗЕРВНОЕ
КОПИРОВАНИЕ БАЗА ДАННЫХ завершается аварийно.

Невозможно выполнить дифференциальное резервное копирование для базы данных "myDb", поскольку текущая резервная копия базы данных не существует. Выполните полное резервное копирование базы данных, повторно выполнив BACKUP DATABASE, опустив опцию WITH DIFFERENTIAL.

Проблема в том, что я на 100% знаю, что у меня есть полная резервная копия, потому что я только что дважды проверил. Только один раз мне удалось сделать резервную копию diff, и это было, когда я сделал ее сразу после того, как сделал полную резервную копию.

Я поискал и заметил, что это довольно распространено (хотя в основном с SQL 2005) и решение, которое предлагают многие люди, и которое я еще не пробовал, заключается в отключении службы SQL Server VSS Writer. Проблема с этим в том, что #1 я думаю, что мне может понадобиться эта служба, поскольку я использую стороннее программное обеспечение для резервного копирования, и #2 я не уверен, что именно делает эта служба, и не хочу отключать ее просто так.

Сталкивался ли кто-нибудь из вас с этой проблемой и как вы ее решали?

Спасибо,

решение1

Выполняете ли вы резервное копирование VSS на сервере (NTbackup, BE и т. д.) для чего-либо, кроме данных SQL? Согласноэтотдифференциальные резервные копии SQL могут стать недействительными, если программное обеспечение резервного копирования использует VSS для моментальных снимков.

Насколько мне известно, LS не использует VSS, как и сказал Ник. Согласноэта темаИсправлением стало отключение службы SQL Writer.

Обновление на основе комментариев:

Поскольку вы используете NTbackup для резервного копирования других файлов на сервере, решением будет отключение службы SQL Writer.

Когда NTbackup запускается, он вызываетВСЕдоступные VSS-писатели, даже если они вам не нужны. Это означает, что SQL-писатель переведет БД в согласованное состояние (очистит кэш на диск), пока создается снимок. Затем БД думает, что она была скопирована, даже если вы не копировали информацию из теневой копии. Это то, что ломает ваши резервные копии.

Одна вещь, которую вы можете проверить, чтобы увидеть, работает ли VSS с базами данных (в чем я уверен и которая разрывает цепочку), это посмотреть в журнале SQL (я думаю, он находится в журнале ошибок). Вы должны увидеть события заморозки/разморозки во время выполнения заданий NTbackup.

решение2

прошло несколько лет с тех пор, как я пользовался lightspeed, так что это могло измениться, но разве light speed не предоставляет собственные расширенные хранимые процедуры для выполнения резервного копирования? в этом случае вам следует вызывать их для выполнения дифференциального копирования. Вероятно, вам не следует вызывать собственные команды BACKUP DATABASE. Я не думаю, что вы можете смешивать и сопоставлять собственные и lightspeed резервные копии.

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

С точки зрения собственного резервного копирования SQL Server, если вы никогда не делали полную резервную копию, то вы не сможете сделать и разностную.

Служба VSS позволяет выполнять резервное копирование на уровне файлов сервера SQL через теневое копирование тома. Если вы используете Lightspeed для резервного копирования и исключаете каталог сервера SQL из резервного копирования на уровне сервера (ОС), то, вероятно, можно отключить эту функцию. Вероятно, это не связано с невозможностью создания дифференциальных резервных копий.

Решает ли проблему перезапуск экземпляра SQL-сервера? Если да, то, возможно, стоит рассмотреть возможность увеличения значения memtoleave SQL-сервера.Проверь это.

решение3

Наиболее распространенной причиной возникновения этой проблемы является использование другого программного обеспечения для резервного копирования (NTBackup, BE, Bacula и т. д.), которое делает снимок (копии VSS – Volume Shadow Copy) вашей базы данных. Это может привести к разрыву цепочки резервных копий и сделать недействительными ваши предыдущие ДИФФЕРЕНЦИАЛЬНЫЕ резервные копии. Поэтому при запуске текущего процесса ДИФФЕРЕНЦИАЛЬНОГО резервного копирования он завершится ошибкой, поскольку не сможет определить, что до этого была создана начальная ПОЛНАЯ резервная копия или другая ДИФФЕРЕНЦИАЛЬНАЯ резервная копия.

Прежде всего, вам необходимо выяснить, какой программный инструмент создает резервные копии моментальных снимков вашей базы данных, поскольку существует несколько способов решения этой проблемы. Давайте рассмотрим наиболее распространенный случай, когда резервные копии моментальных снимков создаются с помощью NTBackup. Решение для NTBackup В первую очередь проверьте SQL Server VSS Writer в меню Service, он должен иметь следующие настройки: Start Type: Manual и служба должна быть остановлена. Если служба SQL Server VSS Writer запущена и сделан моментальный снимок, полная модель восстановления будет заблокирована, а цепочка резервного копирования будет разорвана. Чтобы изменить настройки SQL Server VSS Writer, перейдите в «Star Menu» и найдите «Services», в открывшемся окне выберите «SQL Server VSS Writer».

Щелкните правой кнопкой мыши по службе и выберите «Свойства», в открывшемся окне установите «Тип запуска» на «Вручную», нажмите «Остановить» в разделе «Состояние службы», чтобы убедиться, что служба не будет запускаться автоматически после перезагрузки компьютера, и нажмите «ОК», чтобы применить все изменения.

решение4

У меня была та же проблема, хотя Bacula делала снимки базы данных, а также мои собственные резервные копии SQL Server. Есть какая-то ошибка, из-за которой это происходило на подмножестве баз данных на сервере, что было очень раздражающим. В конце концов, я решил изменить время резервного копирования, чтобы резервное копирование SQL запускалось после резервного копирования Bacula, чтобы гарантировать, что внутренние флаги SQL Server были правильно сброшены, чтобы отметить, что была сделана полная резервная копия. Это было в 2005 году — я полагаю, что те же проблемы VDI влияют и на 2008 год.

Для реф.здесьбыл мой предыдущий вопрос.

Связанный контент