Набор резервных копий содержит резервную копию базы данных, отличной от существующей
Я пытаюсь восстановить файл резервной копии SQL Server для своей базы данных, но он вызывает ошибку, как показано ниже:
Набор резервных копий содержит резервную копию базы данных, отличной от существующей
Моя база данных в SQL Server 2008 и файл резервной копии находятся в 2005 году.
В чем может быть проблема?
Ответы
Ответ 1
Я тоже столкнулся с этой проблемой.
Решение:
- Не создавайте пустую базу данных и восстанавливайте файл
.bak
.
- Использовать параметр "Восстановить базу данных" , нажав правой кнопкой мыши на ветке "Базы данных" в SQL Server Management Studio и указать имя базы данных в то время как
обеспечивая источник для восстановления.
- Также измените имена файлов в разделе "Файлы", если другая база данных все еще существует. В противном случае вы получите "Файл"... "не может быть перезаписан. Он используется базой данных" yourFirstDb ".
Ответ 2
Или:
1) Используйте WITH REPLACE
при использовании команды RESTORE
(если используется графический интерфейс, он находится в разделе "Параметры" → "Перезаписать существующую базу данных (WITH REPLACE
))".
2) Delete
старая база данных, которая находится в конфликте и восстанавливается снова с помощью команды RESTORE
.
Проверьте ссылку для получения более подробной информации.
Ответ 3
Сначала создайте пустую базу данных с тем же именем. Затем перейдите к опции восстановления
В разделе Параметры на левой панели не забудьте выбрать
- Перезаписать существующую базу данных
- Сохранять настройки репликации
![enter image description here]()
Что он
Ответ 4
У вас возникла такая же проблема и нашли решение, выполнив это, используя SSMS 2014
- Just select the Option Overwrite the existing database(WITH REPLACE)
![Существующие базы данных > Задача > Восстановить > База данных]()
Ответ 5
USE [master];
GO
CREATE DATABASE db;
GO
CREATE DATABASE db2;
GO
BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION;
GO
RESTORE DATABASE db2
FROM DISK = 'c:\temp\db.bak'
WITH REPLACE,
MOVE 'db' TO 'c:\temp\db2.mdf',
MOVE 'db_log' TO 'c:\temp\db2.ldf';
Ответ 6
Его, потому что .mdf
и .ldf
файлы из оригинального Db
были найти в возможно c:\programFile\....
и эта информация сохраняется в резервном хранилище!
Если вы создаете одну и ту же БД на другом сервере SQL Server, где выполняется установка в c:\program Files (x86)\....
вы не сможете восстановить как обычно. Вам нужно переместить путь для .mdf
и .ldf
файлов.
Следовательно:
-
Создать пустую БД на новом Сервере
-
Щелкните правой кнопкой мыши на пустой базе данных Db> Задачи> Восстановление> База данных> щелкните Устройство, выберите файлы .bak
> Выберите Db, чтобы восстановить в
- щелкните "Файлы" слева> выберите "Переместить все файлы в папку"
- нажмите Опции на левом сайте> нажмите Перезаписать
Готово!
Надеюсь, поможет!
Ответ 7
Простые 3 шага:
1- Щелкните правой кнопкой мыши базу данных> Задачи> восстановить> База данных
2- Проверьте Device
как источник и найдите файл .bak
3- В левой панели нажмите на options
и:
- установите флажок " Перезаписать существующую базу данных".
- снимите флажок перед созданием резервной копии
- проверить закрыть Существующее соединение с базой данных назначения.
- другие варианты действительно необязательны!
Ответ 8
Сегодня я столкнулся с подобной проблемой. Пробовал все вышеупомянутые решения, но не работал. Поэтому отправьте мое решение здесь.
Не забывайте отключить резервное копирование с помощью Tail-long перед восстановлением
![Don't forget to uncheck Tail-long Backup before restore]()
Надеюсь, что это тоже поможет другим!
Ответ 9
Если вы используете сценарий и у вас есть ошибка, связанная с файлами LDF и MDF, вы можете сначала запросить в файле резервной копии логические имена (и другие подробности) файлов в наборе резервных копий, используя следующее:
-- Queries the backup file for the file list in backup set, where Type denotes
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO
Вы получите результаты, подобные следующим:
![enter image description here]()
И тогда вы можете использовать эти логические имена в запросах:
-- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
RESTORE DATABASE DB
FROM DISK='C:\Temp\DB_backup.bak'
WITH REPLACE,
MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.mdf'; -- "DB_log" is LDF logical name from query above
Дополнительную информацию о RESTORE FILELISTONLY
можно найти в документации по SQL Server.
Ответ 10
Также важно убедиться, что ваше имя базы данных соответствует имя базы данных в резервной копии, которую вы пытаетесь восстановить. Если он не совпадает, вы получите ту же ошибку.
Ответ 11
Прежде чем делать что-либо еще, подтвердите, является ли ваша резервная копия полной или дифференциальной. Если вы пытаетесь создать новую базу данных из дифференциальной резервной копии, независимо от того, что вы делаете, вы столкнетесь с этой ошибкой.
Ответ 12
system.data.sqlclient.sqlerror: набор резервных копий содержит резервную копию базы данных, отличной от существующей базы данных "Dbname"
Я наткнулся, чтобы найти душевное равновесие
-
Не создавайте базу данных с тем же именем или другим именем! Важно.
-
щелкните правой кнопкой мыши базу данных | Задачи> Восстановление> База данных
-
В разделе "Источник для восстановления" выберите "С устройства"
-
Выберите файл .bak
-
Установите флажок для базы данных в сетке ниже
-
В базу данных: "Здесь вы можете ввести новое имя базы данных" (например: DemoDB)
-
Не выбирайте существующую базу данных из DropDownlist
-
Теперь нажмите кнопку Ok, она создаст новую базу данных и восстановит все данные из вашего файла .bak.
Вы можете получить помощь по этой ссылке даже
Надеюсь, это поможет разобраться в вашей проблеме...
Ответ 13
Такая же проблема со мной. Решение для меня:
- Щелкните правой кнопкой мыши по базе данных.
- Выберите задачи, выберите базу данных восстановления.
- Выберите параметры с левой стороны.
- Проверить первый вариант OverWrite существующей базы данных (WITH REPLACE).
- Перейдите в раздел Общие, выберите базу данных источника и назначения.
- Нажмите "ОК", чтобы он
Ответ 14
Я просто пытался решить эту проблему.
Я пробовал все: от запуска до администратора до предложений, найденных здесь и в другом месте; то, что в конечном итоге решило это для меня, было проверить параметр "Переместить файлы" на вкладке "Свойства файлов".
Надеюсь, это поможет кому-то еще.
Ответ 15
Мне пришлось создать новый db на моем локальном для тестирования, и у меня была резервная копия от моего продукта. Сначала я создал db и попытался запустить BAK поверх нового db, который произвел эту ошибку для меня. Я удалил db и восстановил его при поиске нового имени db на самом экране восстановления. ДБ автоматически создается при восстановлении.
Ответ 16
Я получил работу через альтернативный путь, используя Generate scripts. Это работало для меня, поскольку Backup-Restore не помог решить проблему из-за той же ошибки.
Ответ 17
Некоторые из вас очень сильно усложняют это. Я нашел это очень простым.
1) Создайте базу данных с тем же именем, что и имя вашей базы данных .bak! Важно
2) щелкните правой кнопкой мыши базу данных | Задачи > Восстановить > База данных
3) В разделе "Источник для восстановления" выберите "От устройства"
4) Выберите файл .bak
5) Установите флажок для базы данных в виде сетки ниже
6) В разделе "Выбрать страницу" справа выберите "Параметры"
7) Установите флажок "Сохранить параметры репликации (WITH KEEP_REPLICATION)
Теперь вернитесь на страницу "Общие" и нажмите "ОК", чтобы восстановить базу данных... Вот и все.
Ответ 18
В параметрах измените имя файла "Восстановить как" на новую базу данных mdf и ldf. Он ссылается на файлы базы данных .mdf и .ldf.
Ответ 19
Вы можете восстановить новый БД, проверить синтаксис имени файла, он будет в файле журнала, так как новая версия SQL будет суффиксом "_log"
ad проверить перезапись существующего флага базы данных на вкладке параметров
Фабио
Ответ 20
Я уверен, что эта проблема связана с разрешениями файлов и папок.
Ответ 21
Я пытался восстановить производственную базу данных в промежуточную базу данных на том же сервере.
Единственное, что сработало в моем случае, - это восстановление новой пустой базы данных. Это отлично работало, не пыталось перезаписать производственные файлы (что было бы, если бы вы просто восстановили файл резервной копии в существующую промежуточную базу данных). Затем удалите старую базу данных и переименуйте - файлы сохранят новое имя temp, но в моем случае это нормально.
(Или иначе удалите промежуточную базу данных, а затем вы можете восстановить новую базу данных с тем же именем, что и промежуточная база данных)
Ответ 22
вместо того, чтобы щелкнуть Восстановить базу данных, нажмите Восстановить файл и файловые группы.
это работает на моем сервере sql