Назад | Перейти на главную страницу

Сложность восстановления дифференциальной резервной копии в SQL Server, ожидается 2 семейства носителей или нет файлов, готовых для повтора транзакций

У меня есть резервные копии sql, копируемые с сервера A на сервер B каждую ночь.

Мы хотим переместить sql-сервер с сервера A на сервер B без длительного простоя, но файлы очень большие.

Я предполагал, что выполнение дифференциального резервного копирования и восстановления решит проблему с базами данных.

  1. Скопируйте полную резервную копию с сервера A для копирования на сервер B (10+ ГБ)
  2. Откройте SQL Server Managment Studio на сервере B
  3. Правая мышь по базам данных
  4. Восстановить базу данных
  5. Введите новое имя БД
  6. Выберите «С устройства» и перейдите к файлу резервной копии.
  7. Щелкните ОК. Теперь используется исходная «полная» резервная копия.
  8. Протестируйте новую базу данных с помощью приложения dev - все работает :)
  9. В исходной базе данных правой кнопкой мыши на БД> Задачи> Резервное копирование ...
  10. Тип резервного копирования = дифференциальное, резервное копирование на диск, добавьте новый файл и удалите старый (это должен быть небольшой файл для передачи при минимальном отключении)
  11. Скопируйте резервную копию diff на новую базу данных
  12. Щелкните правой кнопкой мыши БД> Задачи> Восстановить> База данных

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

The media loaded on "M:\path\to\backup\full.bak" is formatted to support 1 media families, but 2 media families are expected according to the backup device specification.
RESTORE HEADERONLY is terminating abnormally.

Но если я попытаюсь восстановить, используя только дифференциальный файл, я получу

System.Data.SqlClient.SqlError: The log or differential backup cannot be restored because no files are ready to rollforward. (Microsoft.SqlServer.Smo)

Есть идеи, как это сделать? Есть ли лучший способ восстановления резервных копий с ограниченным временем простоя?

Вы должны восстановить полную резервную копию с опцией NORECOVERY, чтобы иметь возможность восстановить последующие дифференциальные резервные копии. Только последнее восстановление будет использовать опцию ВОССТАНОВЛЕНИЕ. Если вам необходимо каждую ночь восстанавливать дифференциальную резервную копию по сравнению с предыдущей, при дифференциальном восстановлении также необходимо использовать параметр NORECOVERY. В этом случае база данных B всегда будет в нерабочем состоянии.

При выполнении разности перейдите на страницу параметров и установите переключатель в положение «Резервное копирование для резервного копирования на новый набор носителей и удалите все существующие наборы резервного копирования».

Где-то чередуете резервную копию. При использовании указанной выше опции будут использоваться ключевые слова INIT и FORMAT в резервной копии DIFF.