У меня есть резервные копии sql, копируемые с сервера A на сервер B каждую ночь.
Мы хотим переместить sql-сервер с сервера A на сервер B без длительного простоя, но файлы очень большие.
Я предполагал, что выполнение дифференциального резервного копирования и восстановления решит проблему с базами данных.
Вот где я застреваю. Если я добавлю в процесс восстановления и новый дифференциальный файл, и исходную резервную копию, я получаю сообщение об ошибке
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.