"Невозможно выполнить дифференциальное резервное копирование для базы данных"myDb", поскольку текущая резервная копия базы данных не существует".
У меня есть то, что кажется довольно распространенной проблемой при попытке сделать дифференциальную резервную копию. У нас есть SQL Server 2008 Standard (64bit), и мы используем Litespeed v 5.0.2.0 для создания наших резервных копий. Мы делаем полное резервное копирование один раз в неделю и разностные ежедневно. Проблема в том, что каждый раз, когда я пытаюсь сделать резервную копию diff, я получаю следующую ошибку:
Ошибка открытия VDI из-за запрошенного прерывания
РЕЗЕРВНАЯ БАЗА ДАННЫХ завершается ненормально.Невозможно выполнить дифференциальное резервное копирование для базы данных "myDb", поскольку текущая резервная копия базы данных не существует. Выполните полное резервное копирование базы данных, повторно выполнив BACKUP DATABASE, пропустив опцию WITH DIFFERENTIAL.
Проблема в том, что я на 100% знаю, что у меня полная резервная копия, потому что я просто дважды проверил. Только однажды я смог сделать резервную копию diff, и именно тогда я взял ее сразу после того, как я сделал полную резервную копию.
Я искал и заметил, что это довольно распространено (хотя в основном в SQL 2005) и решение, которое предлагают многие ppl и которое я еще не пробовал, - отключить службу записи SQL Server VSS. Проблема в том, что #1, я думаю, мне может понадобиться этот сервис, так как я использую стороннее программное обеспечение для резервного копирования, и #2 Я не совсем уверен, что именно делает сервис, и не хочу отключать его просто так.
Кто-нибудь из вас когда-либо сталкивался с этой проблемой и как вы ее исправляли?
Спасибо,
4 ответа
Запускаете ли вы резервные копии VSS на сервере (NTbackup, BE и т. Д.) Для чего-то, кроме данных SQL? В соответствии с этим разностные резервные копии SQL могут быть признаны недействительными, если программное обеспечение резервного копирования использует VSS для моментальных снимков.
Насколько я знаю, LS не использует VSS, как сказал Ник. Согласно этой теме исправление должно было отключить службу SQL Writer.
Обновление на основе комментариев:
Поскольку вы используете NTbackup для резервного копирования других файлов на сервере, исправление будет состоять в отключении службы записи SQL.
Когда NTbackup запускается, он вызывает ВСЕХ доступных VSS-писателей, даже если они вам не нужны. Это означает, что средство записи SQL переводит базу данных в согласованное состояние (сбрасывает кэш на диск) во время создания моментального снимка. Затем БД считает, что она была скопирована, даже если вы не скопировали информацию из теневой копии. Это то, что ломает ваши резервные копии.
Одна вещь, которую вы можете проверить, чтобы увидеть, работает ли VSS против БД (что я уверен, что это и разрыв цепи), это посмотреть в журнале SQL (я думаю, что в журнале ошибок). Вы должны видеть события замораживания / оттаивания во время выполнения ваших заданий NTbackup.
Наиболее распространенная причина возникновения этой проблемы: если у вас есть другое программное обеспечение для резервного копирования (NTBackup, BE, Bacula и т. Д.), Которое делает снимок вашей базы данных (копии VSS - теневое копирование тома), то это может привести к созданию цепочки резервных копий. сломать и сделать недействительными ваши предыдущие ДИФФЕРЕНЦИАЛЬНЫЕ резервные копии, поэтому при запуске текущего процесса ДИФФЕРЕНЦИАЛЬНОГО резервного копирования произойдет сбой, так как он не может увидеть, что перед ним произошла начальная ФУНКЦИОНАЛЬНАЯ резервная копия или другая ДИФФЕРЕНЦИАЛЬНАЯ резервная копия.
Прежде всего, вам необходимо выяснить, какой программный инструмент создает резервные копии снимков вашей базы данных, потому что есть несколько способов решения этой проблемы. Давайте рассмотрим наиболее распространенный случай, когда резервные копии моментальных снимков создаются с помощью NTBackup. Решение для NTBackup Прежде всего, проверьте SQL Server VSS Writer в меню Сервис, он должен иметь следующие настройки: Тип запуска: Вручную, и сервис должен быть остановлен. Если служба SQL Server VSS Writer запущена и сделан моментальный снимок, полная модель восстановления будет заблокирована, а цепочка резервного копирования будет разорвана. Для изменения настроек SQL Server VSS Writer перейдите в "Звездное меню" и найдите "Services", в открывшемся окне выберите "SQL Server VSS Writer".
Щелкните правой кнопкой мыши службу и выберите "Свойства", в открывшемся окне установите "Тип запуска" на "Вручную", нажмите "Стоп" в разделе "Состояние службы", чтобы убедиться, что служба не запустится автоматически после перезапуска компьютера и нажмите "ОК", чтобы применить все изменения.
Прошло несколько лет с тех пор, как я использовал световую скорость, так что это могло измениться, но разве скорость света не обеспечивает свои собственные расширенные хранимые процедуры для выполнения резервного копирования? в этом случае вы должны вызывать их, чтобы сделать дифференциал. Вы, вероятно, не должны вызывать собственные команды BACKUP DATABASE. Я не думаю, что вы можете смешивать и сочетать резервные копии родной / световой скорости.
Я пытался разбираться с онлайн-документацией о квестах, но, увы, вам нужно быть клиентом.
С точки зрения собственных резервных копий SQL Server, если вы никогда не делали полное резервное копирование, вы не можете сделать различие.
Служба VSS позволяет создавать резервные копии на уровне файлов сервера SQL с помощью теневого копирования тома. Если вы используете световую скорость для резервного копирования и исключаете каталог сервера sql из резервных копий на уровне сервера (ОС), то, вероятно, это можно отключить. Это, вероятно, не имеет ничего общего с невозможностью делать дифференциальные резервные копии.
Устраняет ли проблему перезапуск экземпляра сервера sql? Если это так, вы можете посмотреть на увеличение количества серверов sql memtoleave.
У меня была такая же проблема, хотя Bacula делала снимки базы данных, а также свои собственные резервные копии SQL Server. Существовала какая-то ошибка, которая приводила к тому, что это происходило на подмножестве БД на сервере, что было наиболее раздражающим. В конце концов я решил изменить время резервного копирования, чтобы после резервного копирования Bacula запускалась резервная копия SQL, чтобы гарантировать, что внутренние флаги SQL Server были сброшены правильно, чтобы отметить, что было выполнено полное резервное копирование. Это было в 2005 году - я думаю, те же проблемы с VDI влияют и на 2008 год.
Для ссылки здесь был мой предыдущий вопрос.