"Нет резервной копии, выбранной для восстановления" SQL Server 2012

У меня есть база данных SQL Server 2012 с включенным фильтром. Однако, когда я делаю резервное копирование и пытаюсь восстановить его на другом экземпляре SQL Server 2012 (на другом компьютере), я просто получаю это сообщение:

Нет резервной копии, выбранной для восстановления.

Даже одна строка больше объяснений. Что здесь не так?

Любая другая база данных без фидбеста в порядке и может быть успешно восстановлена. Это что-то связано с filestream? Должен ли я установить исправление или что-то в этом роде.

Ответ 1

У меня была эта проблема, и оказалось, что я пытался восстановить неправильную версию SQL. Если вам нужна дополнительная информация о том, что происходит, попробуйте восстановить базу данных, используя следующий SQL:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

Это должно дать вам сообщение об ошибке, которое нужно отладить.

Ответ 2

Моя проблема оказалась правами. Я нахожусь на dev-машине и скопирован через Homegroup. Как-то, возможно, на основе того, где я скопировал файл, разрешения были перепутаны, и Management Studio не смог прочитать файл. Поскольку это dev, я просто предоставил все разрешения для файла bak и смог затем успешно восстановить его через графический интерфейс.

Ответ 3

При запуске:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

Это дало мне следующую ошибку:

Неправильно сформирован семейство носителей на устройстве C:\NorthwindDB.bak. SQL Server не может обработать это семейство мультимедиа. RESTORE HEADERONLY заканчивается ненормально. (Microsoft SQL Server, ошибка: 3241) Blockquote

Выключено Вы не можете взять БД из более высокой версии SQL в более низкую, даже если уровень совместимости одинаковый как в исходной, так и в целевой БД. Чтобы проверить запуск SQL-версии:

Select @@Version

Чтобы увидеть разницу, просто создайте БД на SQL Server источника и попытайтесь выполнить восстановление из файла резервной копии, когда вы сделаете это с помощью SSMS, как только вы выберете файл резервной копии, он будет покажите некоторую информацию об этом, как описано, когда вы открываете ее с сервера с более низкой версией, который просто скажет: "no backupset выбрано для восстановления" введите описание изображения здесь

Значит, если вам по-прежнему нужно переместить свои данные в более низкую версию SQL, тогда проверьте Это.

Ответ 4

Запустите SQL Server Management Studio в качестве администратора (щелкните правой кнопкой мыши > Запуск от имени администратора), затем попробуйте восстановить.

Ответ 5

Я думал, что я не настолько глуп, чтобы перепутать версии, но я не понял, что на моем новом сервере экземпляр SQL Server 2005 уже был установлен с рождения с именем SQLEXPRESS, При попытке восстановить резервную базу данных SQL Server 2008 R2 в SSMS 2012 до экземпляра SQLEXPRESS список наборов резервных копий был пуст.

В конце концов я понял, что экземпляр SQLEXPRESS на сервере не был экземпляром 2012 года, но в 2005 году я отключен и подключен к реальному экземпляру 2012 года (в моем случае с именем t23 > ), и он (очевидно) работал.

Ответ 6

Моя проблема заключалась в том, что мой пользователь был в группе Builtin-Administrators и без пользователя с Sysadmin-ролью на SQL Server. Я только что запустил Management Studio в качестве администратора. Таким образом удалось восстановить базу данных.

Ответ 7

Извините, но я только что подписался и не могу добавить комментарий, поэтому просто копируем Тайлера Форсайта, который отвечает именно тем, что сработало для меня.

"Моя проблема в конечном итоге была разрешением. Я нахожусь в dev-машине и скопирован с помощью Homegroup. Как-то, возможно, на основе того, где я скопировал этот файл, разрешения были перепутаны, а Management Studio не смог прочитать файл. Поскольку это dev, я просто предоставил все разрешения для файла bak и смог успешно восстановить его через графический интерфейс". Тайлер Форсайт

И чтобы уточнить, я восстанавливаю резервную копию с экземпляра 2008 до 2012 года, разные машины (prodution vs local dev). Резервное копирование - это автоматическое резервное копирование, мне не нужно было вручную его создавать, чтобы этот процесс работал. Просто измените разрешения (каждый из них самый простой для локальной машины-разработчика), и SSMS теперь может правильно прочитать файл резервной копии и восстановить его на локальной машине-разработчике.

Ответ 8

FYI: Я обнаружил, что при восстановлении мне нужно было использовать те же (SQL User) учетные данные для входа в SSMS. Сначала я попробовал восстановление с помощью учетной записи Windows Authentication.

Ответ 9

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

Это имело значение.

введите описание изображения здесь

Ответ 10

