У меня SQL 2012 с SP1 установлен на моем компьютере. Я сделал резервную копию базы данных test.bak
.
У меня есть база данных с именем, test2
которая является той же самой базой данных, но данные изменились.
Я хочу восстановить test.bak
поверх test2
базы данных.
Я всегда получаю ошибку:
Ошибка 3154: резервный набор содержит резервную копию базы данных, отличной от существующей базы данных.
Я старался:
Я щелкнул правой кнопкой мыши на
test2 -> Restore database -> From device
Я выбрал
test.bak
и проверил,With Replace
но я получаю ошибку.Затем я попытался щелкнуть правой кнопкой мыши на
test2 -> Restore file and filegroups
Я выбрал
test.bak
и проверил,With Replace
но я получаю ошибку.
Я могу удалить свою старую базу данных и затем восстановить резервную копию с правильным именем, но когда я использовал SQL 2008, у меня не было проблем с восстановлением поверх существующей базы данных.
Кажется, что так как я использую SQL2012, я получаю эту ошибку много!
источник
1) Используйте
WITH REPLACE
при использованииRESTORE
команды.2)
DROP
старая база данных, которая находится в конфликте и восстановить снова с помощьюRESTORE
команды.Нет проблем с версией SQL Server. Как отметил Аарон, я также могу восстановить базу данных с 2008 по 2012 год и те же версии.
источник
Вы восстанавливаете не ту базу данных. Не думайте, что это «восстановление
test2
из резервной копии изtest
», думайте «восстановить мою резервную копию,test
но переименуйте ее какtest2
». Вы можете выбрать задачу восстановления изtest
и поставитьtest2
в поле «К базе данных:».Как упоминает Аарон, изучайте сценарий, а не полагайтесь на волшебника - яснее, что и где происходит.
источник
Вы все еще можете сделать это, но это требует дополнительного шага.
Откройте диалог восстановления, сделайте свой обычный выбор в соответствии с привычками 2008 года. Если исходной базой данных является DB, выберите устройство DB.bak для источника и измените имя получателя на DBTest. Затем в разделе «Выбрать страницу» (в верхнем левом углу) вы увидите «Общие / Файлы / Параметры» - выберите «Файлы». Посмотри в сетке. Вы увидите столбцы для Исходного имени файла и Восстановить как имя файла. Расширьте последнее вручную и введите новое имя (если исходное имя базы данных - DB, и вы хотите создать DBTest, измените .... \ DB.mdf на ... \ DBTest.mdf и т. Д.)
Это примет ваш файл .bak для БД в качестве источника и DBTest в качестве места назначения. Вам также может понадобиться перейти на страницу параметров и выбрать «С заменой». Мне нужно по другим причинам, поэтому я не могу проверить это без этой опции.
источник
Правильный ответ, как указано, заключается в использовании
WITH REPLACE
опции.Я просто хочу указать, что вы можете получить ошибку в вопросе даже при использовании
WITH REPLACE
, если вы попытаетесь восстановить из дифференциальной резервной копии (без полной).источник
Надеюсь, это сработает.
источник
Пожалуйста, остановите ваш работающий сервер и затем восстановите базу данных, это поможет вам. :)
источник