Для меня проблема заключалась в том, что файл .BAK находится в зашифрованной папке на сервере. Даже с полными правами администратора я никогда не смог получить SSMS для чтения файла. Перемещение .BAK в незашифрованную папку решило мою проблему. Обратите внимание, что после перемещения файла вам, возможно, придется также изменить свойства фактического файла для удаления шифрования (щелчок правой кнопкой мыши, свойства, расширенный, снимите флажок "зашифровать содержимое для защиты данных".

Ответ 11

У меня была такая же проблема с SQL Server 2014 (Management Studio не смогла увидеть папку, в которой находился файл резервной копии, при попытке найти его для операции восстановления). Этот поток содержал ответ, который решил мою проблему. Цитата:

Учетную запись службы SQL Server можно найти в меню Пуск- > Управление Панель- > Административные инструменты- > Услуги. Дважды щелкните на SQL Server service- > Вход в систему. Вы будете либо использовать "Локальную учетную запись системы", или "Эта учетная запись" для определения конкретной учетной записи. Если вы используете Локальная учетная запись системы, вы не сможете ссылаться на резервные копии, которые не локально к серверу. Если вместо этого вы определили это учетная запись, которая должна иметь доступ к файлу резервной копии место нахождения. Возможность доступа к резервным копиям с помощью личного входа в систему не имеет значения; используется учетная запись SQL Server, хотя вы инициируете резервное копирование. Ваши ИТ-специалисты должны иметь возможность определить, какие права предоставляются каждой учетной записи.

Надеюсь, что это поможет кому-то.

Ответ 12

В моем случае (новая установка сервера sql, только что созданный пользователь) у моего пользователя просто не было необходимого разрешения. Я зашел в Management Studio как sa, затем перешел в раздел "Безопасность/логины", щелкните правой кнопкой мыши мое имя пользователя, "Свойства", а затем в разделе "Роли сервера" я проверил sysadmin.

Ответ 13

Для меня это вопрос привилегий пользователя. Я вошел в систему с пользователем sa, и он работает нормально.

Ответ 14

Для меня это было потому, что резервный файл все еще был открыт другим процессом. Здесь журнал событий:

BackupDiskFile:: OpenMedia: устройство резервного копирования 'X:\Backups\MyDatabase\MyDatabase_backup_2014_08_22_132234_8270986.bak' не удалось открыть. Ошибка операционной системы 32 (процесс не может получить доступ к файлу, потому что он используется другим процессом.).

Простое закрытие и повторное открытие Sql Server Management Studio разрешило его (очевидно, это был ssms.exe, у которого был дескриптор.)

Ответ 15

Еще одна потенциальная причина этого сбоя - это Google Диск. Диск Google сжимает файлы BAK или что-то в этом роде, поэтому, если вы хотите перенести резервную копию базы данных с помощью Google Диска, вам следует сначала закрепить его.

Ответ 16

Использование SQL Server 2012 Express.

Моя ошибка (из SQL Manager - Восстановить диалог базы данных):

No backupset selected to be restored

Кроме того, в списке не было выбранных резервных копий.

Проблема заключалась в том, что я переместил 1 из 5 файлов резервных копий в папку, в которой пользователь входа в систему SQL Server не имел прав доступа - я попытался добавить этого пользователя, но не смог получить пользователя NT Service\MSSQL $SQLEXPRESS в список безопасности.

Я переместил файл в папке "Документы" для пользователя службы и включил его для чтения всех файлов, которые я выбрал, - 4 в этой точке, - и ошибка изменилась на "отсутствующий набор носителей" - тогда я огляделся вокруг другой файл резервной копии, и когда я добавил, что мне удалось восстановить.

Ответы в этом вопросе помогли мне заглянуть в нужные места и поработать над решением.

Ответ 17

Для меня это была проблема с разрешением. Я установил SQL-сервер, используя локальную учетную запись пользователя, и перед тем, как присоединиться к домену моих компаний. Позже я попытался восстановить базу данных с помощью моей учетной записи домена, у которой нет разрешений, необходимых для восстановления баз данных SQL Server. Вам необходимо исправить разрешение для вашей учетной записи домена и предоставить ему разрешение системного администратора на экземпляре сервера SQL, который у вас есть.

Ответ 18

Я получил то же сообщение об ошибке, даже если я создаю резервную копию и восстанавливаю на одной и той же машине.

Проблема была здесь: при резервном копировании у меня было 2 элемента в поле назначения.

Итак, исправление будет: убедитесь, что в поле "destination" указано только 1 элемент. Удалите все остальные, если они есть.

Ответ 19

Если вы хотите полностью заменить существующую базу данных, используйте параметр WITH REPLACE:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE

Ответ 20

В моем случае это была проблема с разрешениями.

enter image description here

Для пользователя Windows, я использовал не роль dbcreator.

Итак, я следовал за нижеперечисленными шагами

  1. Подключитесь как sa к серверу SQL
  2. Разверните Security в Обозревателе объектов
  3. Развернуть Logins
  4. Щелкните правой кнопкой мыши на пользователя Windows в вопросе
  5. Нажмите на свойства
  6. Выберите Server Roles из Select a page параметры Select a page
  7. Проверьте роль dbcreator для пользователя
  8. Нажмите ОК

enter image description here

Ответ 21

Я столкнулся с той же проблемой. Запустите SSMS от имени администратора, затем щелкните правой кнопкой мыши и выполните восстановление базы данных. Должно сработать.

Ответ 22

Я думаю, что получаю награду за самую тупую причину, чтобы получить эту ошибку. В диалоговом окне "Восстановить базу данных" раскрывающийся список "База данных" выделен серым цветом, и я подумал, что он отключен. Я перешел к раскрытию базы данных в пункте "Назначение", думая, что это был источник, и сделал выбор. Это приведет к отображению этого сообщения об ошибке.